Mi terminal no me permite escribir Ctrl+ W, porque es un atajo para cerrar una pestaña de terminal.
Me gusta trabajar con divisiones, pero no puedo encontrar ninguna manera de hacerlo sin usar C-W
. Esto me obligó a usar pestañas, porque puedo cambiar entre ellas con gt
, gT
o #gt
donde # es un número, pero me parece menos conveniente que las divisiones, ya que solo puedo ver el contenido de un archivo a la vez.
Tampoco puedo usarlo mouse=a
ya que mi terminal no lo admite.
¿Cómo puedo trabajar con divisiones en Vim sin el combo Ctrl+ Wdisponible?
key-bindings
vim-windows
split
Mateon1
fuente
fuente
wincmd
Por ejemplo, puede asignar::nmap wj :wincmd j<cr>
actúa de la misma manera queCTRL-W j
(muévase a la ventana a continuación):help wincmd
CTRL-W j
funciona con contadores (vaya a la enésima ventana a continuación de la actual) mi solución no.<C-W>
es demasiado útil un atajo (no solo en muchos lugares en Vim, sino también en bash) para perderlo. Me gustaría saber qué otras combinaciones de teclas consume el terminal<C-T>
. Por lo menos, investigaría si estos son configurables en la terminal.Respuestas:
Puede reasignar
<C-w>
a otra combinación, por ejemplo:Ahora puede usar
<C-e>
y actuará como si hubiera presionado<C-w>
.Esto sobrescribirá la
<C-e>
asignación predeterminada (desplácese hacia abajo). Vim ya usa todas las teclas del teclado, y la única forma de evitar esto es usando la tecla líder, que actúa como un "prefijo":A menos que haya reasignado
<Leader>
, ahora puede usar\w
(uno después del otro). De hecho, prefiero esto ya que no me gustan las combinaciones de teclas CTRL +.Ver ¿Qué es <Líder>? y ¿Cómo puedo averiguar en qué <Líder> está configurado? ¿Y es posible reasignar <Leader>? .
fuente
De hecho, uso
:wincmd
más a menudo que Ctrl+ Wporque me resulta más fácil escribir el abreviado:winc
.Por ejemplo, el equivalente a Ctrl+ W Les
:winc l
.fuente
He configurado las siguientes reasignaciones en mi
.vimrc
:Ahora puedo usar
Ctrl+h
para moverme a la ventana izquierda,Ctrl+l
para moverme a la ventana derecha, etc. Simplemente parece encajar lógicamente con la navegación normal de Vim.fuente
nnoremap <cr> <c-w>w
, ya que la tecla de retorno no se usa mucho en modo normal. Entonces es fácil pasar por las divisiones.Para tratar las divisiones utilizo el complemento submode, que en realidad es bastante conveniente: le permite crear un nuevo modo ("modo" como en el modo normal, modo visual, modo de inserción, etc.) donde define nuevas combinaciones de teclas .
Con eso ya no tienes que usarlo Ctrl+wy, como estás en un nuevo modo, todas las teclas son libres de enlazar: no más problemas como "Maldición, no puedo encontrar una combinación de teclas que sea significativa y aún no esté asignada "
Puede instalar el complemento con cualquier administrador de complementos normal, y aquí hay algunos de mi configuración para darle algo de inspiración:
Creé un nuevo modo al que llamé
WindowsMode
en el que manipulo mis divisiones:Estas líneas significan que entro en el modo con Leaderky salgo del modo con Leader: Después de presionar Leaderktodas las teclas que presiono:
Una vez que esté en
WindowsMode
estas líneas, hjklnavegue por las divisiones comoCtrl+whjklUsé estas líneas para dividir las ventanas con /y !:
Y qcerrar una división:
Mueve las divisiones con Ctrlhjkl:
Vim-submode permite hacer muchas cosas poderosas, consulte el documento para obtener más detalles.
EDITAR Aquí se describe otro enfoque del submodo de la ventana . Creo que el método utilizado por el autor está aún más cerca de responder la pregunta: aquí se usa para crear un nuevo modo, pero todas las
<c-w>something
asignaciones están disponibles con las mismas teclas en el submodo:De esta manera todas las asignaciones
<c-w>lowerCaseKey
,<c-w>upperCaseKey
,<c-w><c-Key>
y las asignaciones de<c-w>=_+-<>
los cuales son accesibles en el modo de ventana sin el prefijo<c-w>
fuente