Vi y Vim permiten una personalización realmente impresionante, generalmente almacenada dentro de un .vimrc
archivo. Las características típicas para un programador serían resaltado de sintaxis, sangría inteligente, etc.
¿Qué otros trucos para la programación productiva tienes escondidos en tu .vimrc?
Estoy principalmente interesado en refactorizaciones, clases automáticas y macros de productividad similares, especialmente para C #.
vim
refactoring
Alguien
fuente
fuente
Respuestas:
Tú lo pediste :-)
fuente
Esto no está en mi archivo .vimrc, pero ayer me enteré del
]p
comando. Esto pega el contenido de un búfer como lop
hace, ¡pero ajusta automáticamente la sangría para que coincida con la línea en la que está el cursor! Esto es excelente para mover el código.fuente
Utilizo lo siguiente para mantener todos los archivos temporales y de respaldo en un solo lugar:
Guarda los directorios de trabajo desordenados en todo el lugar.
Primero deberá crear estos directorios, vim no los creará por usted.
fuente
Alguien (a saber, Frew) que publicó anteriormente tenía esta línea:
"Cd automáticamente en el directorio en el que se encuentra el archivo:"
Estaba haciendo algo así hasta que descubrí que lo mismo podría lograrse con una configuración integrada:
Creo que me ha sucedido algo similar en diferentes ocasiones. Vim tiene tantas configuraciones y opciones integradas diferentes que a veces es más rápido y más fácil de implementar que buscar en los documentos la forma integrada de hacerlo.
fuente
autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
que hace lo mismo básico pero no paraliza la línea de comando.Mi última incorporación es para resaltar la línea actual.
fuente
set cul
yset cursorline
haz exactamente lo mismo.Actualización 2012 : ahora realmente recomendaría revisar vim-powerline que ha reemplazado mi antiguo script de línea de estado, aunque actualmente faltan algunas características que echo de menos.
Yo diría que las cosas de la línea de estado en mi vimrc probablemente fueron las más interesantes / útiles fuera del lote (arrancado de los autores vimrc aquí y la publicación de blog correspondiente aquí ).
Captura de pantalla:
línea de estado http://img34.imageshack.us/img34/849/statusline.png
Código:
Entre otras cosas, informa en la línea de estado de la información de archivo estándar habitual, pero también incluye cosas adicionales como advertencias para: establecer pegar, sangría mixta, espacio en blanco final, etc. Bastante útil si eres particularmente anal sobre el formato de tu código.
Además, y como se muestra en la captura de pantalla, combinarlo con Syntastic permite resaltar cualquier error de sintaxis (suponiendo que su idioma de elección tenga un verificador de sintaxis asociado incluido.
fuente
autocmd BufEnter *.py match OverLength /\%81v.\+/
en .vimrc para resaltar líneas largas, pero su enfoque podría ser menos molesto. Además, el resultado de la verificación de sintaxis en la barra de estado es una cosa realmente genial.Mi mini versión:
La versión grande, recopilada de varios lugares:
fuente
A veces las cosas más simples son las más valiosas. Las 2 líneas en mi .vimrc que son totalmente indispensables:
fuente
nore \ ;
lugar ya que uso,
como mi<leader>
Misceláneos ajustes:
Apague las molestas campanas de error:
Haga que el cursor se mueva como se esperaba con líneas ajustadas:
Busque
ctags
"etiquetas" en el directorio del archivo, hasta encontrar uno:Mostrar archivos SCons con sintaxis Python:
fuente
j
/k
mover como se esperaba con líneas ajustadas? No quiero presionarg
todo el tiempo.No soy el vim'er más avanzado del mundo, pero aquí hay algunos que he recogido
Hace que la pestaña autocompletar determine si desea colocar una palabra allí o una pestaña real (4 espacios).
Elimine todos los espacios en blanco de apertura desde aquí hasta el final del archivo. Por alguna razón, esto me parece muy útil.
Muestra los números de línea y no crees esos molestos archivos de respaldo. Nunca he restaurado nada de una copia de seguridad antigua de todos modos.
Mientras está en inserción, presione i dos veces para ir al modo de comando. Nunca me he encontrado con una palabra o variable con 2 i seguidas, y de esta manera no tengo que dejar que mis dedos salgan de la fila de inicio o presionar varias teclas para cambiar de un lado a otro.
fuente
Mi vimrc muy comentado, con combinaciones de teclas readline-esque (emacs):
fuente
fuente
Algunas correcciones para errores tipográficos comunes me han ahorrado una cantidad sorprendente de tiempo:
fuente
No me di cuenta de cuántas de mis 3200 .vimrc líneas eran solo para mis necesidades peculiares y sería bastante poco inspirador enumerarlas aquí. Pero tal vez por eso Vim es tan útil ...
fuente
Mi línea 242
.vimrc
no es tan interesante, pero como nadie lo mencionó, sentí que debía compartir las dos asignaciones más importantes que han mejorado mi flujo de trabajo además de las asignaciones predeterminadas:En serio, cambiar buffers es lo que se debe hacer con mucha frecuencia. Windows, claro, pero no todo encaja tan bien en la pantalla.
Conjunto similar de mapas para la exploración rápida de errores (ver solución rápida) y resultados grep:
Simple, sin esfuerzo y eficiente.
fuente
fuente
Yo uso cscope desde vim (haciendo un gran uso de los múltiples buffers). Yo uso control-K para iniciar la mayoría de los comandos (robado de ctags como recuerdo). Además, ya he generado el archivo .cscope.out.
si tiene ("cscope")
terminara si
fuente
Mantengo mi archivo vimrc en github. Lo puedes encontrar aquí:
http://github.com/developernotes/vim-setup/tree/master
fuente
Estoy en OS X, por lo que algunos de estos pueden tener mejores valores predeterminados en otras plataformas, pero independientemente:
fuente
softtabstop
y usar eso en lugar detabstop
. Dejarlotabstop
en su valor predeterminado de 8 ayudará cuando lea archivos que otros hayan creado con pestañas.= es para reformatear los párrafos normales. + es para reformatear párrafos en correos electrónicos citados. showmatch es para mostrar el paréntesis / paréntesis correspondiente cuando escribo un paréntesis o paréntesis cercano.
fuente
Use el primer archivo de 'etiquetas' disponible en el árbol de directorios:
Izquierda y derecha son para cambiar buffers, no mover el cursor:
Deshabilite el resaltado de búsqueda con solo presionar una tecla:
fuente
fuente
if has("gui_running")
, y mapas geniales. He copiado la mayoría de tu configuración en la mía. ¡GRACIAS!Pon esto en tu vimrc:
y nunca pienses en escribir un hashrocket de nuevo. Sí, sé que no es necesario en Ruby 1.9. Pero no importa eso.
Mi vimrc completo está aquí .
fuente
autocmd FileType ruby imap <C-l> <Space>=><Space>
Bueno, tendrás que buscar mis configuraciones tú mismo. Que te diviertas. Principalmente es solo mi configuración deseada, incluidas las asignaciones y las cosas aleatorias relevantes para la sintaxis, así como la configuración plegable y alguna configuración de complemento, un analizador de compilación de texto, etc.
Por cierto, algo que encontré extremadamente útil es "resaltar palabra debajo del cursor":
Tenga en cuenta que solo
cterm
ytermfg
se usan, porque yo no usogvim
. Si desea que eso funcione,gvim
simplemente reemplácelos congui
yguifg
, respectivamente.fuente
Intenté mantener mi .vimrc lo más útil posible en general.
Un truco útil es un controlador para archivos .gpg para editarlos de forma segura:
fuente
1) Me gusta una línea de estado (con el nombre del archivo, el valor ascii (decimal), el valor hexadecimal y las líneas estándar, cols y%):
2) También me gustan las asignaciones para ventanas divididas.
fuente
En realidad, no hay mucho en mi .vimrc (incluso si tiene 850 líneas). Principalmente configuraciones y algunas asignaciones comunes y simples que era demasiado vago para extraer en complementos.
Si te refieres a "archivos de plantilla" por "clases automáticas", estoy usando un complemento expansor de plantilla ; en este mismo sitio, encontrarás los ftplugins que he definido para la edición en C y C ++, algunos pueden estar adaptados a C # supongo.
Con respecto al aspecto de refactorización, hay un consejo dedicado a este tema en http://vim.wikia.com ; IIRC el código de ejemplo es para C #. Me inspiró un plugin de refactorización que todavía necesita mucho trabajo (necesita ser refactorizado en realidad).
Debe echar un vistazo a los archivos de la lista de correo de vim, especialmente los temas sobre el uso de vim como un IDE efectivo. No olvides echar un vistazo a: marca, etiquetas, ...
HTH
fuente
Mi .vimrc incluye (entre otras cosas más útiles) la siguiente línea:
Me aburrí mientras aprendía para mis finales de secundaria.
fuente
Aquí está mi .vimrc. Yo uso Gvim 7.2
fuente
¿Qué hay en mi
.vimrc
?Los archivos de configuración reales se encuentran debajo
~/.vim/ :)
Y la mayoría de las cosas allí están parasitando los esfuerzos de otras personas, adaptadas descaradamente
vim.org
a mi ventaja de edición.fuente