salir insertar cómo con comandos comando borrar archivo vim

insertar - Comandos VIM simples que desearías haber conocido anteriormente



manual vi (30)

¡Construye y depura tu código desde dentro de vim!

Configuración

No mucho realmente. Necesitas un Makefile en el directorio actual.

Compilar

Mientras esté en vim, escriba :make para invocar un shell, compile su programa. No te preocupes cuando la salida se desplace por; solo presione [Enter] cuando termine para regresar a vim.

La magia

De vuelta en vim, tiene los siguientes comandos a su disposición:

  1. :cl enumera los errores, advertencias y otros mensajes.
  2. :cc muestra el mensaje de error / advertencia actual en la parte inferior de la pantalla y salta a la línea ofensiva en su código.
  3. :cc n salta al n ésimo mensaje.
  4. :cn avanza al siguiente mensaje.
  5. :cp salta al mensaje anterior.

Hay mas; Si está interesado, escriba :help :cc desde dentro de vim.

Estoy aprendiendo nuevos comandos en VIM todo el tiempo, pero estoy seguro de que todos aprenden algo nuevo de vez en cuando. Recientemente me enteré de esto:

zz, zt, zb : posiciona el cursor en la parte central, superior o inferior de la pantalla

¿Cuáles son algunos otros comandos útiles o elegantes que desearías haber aprendido hace años?


  1. No aprietes escapar jamás. Vea esta respuesta para saber por qué . Como se mencionó anteriormente, ctrl-c es una mejor alternativa. Recomiendo encarecidamente mapear las teclas de bloqueo para escapar.

  2. Si está editando un lenguaje compatible con ctags, usar un archivo de etiquetas y: ta, ctrl-], etc. es una excelente manera de navegar por el código, incluso a través de múltiples archivos. Además, la finalización de ctrl-n y ctrl-p con el archivo de etiquetas es una excelente manera de reducir las pulsaciones de teclas.

  3. Si está editando una línea que está ajustada porque es más ancha que su búfer, puede subir / bajar usando gk y gj.

  4. Trate de concentrarse en el uso efectivo de los comandos de movimiento antes de aprender malos hábitos. Cosas como usar ''dt'' o ''d3w'' en lugar de presionar xa un montón de veces. Básicamente, en cualquier momento en que se encuentre presionando la misma tecla repetidamente, es probable que haya una manera mejor / más rápida / más concisa de lograr lo mismo.


Abriendo múltiples archivos usando pestañas:

:tabe filepath

navegando entre archivos abiertos

gt and gT or :tabn and :tabp

Guarde la sesión abierta para que pueda volver a su lista de archivos abiertos más tarde:

:mksession session_file_name.vim

Abrir una sesión creada

vim -S session_file_name.vim

cerrar todos los archivos a la vez

:qa

Otro comando que aprendí recientemente:

autocmd

Le permite ejecutar un comando en un evento, por lo que podría, por ejemplo, ejecutar el comando make cuando guarde un archivo utilizando algo como:

:autocmd BufWritePost *.cpp :make


Algunas de mis últimas adiciones a mi brainstore de VIm:

  • ^wi : Salta a la etiqueta debajo del cursor dividiendo la ventana.
  • cib/ciB : cambia el texto dentro del conjunto actual de paréntesis () o llaves {}, respectivamente.
  • :set listchars=tab:>-,trail:_ list : Muestra tabulaciones / espacios finales visualmente diferentes de otros espacios. Ayuda mucho con la codificación de Python.

Debería decir que uno de mis favoritos es colocar la ventana de ayuda en una nueva pestaña:

:tab help <help_topic>

Esto abre la ayuda en una nueva pestaña y, como alguien que ama las pestañas de vim, esto es ridículamente útil.


Desearía haber sabido cosas del modo de bloqueo visual básico antes. Incluso si no usa VIM para otra cosa, puede ser un gran ahorro de tiempo abrir un archivo en VIM solo para algunas operaciones de bloque. Estoy bastante seguro de que perdí un montón de tiempo haciendo este tipo de cosas manualmente.

