2010-01-16 10 views
47

Si está escribiendo un comando en Vim (me refiero a que ha empezado con : y está trabajando en la barra en la parte inferior de la pantalla), ¿hay alguna manera de mover el cursor que no sea tocar las teclas de flecha? ? En particular, ¿puede moverlo al principio, al final, a la parte posterior de los caracteres, o retroceder una palabra?¿Cómo puedo moverme en la línea de comandos de Vim?

Respuesta

42

Tipo

:h cmdline-editing

para más detalles. Estoy enumerando algunos de los comandos no flecha interesantes que hacen algo similar a lo que quiere.

  • ctrl - B: cursor al comienzo de la línea de comandos
  • ctrl - E: cursor al final de la línea de comandos
  • ctrl - W: eliminar la palabra antes del cursor
  • ctrl - T: eliminar todos los caracteres entre la posición del cursor y el comienzo de la línea
+0

Gracias, eso es genial. Busqué a través de ese documento de ayuda y no veo una manera de ir y venir palabra por palabra. ¿Sabes si está disponible? – Ethan

+0

La documentación dice que shift + left y shift + right se usan para retroceder y avanzar una palabra.También tiene un ejemplo de cómo enlazar ' b' para cambiar + izquierda (y así sucesivamente) en el modo de línea de comandos:': cnoremap b ' –

+1

Esa asignación de teclas se ve mucho como Emacs :) –

65

Tap Ctrl +F mientras que en el modo de línea de comandos (justo después de :). Allí obtendrá una ventana de línea de comandos que podría editarse & navegando como una ventana de vim normal (hjkl, etc.).

Consulte :h cmdline-window para obtener más información.

+8

Guau, esto es nada menos que la revelación de la vida a mi. – BimoZX

+14

Todos esos años perdidos ... – offbyone

+3

Y 'Ctrl-C' sale. – Walf

12

Para añadir a la contestación de Maxim Kim,

En el Normal Mode ..

q: -> ventana línea_de_órdenes para los comandos

q/ -> ventana línea_de_órdenes para búsqueda hacia adelante

q? -> ventana línea_de_órdenes para buscar hacia atrás

Ctrl-C o <CR> le llevará fuera del cmdline-ventana

9
  • ctrl + flecha de la izquierda: retroceder una palabra
  • ctrl + flecha de la derecha - avanzar una palabra
  • ctrl + b - volver al principio de la línea
  • ctrl + e - vaya al final de la línea
  • ctrl + w - eliminar una palabra antes del cursor
  • ctrl + u - quite la línea de
  • ctrl + f - si necesita una edición más el uso de energía ctrl + f y editará su comando en modo normal. Por ejemplo, si desea mover 5 caracteres hacia la izquierda, use ctrl + f y luego 5h.
+0

En Mac 'Ctrl + flecha izquierda' mueve todo el escritorio. Lo deshabilité pero 'Ctrl + flecha izquierda' mueve el cursor a la izquierda de la línea. –

0

En realidad, puede agregar sus propias teclas de movimiento. Por ejemplo, yo uso el siguiente en mi .vimrc dar a moverse por el modo de comando amigable con los dedos de una manera hjkl (abusar de la tecla CTRL):

" moving aroung in command mode 
cnoremap <c-h> <left> 
cnoremap <c-j> <down> 
cnoremap <c-k> <up> 
cnoremap <c-l> <right> 
cnoremap^ <home> 
cnoremap $  <end> 

donde ^ y $ son realmente < ctrl- ^> y < ctrl- $> respectivelly, mecanografiado como < cv> < c- ^> y < cv> < c- $> en el .vimrc (por alguna razón < c- ^> y < c- $> no funcionará, al menos en mi configuración, pero el primero lo hace)

0

nnoremap q; q: para facilitar el tipeo. usr_20.txt y cmdline.txt contiene todas las informaciones útiles.

+0

después de eso 'q;' lograr lo mismo ':' luego '' – qeatzy

Cuestiones relacionadas