hardway - vim remap leader
mapeando teclas de funciĆ³n en vim (2)
Quiero mapear mi F2
para nerdtree con la siguiente entrada:
map <F2> :NERDTreeToggle<CR>
Pero incluso antes de eso, y después de guardar el vimrc, cada vez que presiono F2
, simplemente cambia el caso de las letras en las que está el cursor. Más tarde descubrí que cualquier tecla de función lo hace. F5
cambia la caja de 5 caracteres y así sucesivamente. ¿Es esto debido a algún otro plugin? Actualmente uso c.vim, snippetsEmu, surround, nerdtree y minibufexpl
No hay keymappings a ninguna tecla de función en mi vimrc.
Su problema es que vim no sabe qué emite el terminal cuando presiona <F2>
. En algunos terminales emite algo como <Esc>[12~
, así que vim abandona el modo actual (o simplemente suena si no puede) ( <ESC>
), no hace nada ( [1
: debe haber alguna tecla después de [
, pero no 1, por lo que no hace nada) y cambia el caso de dos letras ( 2~
). Entonces, debes abrir .vimrc y escribir allí lo siguiente:
set <F2>=<C-v><F2>
donde <Cv> <F2> significa que debe presionar <Cv>
y luego <F2>
. Esta línea debe indicar a Vim la secuencia exacta de códigos que emite el terminal cuando presiona <F2>
. Después de eso, use noremap <F2> whatever
que noremap <F2> whatever
y debería funcionar. Si no es el único terminal que está utilizando, entonces puede poner if $TERM==#" <Cr>=$TERM<CR> "
antes de esta línea y endif
después.
:map <F2> :NERDTreeToggle<CR>
Después de iniciar Vim puedes mirar con
:map <F2>
lo que F2 se asigna a. Es posible que los complementos cambien la asignación (no visible en .vimrc)