2009-08-31 8 views
5

Solo quiero pasar de una función a otra en archivos .c/.cpp. ¿Cómo puedo hacer eso?Cómo pasar de una función C/C++ a la siguiente (ambas direcciones)

+0

java/C++ métodos http://stackoverflow.com/questions/12128678/vim-go-to-beginning-end-of-next-method (deben estar encerrados en una primera clase '{}') , comienzo de la función: http://stackoverflow.com/questions/2109503/how-to-jump-to-the-beginning-of-a-function-body-in-vim –

Respuesta

9

Creo que busca ]] el que salta a la siguiente { Char en la primera columna.

Hay opciones similares, simplemente intente :help ]] para obtener más información.

1

Tome un vistazo a exuberantes-ctags funciona con Emacs, y su cosa "vim" ;-)

7

Respecto al uso de [[y]], tenga en cuenta lo siguiente de motion.txt en la documentación de vim:

 

If your '{' or '}' are not in the first column, and you would like to use "[[" 
and "]]" anyway, try these mappings: 
    :map [[ ?{w99[{ 
    :map ][ /}b99]} 
    :map ]] j0[[%/{ 
    :map [] k$][%?} 
+2

El problema con estos es que si tiene una búsqueda activa y utiliza estos mapas, su búsqueda será sobrescrita. – Jake

2

Puedo utilizar estas asignaciones que harán [[y]] trabajo con funciones que don Pon el comienzo {al comienzo de la línea.

map ]] :call search("^\\(\\w.*\\)\\?{")<CR> 
map [[ :call search("^\\(\\w.*\\)\\?{", "b")<CR> 
map ][ :call search("^}")<CR> 
map [] :call search("^}", "b")<CR> 
+0

Huh, coloque el cursor al final de la coincidencia que es '{' o '}' como 'mapa]]: búsqueda de llamada ("^\\ (\\ w. * \\) \\? {"," e ") ' quizás mejor. – zhenguoli

Cuestiones relacionadas