Recientemente comencé a aprender Vim y no me gusta la asignación de teclas predeterminada para dividir ventanas en Vim. Es decir, no me gusta ingresar Cw y luego S para horizontal y v para vertical, y mover el foco con Cw jkhl o arriba-abajo, izquierda-derecha.
Me gustaría tener 'h' para dividir horizontalmente y 'v' para dividir verticalmente cuando estoy en Modo Normal, sin ingresar Cw. ¿Cómo se puede hacer esto? Y también, ¿alguien conoce una configuración sensata para cambiar el foco en Windows, porque no estoy seguro de si eso tiene sentido sin Cw?
Gracias.
Respuesta1
Esta no es una buena respuesta ya que no recuerdo de dónde los saqué, pero en mi _vimrc
( .vimrc
en Windows)
Este lote se mueve entre buffers, es decir, Alt right arrow
se mueve al siguiente buffer a la derecha, etc.
nmap <silent> <A-Right> :wincmd l<CR>
nmap <silent> <A-Up> :wincmd k<CR>
nmap <silent> <A-Down> :wincmd j<CR>
nmap <silent> <A-Left> :wincmd h<CR>
Actualizar
Vim utiliza un concepto de líder, es decir, una tecla estándar seguida de otra(s) tecla(s), para facilitar los comandos. Ver :h <Leader>
. El valor predeterminado es retroceder en la instalación predeterminada que uso, let mapleader = ","
ya que me resulta ,sw(leftarrow)
más fácil que backspace(leftarrow)
. Lo que significa es, por ejemplo, nmap <leader>q :q!<cr>
que al escribir ,q
se sale del búfer actual sin guardarlo.
Actualización FINAL
Estos comandos reasignan los comandos vim a un comando más corto usando el leader
comando, por ejemplo, para crear un nuevo búfer en la parte superior izquierda de sus búferes, use leader>sw<left>
donde <left>
significa la flecha izquierda
nmap <leader>sw<left> :topleft vnew<CR>
nmap <leader>sw<right> :botright vnew<CR>
nmap <leader>sw<up> :topleft new<CR>
nmap <leader>sw<down> :botright new<CR>
nmap <leader>s<left> :leftabove vnew<CR>
nmap <leader>s<right> :rightbelow vnew<CR>
nmap <leader>s<up> :leftabove new<CR>
nmap <leader>s<down> :rightbelow new<CR>