¿Qué características de Vim usas? [cerrado]

13

Paso casi todo el día programando en Vim y estoy seguro de que muchos de ustedes también lo hacen. ¿Qué características utiliza que hacen que su codificación diaria sea mucho mejor? Uno que uso es gv , que te permitirá volver a seleccionar el texto seleccionado previamente. ¡Es genial para reindenting!

Peter Mortensen
fuente
1
Para fines históricos, aquí hay un enlace a la pregunta SO original: stackoverflow.com/questions/95072/…
Jax
Tenga en cuenta mi comentario a continuación, y ni siquiera tendrá que escribir gv. :)
Nathan Long

Respuestas:

9

:% s / x / y / g

Este comando reemplaza todas las instancias de x en el archivo actual con y . Esto es básicamente solo una búsqueda y reemplazo, pero lo uso con tanta frecuencia desde que lo aprendí en el trabajo que se ha vuelto invaluable.

Además, / cadena de búsqueda

luego n para navegar a través de todas las instancias de la cadena de búsqueda dentro del archivo. Ideal para hacer ajustes manuales mucho más fácilmente, especialmente si no puede aplicar una regla a todo el archivo.

karlgrz
fuente
De hecho, estoy trabajando para convertir una sección grande de nuestra base de código en el trabajo y lo estoy haciendo completamente con expresiones regulares vim (hasta ahora). ¡Funciona muy bien!
Frew Schmidt el
Agregue 'c' al final para hacer que el comando sea interactivo. por ejemplo:% s / x / a / gc
sml
1
Tenga en cuenta que el lugar %donde se realiza la sustitución %significa "el archivo actual". Si resalta visualmente algunas líneas y tipos :s, puede hacer una sustitución solo en esa selección.
Nathan Long
7

== hace una buena sangría automática en la línea actual.

Sin embargo, normalmente lo uso =con un movimiento, como =Gsangrar hasta el final del archivo, o =i}sangrar dentro del conjunto actual de llaves.

Nathan Long
fuente
2
También tenga en cuenta >> y << que pueden hacer (des) sangría manualmente.
Frew Schmidt el
@Frew - sí. Además, si agrega vmap <Tab> >gvy vmap <S-Tab> <gva su .vimrc, puede sangrar y desangrar con Tab y Shift-Tab, respectivamente, Y volverá directamente al modo de selección visual para que pueda sangrar o desangrar aún más.
Nathan Long
6

=% para sangrar automáticamente todo dentro de un bloque de código.

Kristo
fuente
Oooh! ¡Eso es nuevo para mí!
Frew Schmidt
Eso funciona si tu cursor está al principio {. Si está dentro del bloque, puede hacerlo =i{, para "sangrar dentro de las llaves".
Nathan Long
5

Use *en modo comando para buscar la palabra debajo del cursor.

Jonas
fuente
1
¡Y no olvide que es el comando hermano #, que hace lo mismo pero retrocede en lugar de avanzar!
Frew Schmidt el
5

El :!comando - invaluable para lsing, y el truco "sudo tee".

Me han pedido que explique el truco del tee. Básicamente, le permite guardar un archivo de texto con privilegios de administrador, incluso si no inició VIM como root:

:w !sudo tee %
persona-b
fuente
Es posible que desee explicar el truco "sudo tee" aquí :-) También me gusta hacer: ordenar después de resaltar las definiciones de variables y otras cosas.
Frew Schmidt el
Realmente puedes convertir a Vim en un gran editor "programable" usando:! y algunos scripts de shell / Python / Perl / otros.
Jonas el
De hecho, tengo una alternativa para !ls, que ejecuta a vnew, salidas r!lsal nuevo búfer y lo reduce horizontalmente. No puedo molestarme en recordar todos los archivos en un directorio con más de tres;)
new123456
4
.

Golpeando el. La tecla repite el comando anterior. Encantador para, por ejemplo, editar un .ini, más o menos.