He encontrado ejemplos particularmente útiles, cuando, por ejemplo, refactorizando listas de nombres de constantes simbólicas de manera consistente:

Ingrese al modo Bloqueo visual ( Ctrl-Q para mí en Windows en lugar de Ctrl-V )

Mueva el cursor para resaltar el bloque deseado.

Luego, I whatever text y presione Esc para insertar el texto delante del bloque en cada línea.

Use A lugar de I para insertar el texto después del bloque en cada línea.

Además, simplemente alternar el caso de una selección visual con ~ puede ser un gran ahorro de tiempo.

Y simplemente borrando columnas, también, con d por supuesto.


El truco "wow" más reciente que aprendí es un método para realizar búsquedas y reemplazos complicadas. Muy a menudo en el pasado, he tenido una expresión muy complicada para hacer sustituciones y no ha funcionado. Hay una mejor manera:

:set incsearch " I have this in .vimrc /my complicated regexp " Highlighted as you enter characters :%s//replace with this/ " You don''t have to type it again

El "truco" aquí (a falta de una palabra mejor) es la forma en que puede usar la búsqueda para crear la expresión regular (y ''incsearch'' lo resalta al ingresar caracteres) y luego usar un patrón vacío en la sustitución: el vacío patrón predeterminado para el último patrón de búsqueda.

Ejemplo:

/blue/(/d/+/) :%s//red/1/

Equivalente a:

:%s/blue/(/d/+/)/red/1/

Ver:

:help ''incsearch'' :help :substitute


Escribir un número de línea seguido de gg lo llevará a esa línea.


Hasta [carácter] ( t ). Útil para cualquier comando que acepte un rango. Mi favorito es ct; o ct) que borra todo hasta el punto y coma final / los paréntesis de cierre y luego lo coloca en el modo de inserción.

Además, G y gg son útiles (Ir a la parte inferior y superior respectivamente).


He creado esta referencia de mi comando más utilizado para un amigo mío. Espero que la gente encuentre algo útil:

