¿Hay alguna forma de habilitar la finalización de código para Perl en vim?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Sorprendentemente, a medida que vas mejorando en vim, puedes codificar incluso más rápido que los IDE estándar como Eclipse.Pero una cosa que realmente extraño es la finalización del código, especialmente para funciones y nombres de variables largos.

¿Hay alguna forma de habilitar la finalización de código para Perl en vim?

¿Fue útil?

Solución

Control-PAG (Obtener coincidencia anterior) y Control-norte (Obtener próxima coincidencia) son una especie de finalización de pseudocódigo.Básicamente buscan el archivo (hacia atrás para Control-PAG, Delanteros para Control-norte) que está editando (y cualquier buffer abierto, y si está usando TAGS, algo en su archivo TAG) para palabras que comiencen con lo que está escribiendo y agregue una lista desplegable.Funciona sorprendentemente bien para variables y nombres de funciones, incluso si no es inteligente.Generalmente uso Control-PAG ya que la variable o función que estoy buscando suele estar atrasada en el código.Además, si mantiene abierta la misma copia de Vim, buscará los archivos que abrió anteriormente.

Otros consejos

Vim 7 admite la finalización omnidireccional.

Por ejemplo, tengo esto en mi vimrc.

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

y luego, cuando presiono Ctrl-x Ctrl-o en el modo Insertar, aparece una lista desplegable de posibilidades de autocompletar.

Aquí hay una omnifunción. para perla.Aunque no tengo idea de qué tan bien funciona.

Bueno, el mecanismo de finalización genérico de Vim es sorprendentemente bueno, simplemente usa Ctrl-N en modo de inserción.Además, completar líneas es muy útil, usando C-x C-l.

Mira también esto secuencia de comandos vim para perl.

El estandar CTRL-N y CTRL-P funciona aún mejor si agrega lo siguiente a su archivo ~/.vim/ftplugin/perl.vim:

establecer espalabra clave+=:

Luego completará automáticamente los nombres de los módulos, etc.

El clip .vimrc en una de las otras respuestas es ligeramente incorrecto.Para convertir su tecla de tabulación en una clave de autocompletar, 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

Puedes encontrar este y muchos otros trucos de vim. en este hilo en Perlmonks--que enlaza con aún más hilos con muchas más personalizaciones.

Deberías mirar el complemento SuperTab:http://www.vim.org/scripts/script.php?script_id=1643Le permite completar (ya sea OmniCompletion o la finalización normal) usando tab y shift-tab en lugar de ^N y ^P.

Control+norte

Esto se explica en el libro Perl Hacks, junto con cómo completar el paquete.Muy recomendable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top