Sugerencias para entradas en un sysadmins .vimrc


21

Como mínimo, siempre descomento "sintaxis activada" en / etc / vim / vimrc


Tenga cuidado, tener siempre la sintaxis activa puede ser una mala idea si a menudo edita archivos grandes. En archivos grandes (docenas o cientos de MB), el resaltado de sintaxis puede hacer que vim deje de responder durante varios segundos, ya que consume mucha CPU. Simplemente intente editar un archivo XML enorme ... Por supuesto, siempre puede hacer: sincronizar (una vez que vim se haya recuperado ...).
sleske

Respuestas:


4

Nuestro CTO tiene una configuración de Vim bastante llena de funciones en GitHub .

Reflejos:

  • Resaltado de sintaxis, 2 pestañas espaciales, pestañas expandidas.
  • NERDtree, una vista de árbol de archivos similar al cajón de proyectos de TextMate.
  • FuzzyFileFinder , complemento para hacer la funcionalidad cmd-T de TextMate.
  • Muchos temas de color con uno bonito (crepúsculo) predeterminado.

Lo encuentro genial para la codificación de Ruby, ya que nuestras herramientas de administración del sistema están escritas en Ruby.


Acabo de jugar con un montón de estos y hay mucho más que investigar con la configuración de vim que enumeró, pero se ajusta a mis expectativas de valores predeterminados y características útiles. No estoy seguro de cómo un wiki de la comunidad me permite votar como "respondido", pero de todas formas ¡Gracias!
Gareth el

17

En primer lugar, si usted tiene más de un par de máquinas con las que trabaja, considera poner tu ~/.vim/, ~/.vimrcy otros archivos útiles de configuración ( screen, su concha, etc.) en un sistema de control de versiones. Prefiero usar darcs: es barato en los sistemas Debian (no es necesario instalar el compilador Haskell, solo instale el paquete directamente), distribuido y tiene excelentes modos interactivos. Si sabes / te gusta git, también puedes quedarte con eso.

Mis archivos de configuración actuales están disponibles en mi repositorio darcs, http://repo.harnir.net/. Algunos ejemplos específicos de mi ~/.vimrcseguimiento. Lo siento, no hay enlaces para scripts, etc. porque soy un usuario nuevo, pero todos aquellos en los que puedes encontrar http://vim.org/.

Escrituras esenciales de ViM para administradores de sistemas

  • una secuencia de comandos de respaldo es imprescindible cuando edita archivos remotos. Puedo utilizar cbackup.vim guión, que mantiene desde hace 10 copias de cada archivo editado en un directorio central y elimina automáticamente los antiguos - sólo hay que poner en su ~/.vim/plugins/directorio y olvidarse de él :-)

  • Lista de Tareas le permite buscar rápidamente FIXME, XXXy TODOlas etiquetas en el archivo actual, los muestra y vaya a la etiqueta con una sola pulsación de tecla. Si usa estas etiquetas, considere instalar esta

  • dbext es esencial para todos los DBA, también es muy útil para programadores que trabajan con bases de datos. Vamos a ejecutar consultas, verificar la estructura de las bases de datos y otras cosas. Se trata esencialmente de una interfaz para herramientas como mysql, sqlite3, sqlplusy otros. Si trabaja con bases de datos, ¡es imprescindible!

Archivos de sintaxis

No he visto muchas sintaxis útiles en la naturaleza, la mayoría de los archivos con los que trabajan los administradores de sistemas son configuraciones /etcy generalmente están bastante bien resaltados. En mi momento, ~/.vim/syntax/tengo una sintaxis para los colores CSS , lo cual es increíble (también es bueno para los desarrolladores web), pero el resto no está muy bien escrito, tal vez los actualice en el tiempo libre. Los archivos de sintaxis adicionales que vale la pena tener son para: dhcpd.conf , / etc / network / interfaces , archivos de configuración nginx y local.cf de SpamAssassin .

Consejo útil con sintaxis: si no se reconoce un archivo de configuración (tiene un nombre extraño, como /etc/apache2/sites-enabled/some.domain.com, puede agregar la extensión correcta a su nombre (en este caso .conf) o agregar una línea de modo ViM al final:

# vim: filetype = apache

Opciones de configuración de ViM

La mayoría de las opciones de configuración son muy populares, como set nocompatible ruleretc. Muy buenas opciones para tener son:

  • set gdefault: invierte el gmodo en s///g- con esa opción /gse usará de manera predeterminada, por lo que no necesita agregarlo todo el tiempo - solo agréguelo para desactivarlo

  • set incsearch ignorecase smartcase hlsearch: esencial para buscar a través de archivos - incremental, muestra coincidencias en tiempo real, la búsqueda ignora mayúsculas y minúsculas a menos que use letras mayúsculas

  • set pastetoggle=<F6>: u otra tecla que prefiera, alterna entre los modos pastey nopaste, una necesidad si copia y pega algo de páginas web como ServerFault :-)

  • set noerrorbells visualbell t_vb=: deshazte de la campana molesta o visual cada vez que hagas algo;)

