Aprende-Vim/ch15_command-line_mode.md

97 lines
6.9 KiB
Markdown
Raw Normal View History

2021-01-24 19:36:11 +01:00
# Capítulo 15: El modo de línea de comando.
2021-01-24 19:36:11 +01:00
En los últimos tres capítulos, aprendiste cómo utilizar los comandos de búsqueda (`/`, `?`), sustitución (`:s`), el comando global (`:g`) y el comando externo (`!`). Estos son ejemplos de comandos para la línea de comandos.
En este capítulo, aprenderás varios trucos para el modo línea de comandos.
2021-01-24 19:45:12 +01:00
## Entrar y salir del modo línea de comandos
El modo línea de comandos es un modo en sí mismo, como el modo normal, el modo insertar y el modo visual. Cuando estás en este modo, el cursor se situa en la parte inferior de la pantalla en donde se pueden escribir diferentes comandos.
2021-01-24 19:45:12 +01:00
Hay 4 comandos diferentes que puedes introducir cuando estás en el modo línea de comandos:
- Patrones de búsqueda (`/`, `?`)
- Comandos de la línea de comandos (`:`)
- Comandos externos (`!`)
2021-01-24 19:45:12 +01:00
Puedes entrar en el modo línea de comandos desde el modo normal o desde el modo visual.
2021-01-24 19:45:12 +01:00
Para dejar el modo línea de comandos, puedes utilizar `<esc>`, `Ctrl-C, o Ctrl-[`.
2021-01-24 19:45:12 +01:00
*Algunas veces en otras guías o libros puede que refieran a los "comandos de la línea de comandos" como "comandos Ex" y los "comandos externos" como "comandos de filtros" u "operadores bang".*
2021-01-24 19:49:42 +01:00
## Repitiendo el comando previo
2021-01-24 19:49:42 +01:00
Puedes repetir tanto el comando o comando externo ejecutado previamente medianto `@:`.
Si ejecutaste previamente `:s/foo/bar/g`, ahora ejecutando `@:` repetirá esa sustitución. Si ejecutaste `:.!tr '[a-z]' '[A-Z]'`, ejecutando `@:` repetirá el último filtro del comando externo de traducción.
2021-01-24 19:57:06 +01:00
## Atajos de teclado del modo línea de comandos
2021-01-24 19:57:06 +01:00
Mientras estás en el modo línea de comandos, puede moverta a izquierda o derecha un caracter cada vez con las flechas de dirección del cursor `Izquierda` o `Derecha`.
2021-01-24 19:57:06 +01:00
Si necesitas moverte una palabra cada vez, utiliza `Shift-Izquierda` o `Shift-Derecha` (en algunos sistemas operativos, deberás utilizar la tecla `Ctrl` en vez de `Shift`).
2021-01-24 19:57:06 +01:00
Para ir al comienzo de la línea, utiliza `Ctrl-B`. Para ir al final de la línea, utiliza `Ctrl-E`.
2021-01-24 19:57:06 +01:00
De manera similar al modo de insertar, dentro del modo línea de comandos, tienes tres maneras de eliminar caracteres:
```
2021-01-24 19:57:06 +01:00
Ctrl-H Elimina un caracter
Ctrl-W Elimina una palabra
Ctrl-U Elimina la línea entera
```
Finalmente, si quieres editar el comando como si fuera un archivo de texto normal, utiliza `Ctrl-f`.
Esto también te permite buscar entre comandos previos, editarlos y volverlos a ejecutar pulsando `<Enter` en el "modo normal de edición de línea de comandos".
## Registro y autocompletado
Mientras estás en el modo de línea de comandos, puedes insertar textos desde los registros de Vim con `Ctrl-R` de la misma manera que lo haces en el modo insertar. Si tienes la cadena "foo" guardada en el registro "a", puedes insertarlo ejecutando `Ctrl-R a`. Todo lo que puedes hacer desde los registros en el modo normal, también puedes hacerlo en el modo línea de comandos.
2021-01-27 19:12:50 +01:00
Además, también puedes insetar la palabra que está bajo el cursor con `Ctrl-R Ctrl-W` (puedes utilizar `Ctrl-R Ctrl-A` para la PALABRA bajo el cursor). Para insertar la línea que está bajo el cursor utiliza `Ctrl-R Ctrl-L`. Para insertar todo el nombre del archivo bajo el cursor, usa `Ctrl-R Ctrl-F`.
2021-01-27 19:12:50 +01:00
También puedes autocompletar los comandos existentes. Para autocompletar el comando `echo`, mientras estás en el modo línea de comandos, escribe "ec", después pulsa `<Tab>`. Deberías ver en la parte inferior izquierda de la pantalla los comandos de Vim que empiezan con "ec" (ejemplo: `echo echoerr echohl echomsg econ`). Para ir a la siguiente opción, pulsa tanto `<Tab>` o `Ctrl-N`. Para ir a la opción previa, puedes pulsar tando `<Shift-Tab>` o `Ctrl-P`.
2021-01-27 19:12:50 +01:00
Algunos de los comandos de la línea de los comandos aceptan nombres de archivos como argumentos. Un ejemplo es `edit`. También puedes utilizar el autocompletado en este caso. Después de ecribir el comando, `:e ` (no olvides añadir un espacio al final), presiona `<Tab>`. Vim mostrará un listado de todos los nombres de archivos relevantes entre los que puedes escoger, así no tendrás que escribirlo tu mismo.
2021-01-27 19:51:00 +01:00
## La ventana del historial y la ventana de la línea de comandos
2021-01-27 19:51:00 +01:00
Puedes consultar el historial de comandos ejecutados en la línea de comandos y buscar términos (para eso es necesario que Vim incluya la funcionalidad `+cmdline_hist` ).
2021-01-27 19:51:00 +01:00
Para abrir el historial de la línea de comandos, ejecuta `:his :`. Deberías ver algo similar a esto (pero con los comandos que tu hayas ejecutado recientemente en tu editor Vim):
```
## cmd History
2 e file1.txt
3 g/foo/d
4 s/foo/bar/g
```
2021-01-27 19:51:00 +01:00
Vim muestra un listado de todos los comandos `:` que has ejecutado, Vim de manera predeterminada almacena 50 registros en ese historial. Para cambiar la cantidad total de comandos que Vim puede recordar a 100, deberás ejecutar `set history=100`.
2021-01-27 19:51:00 +01:00
Para manejar mejor ese historial de comandos de la línea de comandos lo mejor es hacerlo mediante su ventana, para ello ejecutaremos ,`q:`. Esto abrirá una ventana en la que podremos buscar y editar el historial. Supongamos que nos aparecen estas expresiones en el historial al pulsar `q:`:
```
2021-01-27 19:51:00 +01:00
51 s/patróndesustituciónsuperlargo/tarta/g
52 his :
53 wq
```
2021-01-27 19:51:00 +01:00
Si lo que necesitas hacer es `s/patróndesustituciónsuperlargo/donut/g`, en vez de escribir el comando de nuevo, porque no reutilizar el comando que encontramos en el historial `s/patróndesustituciónsuperlargo/tarta/g`? Después de todo, la única diferencia es la palabra que se quiere sustituir, "donut" vs "tarta". Todo lo demás es lo mismo.
2021-01-27 19:51:00 +01:00
Después de ejecutar `q:`, encuentra ese comando `s/patróndesustituciónsuperlargo/tarta/g` en el historial (puedes utilizar las teclas de navegación de Vim cuando estás en esta pantalla) ¡y editarlo directamente! Cambia "tarta" por "donut" dentro de la propia ventana del historial, y después pulsa `<Enter>`. ¡Boom! Vim ejecuta `s/patróndesustituciónsuperlargo/donut/g` para ti. ¡Justo lo que querías!
2021-01-27 19:51:00 +01:00
De manera similar, para ver el historial de búsquedas, ejecuta `:his /` o `:his ?`. Para abrir la ventana del historial de búsquedas en donde prodrás buscar y editar entradas anteriores del historial, ejecuta `q/` o `q?`.
2021-01-27 19:51:00 +01:00
Para salir de esta ventana, pulsa `Ctrl-C`, `Ctrl-W C`, o escribe `:quit`.
2021-01-27 19:51:00 +01:00
## Más comandos para la línea de comandos
2021-01-27 19:51:00 +01:00
Vim tiene cientos de comandos propios. Para ver todos los comandos que tiene Vim, echa un vistazo a `:h ex-cmd-index` o `:h :index`.
2021-01-27 19:51:00 +01:00
## Aprender el modo línea de comandos de la manera más inteligente
2021-01-27 19:51:00 +01:00
Comparado con los otros tres modos, el modo de línea de comandos de Vim es como una "navaja suiza" de la edición de textos. Puedes editar texto, modificar archivos y ejecutar comandos, solo por nombrar unos pocos. Este capítulo cierra la serie de los modos de Vim. Ahora que ya conoces y sabes utilizar el modo normal, insetar, visual y el modo línea de comandos de Vim ya puedes editar textos en Vim más eficaz y rápidamente.
2021-01-27 19:51:00 +01:00
Es la hora de movernos de los modos de Vim y aprender cómo hacer una navegación más veloz con las etiquetas de Vim.