Phoshi
fuente
Esto es sorprendentemente poderoso, pero toma un poco de tiempo antes de que realmente puedas ser bueno con él.
aaron
3

resaltado de color de sintaxis

mas
fuente
2

Siempre estoy usando GQ que volver a hacer saltos de línea en el correo electrónico, archivos de texto, etc. realmente útil al responder al correo electrónico (utilizo pino) y la edición de múltiples respuestas anteriores.

erichui
fuente
¡Oooh, me había olvidado por completo de esto!
Frew Schmidt el
¿Por qué, oh por qué, los clientes de correo electrónico más populares no pueden soportar una funcionalidad similar?
erichui el
Recientemente estoy usando gw en lugar de gq porque mantiene la posición del cursor
SergioAraujo
2

Por dónde empezar ... Aquí están las cosas que puedo recordar que he usado en los últimos 5 minutos más o menos.

  • Árbol NERD - Exploración de archivos. Hace que VIM se parezca más a un IDE.
    • Una gran cosa para mí es la capacidad de acceder a cdun directorio y luego pasar a un indicador de shell a través de mis asignaciones de shell (a continuación).
  • ci por vaciar lo que sea que te haya atrapado.
  • :! para lanzar aplicaciones estándar.
    • Tengo asignaciones para iniciar un indicador de comandos de shell, cliente mysql, archivos de registro de apache, etc.
    • La integración de Subversion siempre es agradable. Rápido diffs, stats, etc.
  • :abbr para hacer que la tipificación repetitiva de bloques grandes desaparezca.
  • Pestañas. ¿Necesito decir mas?
  • Dividir archivos, siempre bien. :SexSiempre es agradable.
  • :set paste! para evitar que la sangría automática se vuelva loca.
Jack M.
fuente
Yo uso todos estos, excepto abbr. Tiendo a hacer muchas más macros que abreviaturas.
Frew Schmidt
2

ZZ guardar y salir (en lugar de: wq!)

dogbane
fuente
¿Eh? ¿Qué hay de x ?
DevSolar
1

Uso mucho los siguientes comandos al escribir o atravesar el código C / Tcl / Perl:

copiar y pegar código

CTRL-fy CTRL-bpara atravesar página hacia adelante y hacia atrás
%para atravesar bloque por bloque
^ ir al inicio de la línea
$ ir al último final de la línea

comience a seleccionar el código usando el comando v(modo visual) y cualquiera de las teclas de desplazamiento anteriores
ypara copiar
py pegar

s para eliminar un carácter y pasar al modo de inserción para escribir texto nuevo.

Recorridos a nivel de código (requiere disciplina de estilo de codificación)

]]para el inicio de la siguiente función
[[para el inicio de la función anterior

CTRL-] saltar a la definición de una variable / función / macro si hay etiquetas disponibles.

Buscar

* => buscar palabra (o texto seleccionado usando v) en dirección hacia adelante
# => buscar palabra (o texto seleccionado usando v) en dirección hacia atrás
n => ejecutar comando de búsqueda anterior en dirección hacia adelante
N => ejecutar comando de búsqueda anterior en dirección hacia atrás

Todos los comandos anteriores se pueden anteponer con un número para indicar cuántas veces ejecutarlo. La realización del poder de esta dimensión adicional llega lentamente a medida que uno usa vim cada vez más y se desafía a sí mismo para mejorar.

seguras
fuente
Ah,]] y [[son nuevos para mí. ¡Eso es genial!
Frew Schmidt
0

Acabo de ingresar el texto. Todo lo demás es solo ... Azúcar.

akira
fuente
0

Soy un ex usuario de TextPad y había memorizado muchas de las teclas de aceleración de ese programa. Una de las primeras cosas que hice en Vim fue aprender la función de mapa para mantener la coherencia (búsqueda F5, reemplazo F8, etc.). Creé mi esquema de colores personal y tomé prestado mucho de los archivos vimrc de otros. Viva Vim! Configurable a cualquier grado.

revs wbogacz
fuente