select v select row(s) SHIFT + v select blocks (columns) CTRL + v indent selected text > unindent selected text < list buffers :ls open buffer :bN (N = buffer number) print :hardcopy open a file :e /path/to/file.txt :e C:/Path/To/File.txt sort selected rows :sort search for word under cursor * open file under cursor gf (absolute path or relative) format selected code = select contents of entire file ggVG convert selected text to uppercase U convert selected text to lowercase u invert case of selected text ~ convert tabs to spaces :retab start recording a macro qX (X = key to assign macro to) stop recording a macro q playback macro @X (X = key macro was assigned to) replay previously played macro * @@ auto-complete a word you are typing ** CTRL + n bookmark current place in file mX (X = key to assign bookmark to) jump to bookmark `X (X = key bookmark was assigned to ` = back tick/tilde key) show all bookmarks :marks delete a bookmark :delm X (X = key bookmark to delete) delete all bookmarks :delm! split screen horizontally :split split screen vertically :vsplit navigating split screens CTRL + w + j = move down a screen CTRL + w + k = move up a screen CTRL + w + h = move left a screen CTRL + w + l = move right a screen close all other split screens :only * - As with other commands in vi, you can playback a macro any number of times. The following command would playback the macro assigned to the key `w'' 100 times: 100@w ** - Vim uses words that exist in your current buffer and any other buffer you may have open for auto-complete suggestions.


La tecla de asterisco * buscará la palabra debajo del cursor.

[ + Tab te llevará a la definición de una función C que está debajo de tu cursor. (aunque no siempre funciona).


Presione % cuando el cursor está en una cita, parén, corchete o corsé para encontrar su coincidencia.


Puede usar un conjunto completo de comandos para cambiar el texto entre paréntesis / paréntesis / comillas / etiquetas. Es muy útil evitar tener que encontrar el inicio y el final del grupo. Pruebe ci(, ci{, ci<, ci", ci'', ct dependiendo del tipo de objeto que desee cambiar. Y las ca(, ca{, ... variantes eliminan también los corchetes / comillas.

Fácil de recordar: cambie dentro de una declaración entre corchetes / cambie una declaración entre corchetes.


Realmente desearía haber sabido que puedes usar Ctrl C en lugar de Esc para cambiar el modo de inserción. Eso ha sido un verdadero aumento de la productividad para mí.


esto siempre me anima

:help 42


q <letter> - graba una macro.

y

@ <same-letter> - lo reproduce.

Estos son, con mucho, los comandos más útiles en vim, ya que puede hacer que la computadora haga mucho trabajo por usted, y ni siquiera tiene que escribir un programa ni nada.


vimcryption

vim -x nombre_archivo.txt

Se le pedirá una frase de contraseña, editar y guardar. Ahora, cada vez que abra el archivo en vi nuevamente tendrá que ingresar la contraseña para ver.


:b [any portion of a buffer name] para cambiar búferes. Entonces, si tiene dos buffers "somefile1.txt", y "someotherfile2.txt", puede cambiar al segundo simplemente con ":b 2.t<enter>" . También admite la finalización de pestañas, aunque no es obligatorio.

Hablando de completar la pestaña, la configuración :set wildmode=full wildmenu también es muy útil. Permite la finalización completa de las pestañas para el modo de comando, así como un menú de estilo ncurses muy útil de todas las posibles coincidencias cuando se usa.


ZZ (funciona como :wq )

Sobre la posición del cursor. Encontré que el cursor que siempre permanece en el medio de la pantalla es genial

set scrolloff=9999


^r^w para pegar la palabra debajo del cursor en el modo de comando. Realmente útil cuando se usan comandos grep o reemplazar


: shell para iniciar una consola shell desde Vim. Útil cuando, por ejemplo, desea probar un script sin salir de Vim. Simplemente presione ^ d cuando haya terminado con la consola de shell y luego vuelva a Vim y su archivo editado.


:% s, / buscar, / reemplazar,

Puede utilizar otros caracteres que » / « para separar los patrones de sustitución. De esta manera, no tienes que escapar de las barras de los archivos.


^ P y ^ N

Complete el texto anterior (^ P) o siguiente (^ N).

^ O y ^ I

Ir a la ubicación anterior (^ O - "O" para la ubicación anterior) o al siguiente (^ I - "I" cerca de "O"). Cuando realiza búsquedas, edita archivos, etc., puede navegar a través de estos "saltos" hacia adelante y hacia atrás.

marcas

Presione ma (marca m, a - nombre de la marca). Más tarde para volver al tipo de posición `a


^ XF completa el uso de los nombres de archivo del directorio actual. No más copiar / pegar desde el terminal o hacer una doble comprobación dolorosa.

^ XP completa usando palabras en el archivo actual

: establecer scrollbind obliga a un búfer a desplazarse junto a otro. Por ejemplo, dividir la ventana en dos paneles verticales. Cargue un archivo en cada uno (quizás versiones diferentes del mismo archivo). Hacer :set scrollbind en cada uno. Ahora, cuando se desplaza en uno, ambos paneles se desplazarán juntos. Ideal para comparar archivos.


^ y copiará el carácter sobre el cursor.


gi cambia al modo de inserción colocando el cursor en la misma ubicación que estaba anteriormente.


gv inicia el modo Visual y selecciona automáticamente lo que seleccionó anteriormente.


qx comenzará a grabar las pulsaciones de teclado. Puedes hacer prácticamente cualquier tarea de edición y Vim lo recuerda. Presione q nuevamente cuando haya terminado, y presione @x para repetir sus pulsaciones. Esto es ideal para ediciones repetitivas que son demasiado complejas para escribir un mapeo. Puedes tener muchas grabaciones usando un carácter que no sea x .


:q!

Ojalá lo supiera antes de empezar vi por primera vez.


:x #(Save and Quit a File)

Igual que: wq o zz