Existe alguma maneira de ativar o preenchimento de código para Perl no vim?

StackOverflow https://stackoverflow.com/questions/54104

  •  09-06-2019
  •  | 
  •  

Pergunta

Surpreendentemente, à medida que você fica bom no vim, você pode codificar ainda mais rápido do que IDEs padrão, como o Eclipse.Mas uma coisa que realmente sinto falta é a conclusão do código, especialmente para nomes longos de variáveis ​​e funções.

Existe alguma maneira de ativar o preenchimento de código para Perl no vim?

Foi útil?

Solução

Ctrl-P (Obter correspondência anterior) e Ctrl-N (Get Next Match) são uma espécie de conclusão de pseudocódigo.Eles basicamente pesquisam o arquivo (de trás para frente Ctrl-P, Encaminha para Ctrl-N) você está editando (e quaisquer buffers abertos, e se estiver usando TAGS qualquer coisa em seu arquivo TAG) para palavras que começam com o que você está digitando e adiciona uma lista suspensa.Funciona surpreendentemente bem para variáveis ​​e nomes de funções, mesmo que não seja intellisense.Geralmente eu uso Ctrl-P já que a variável ou função que procuro geralmente está atrasada no código.Além disso, se você mantiver a mesma cópia do Vim aberta, ele irá pesquisar os arquivos que você abriu anteriormente.

Outras dicas

O Vim 7 oferece suporte à conclusão omni.

Por exemplo, eu tenho isso no meu vimrc

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

e então, quando eu pressiono Ctrl-x Ctrl-o no modo Inserir, recebo uma lista suspensa de possibilidades de preenchimento automático.

Aqui está uma função omnic para perl.Não tenho ideia de como isso funciona bem.

Bem, o mecanismo genérico de conclusão do Vim é surpreendentemente bom, apenas usando Ctrl-N no modo de inserção.Além disso, o preenchimento de linha é muito útil, usando Cx C-l.

Confira também isso script vim para perl.

O padrão CTRL-N e CTRL-P funcionará ainda melhor se você adicionar o seguinte ao seu arquivo ~/.vim/ftplugin/perl.vim:

definir ispalavra-chave+=:

Em seguida, ele completará automaticamente os nomes dos módulos, etc.

O clipe .vimrc em uma das outras respostas está um pouco errado.Para transformar sua tecla Tab em uma chave de preenchimento automático, use este código:

inoremap <tab> <c-r>=InsertTabWrapper()<cr>

function! InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
        return "\<tab>"
    else
        return "\<c-p>"
    endif
endfunction

Você pode encontrar isso e muitos outros truques do vim neste tópico em Perlmonks--que vincula ainda mais tópicos com muito mais personalizações.

Você deve dar uma olhada no plugin SuperTab:http://www.vim.org/scripts/script.php?script_id=1643Permite que você faça a conclusão (o OmniCompletion ou a conclusão regular) usando tab e shift-tab em vez de ^N e ^P.

Ctrl+N

Isso é explicado no livro Perl Hacks, juntamente com como completar o pacote.Altamente recomendado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top