Funciones, asignaciones de teclado

  • pegue su nombre de usuario y fecha actual en un archivo, útil si trabaja en un equipo y agrega comentarios en los archivos sobre quién cambió algo y cuándo. Simplemente escriba xxsigy presione la barra espaciadora, se cambiará a algo así harnir 20090531. Para que esto funcione correctamente con root (es decir, escriba su nombre de usuario en lugar de root), debe iniciar sesión con sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` fecha '+ \% Y \% m \% d'` "\ | \ | echo "$ USER` fecha '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • Inserte "líneas" de comentario, como # -- Some title -------------------{{{1, longitud 78 caracteres - presione \com#en modo normal y ahí está. Estará automáticamente en modo Reemplazar para que pueda agregar el título:

    nmap \ com # O # <Esc>72A-<Esc>3A{<Esc>A1<Esc> <Home> 4 <Right> R <Space>
    

Usted puede modificar fácilmente para otros sistemas de comentario ( ", //, etc.), o simplemente revisar mi archivo de configuración.

Toque final

Si tiene sus archivos de configuración en el sistema RCS, es posible que a veces desee incluir opciones de configuración específicas para una determinada máquina. Para eso, es bueno tener el ~/.vimrc.localarchivo, incluido automáticamente al final de la configuración (si está presente, por supuesto).

si es legible (expandir ("~ / .vimrc.local"))
        fuente ~ / .vimrc.local
terminara si

El último consejo, por bueno que sea, no funciona cuando tienes directorios de inicio montados en NFS: no importa en qué máquina estés, tu directorio de inicio será el mismo. Tenga en cuenta también que ese consejo depende de la definición de "~": algunos shells no admiten esa abreviatura.
Mei

Como administrador de sistemas, probablemente trabaje en los servidores en la cuenta 'root', que debe ser local y no montada a través de NFS. En este caso /root/.vimrc.local debería funcionar bien.
drybjed

6

No estoy seguro de qué parte de esto está específicamente relacionado con el administrador de sistemas, pero mis elementos esenciales son:

syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
  filetype plugin indent on
endif
set showcmd             " Show (partial) command in status line.
set showmatch           " Show matching brackets.
set ignorecase          " Do case insensitive matching
set smartcase           " Do smart case matching
set incsearch           " Incremental search

También siempre me aseguro de que la máquina tenga acceso al archivo de resaltado de sintaxis nginx .


Solo lo expresé así para separar lo que podría estar específicamente relacionado con la 'programación' para un .vimrc ¿Debería cambiar la pregunta, cree usted?
Gareth

No, déjalo como está, estoy seguro de que algunas personas tienen cosas relacionadas con el administrador de sistemas, pero yo no.
Adam Gibbins

Generalmente de acuerdo con esto ... Pero una pestaña tiene 8 espacios. Cualquier otra cosa y se comporta de manera diferente en vim que en less / tail / cat. Sin embargo, podría ser una de esas cosas religiosas.
Alexandre Carmel-Veilleux el

4

Si por lo general trabaja con un usuario, esto permite "canalizar" un archivo a sudo para que se pueda guardar.

cmap w!! %!sudo tee > /dev/null %

usa el comando:

:w!!

para invocar sudo y guardar el archivo.


Interesante. ¿Por qué usas en teelugar de cat?
David Schmitt

1
Porque el gato no escribirá nada en un archivo; solo escribe en stdout.
Chris Jester-Young

cat ->% Funciona igual de bien.
olle


2

Enchufe descarado. Esto no es realmente un cambio .vimrc sino un complemento VIM. Yo uso RCSVers en cada versión instalada de VIM. Básicamente, utiliza el comando RCS para guardar una versión de cualquier archivo que edite. No sabe cuántas veces he arruinado un archivo de configuración solo para que los RCSVers me salven mostrándome los cambios que he realizado.

http://www.vim.org/scripts/script.php?script_id=563


2

No use .vimrc para evitar aprender VIM

Como sé que muchos de los nuevos miembros de VIM leerán esto, la mejor sugerencia que tengo es: "No seas flojo y pon entradas de mapa en tu .vimrc" Aprender formas no estándar de hacer las cosas en VIM te hará sentir como un truco total cuando estás sin tu vimrc. La curva de aprendizaje para vi es empinada, pero no te estás haciendo ningún favor al elegir no aprender.


1
Vim tiene buenas características. ¿Por qué no usarlo? Cuando tienes que cambiar a vi, es temporal. Si cree que tendrá que trabajar mucho donde no está instalado vim, vale la pena instalarlo.
Luc M

0

Al menos una parte de mi respuesta es la misma que mi programación .vimrc:

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

Si al menos algunos archivos que está editando no están en RCS, ¡deberían estarlo! :)



0

A menudo termino usando strace para localizar problemas extraños. Como resultado, tratar de resaltar la sintaxis de algunas de las líneas puede volverse ridículo con una cadena de cadena grande. Siendo este el caso, uso set synmaxcol = 2048 para limitar el resaltado de sintaxis a 2048 columnas.

También soy un gran admirador del complemento taglist que usa etiquetas exuberantes. Hasta ahora, he podido mover el binario ctags compilado y no he encontrado ningún problema con la biblioteca. Esto rápidamente me permite navegar entre cualquiera de los códigos con los que trabajo. Los que generalmente son Perl, Python o C.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.