2008-09-10 10 views

Respuesta

29

Ctrl - P (Obtener partido anterior) y Ctrl - N (Obtener un partido) son una especie de terminación pseudo código. Básicamente, buscar el archivo (hacia atrás para Ctrl - P, Delanteros de Ctrl - N) que está editando (y cualquier buffers abiertos, y si está utilizando TAGS nada en el archivo de etiqueta) para las palabras que se Comience con lo que está escribiendo y agregue una lista desplegable. Funciona sorprendentemente bien para variables y nombres de funciones, incluso si no es intellisense. Generalmente utilizo Ctrl - P ya que la variable o función que estoy buscando suele estar detrás del código. Además, si mantiene abierta la misma copia de Vim, buscará en los archivos que abrió anteriormente.

+0

Este estaba trabajando muy bien para mí, pero recientemente he cambiado a un nuevo entorno de desarrollo. Ahora, en lugar de buscar solo mis búferes abiertos, parece que busco todo el árbol de fuentes, lo cual lleva bastante tiempo, y solo lo hago para Perl. ¿Cómo puedo ver si este nuevo entorno está usando TAGS? Intenté ': tag' y obtuve' E73: tag stack empty'. ¿Hay algo más que etiquetas que podrían haberse habilitado? Además, el nuevo entorno tiene una versión ligeramente más nueva de vim. Me gustaría que SOLO busque en los buffers abiertos. – redbmk

7

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

También vea esto vim script for perl.

9

Vim 7 admite omni completa.

Por ejemplo, tengo esto en mi vimrc

autocmd FileType php set omnifunc=phpcomplete#CompletePHP 

y luego, cuando pulso Ctrl-X Ctrl-o en modo Insert, me sale una lista desplegable de posibilidades de autocompletar.

Aquí hay un omnicfunc for perl. Sin embargo, ni idea de lo bien que funciona.

3

Ctrl +N

Esto se explica en el libro de Perl Hacks, junto con la forma de hacer la terminación del paquete. Muy recomendable.

3

El clip .vimrc en una de las otras respuestas es ligeramente incorrecto. Para dar vuelta a su tecla de tabulación en una llave de auto-completar, utilizar 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 

puede encontrar esto, y toneladas de otros trucos vim in this thread at Perlmonks -que enlaces a incluso más hilos con mucha más personalizaciones.

5

La norma CTRL-N y CTRL-P funcionan aún mejor si agrega lo siguiente a su ~/.vim/ftplugin/perl.vim archivo:

conjunto iskeyword + =:

A continuación, la función de autocompletar nombres de los módulos, etc.

Cuestiones relacionadas