¿Qué hay en tu .vimrc?

Woah Una pregunta del 2014.

Mis configuraciones favoritas en mi .vimrc son de los enlaces de teclas de líder

  dejar mapleader = ","
 sea ​​g: mapleader = ","

El “\” está muy lejos, así que lo reasigno a “,” porque es más fácil de golpear.

  nnoremap  : let @ / = ''  "Borrar búsqueda

Utilizo “/” para buscar muy a menudo, y cuando encontré lo que he buscado, lo uso para limpiar el resultado de la búsqueda (eliminando el resaltado amarillo).

  nnoremap  q: q! 
 nnoremap  z: wq 
 nnoremap  w: w 

Fácil guardar / salir / guardar y salir. El z está inspirado en ZZ.

  nnoremap  v  v  l "Dividir y luego moverse a la división

Cuando quieras dividir, lo siguiente que quieres hacer es moverte a esa división. Así que simplemente automatizo eso.

  nnoremap   h "Movimiento rápido
 nnoremap   j
 nnoremap   k
 nnoremap   l

Ez panel móvil. Simplemente mantenga pulsado el botón de control y luego haga hjkl como desee.

  "Listar todos los buffers
 nnoremap  B: buffers! 
 "Abrir un búfer
 nnoremap  b: b 

No uso el complemento para enumerar los buffers ya que vim ya incluye eso. Cuando quiero enumerar todos los buffers, presiono B.

Esto le mostrará los buffers y el número de buffers.

Recuerda el número. Luego presione b y escriba el número del búfer que desea abrir y luego presione intro. Hecho.

  "Alterna el modo de pegado cuando quieres pegar desde una fuente externa
 set pastetoggle =  p

Utilizo esto cuando necesito pegar algo del interwebz. Escribir “: setpaste” es demasiado trabajo, así que simplemente hago una tecla de líder para hacer eso.

~ * ~

Y esas son las claves de líder que utilicé, espero que disfruten el post 🙂

He editado el mío para satisfacer mis necesidades de desarrollo.

call pathogen # infect () #Activa el patógeno para cargar todos mis complementos

“Probablemente ya tengas estas líneas. Agrégalas si no:
sintaxis en #Activar resaltado de sintaxis
establecer nu #Activar números de línea
set expandtab #Set Tab Intent
establecer shiftwidth = 4 #set shift width para la pestaña
establecer softtabstop = 2

establecer autoindent #Activar sangría automática
establezca smartindent # Establezca una sangría inteligente que se identifique y se mueva según el código
inoremap (() i #close all (corchetes
inoremap {{}
i #close all {brackets
inoremap [[]
i #close all [brackets
inoremap <<>
i #cerrar todos < colorscheme wombat #set colorscheme a wombat (custom colorscheme) set backspace = indent, eol, start #Corrige un problema de comportamiento de retroceso
setlocal spell spelllang = es_us #Activar el corrector ortográfico

La mejor parte es que puedo usarlo también para escribir archivos sin código sin ningún problema.

Resultado:

Hay unas cuantas preguntas similares aquí en Quora. Sin embargo, desde que vi esto primero, aquí va mi respuesta.

He modificado mi vimrc para satisfacer mis necesidades desarrollando proyectos de software en C y Python. No hay mucha personalización loca allí, pero algunos trucos aquí y allá.

  1. Cambia la llave del líder a,. Esto es bastante útil ya que la tecla líder predeterminada, \ está bastante lejos y generalmente se debe mover un poco la mano para alcanzarla.
  2. set lazyredraw : no actualizar la pantalla al ejecutar macros. Muy útil cuando se ejecutan macros largas u otras tareas automatizadas de ejecución larga en vim.
  3. set relativenumber Muestra los números de línea relativos desde la posición actual del cursor en lugar de los números de línea absolutos en la primera columna. Hay una razón detrás de este ajuste. Siempre puedo ver el número de línea absoluto en mi barra de estado, de todos modos, el número de línea absoluto no suele ser necesario. Por otro lado, es muy útil tener números de línea relativos disponibles de un vistazo al intentar realizar saltos cortos en vim.
  4. [código] nnoremap : noh [/ cpde]: asigne la tecla de retorno de carro para eliminar el resaltado de búsqueda en el modo normal.
  5. Un montón de complementos por varias razones. He intentado documentar todos los complementos que uso y las razones aquí: la respuesta de Darshit Shah a Vim: ¿Cuáles son los complementos esenciales para Vim?
  6. Este es otro fragmento que hace que vim abra un archivo en la última ubicación conocida del cursor:
      autocmd BufReadPost *
     \ if line ("'\" ")> 0 && line ("' / "") <= line ("$") |
     \ exe "normal! g '\" "|
     \ terminara si
    
  7. set pastetoggle= : a menudo te enfrentas a un problema cuando intentas pegar cosas en un búfer vim. La solución es entrar en modo pegar. Esta configuración le permite alternar en el modo de pegado y viceversa con la tecla F2.
  8. inoremap : Esto me permite salir al modo normal presionando ,, . Una característica muy ingeniosa ya que la tecla Esc está muy lejos en el keboard.
  9. Entonces tengo un montón de funciones:
    •   "DiffOrig () {{{
       "Comando conveniente para ver la diferencia entre el búfer actual y el
       "desde el que se cargó, por lo tanto, los cambios que realizó. Solo defínalo cuando no
       "definido ya.
       si! existe (": DiffOrig")
         comando DiffOrig vert nuevo |  establece bt = nofile |  r ++ edit # |  0d_ |  difeso
                   \ |  wincmd p |  difeso
       terminara si
       "}}}
      

    •   "cursor francotirador {{{
       "Resalte la fila y la columna del cursor durante 2 segundos.
       set updatetime = 2000
      
       ¡función!  MySetCursor ()
      	 establecer cursorline
      	 establecer cursorcolumn
       función final
       ¡función!  MyUnSetCursor ()
      	 establecer nocursorline
      	 establecer nocursorcolumn
       función final
      
       au!  CursorHold * call MyUnSetCursor ()
       au!  CursorMoved * call MySetCursor ()
       au!  CursorMovedI * call MyUnSetCursor ()
       "}}}
      

  10. En los proyectos de software, a menudo queremos eliminar los espacios en blanco finales de los archivos de origen, ya que pueden causar pesadillas de mantenimiento. Para esto, uso el siguiente fragmento de código para identificar los espacios en blanco de prueba:
      "Resaltar espacios en blanco al final {{{
     resaltar ExtraWhitespace ctermbg = rojo guibg = rojo
     coincide con ExtraWhitespace / \ s \ + $ /
     autocmd BufWinEnter * coincide con ExtraWhitespace / \ s \ + $ /
     autocmd InsertEnter * match ExtraWhitespace / \ s \ + \% # \ @ 
    

También hay otras cosas pequeñas en mi archivo vimrc. Junto con algunas configuraciones específicas de tipo de archivo y otras cosas. Puedes verlo todo en mi repositorio:
darnir / dotfiles

Hola,

Llegué a este hilo mientras revisaba algunas cosas que podía elegir para mi .vimrc.

Aquí está mi vimrc superminimal. Funciona en Windows 7, Debian, CentOS, etc.
“Hazlo compatible vim. No con VI.
conjunto nocompatible

“Establecer números de línea
poner nu

“Establecer Autoindent
establecer autoindent

“No me pises.
vim set noerrorbells

“Simplemente flashea la pantalla (Visual Bell)
establecer vb

“Recuerda los últimos 1000 comandos.
establecer historial = 1000

“Establecer nivel de deshacer a 1000
set undolevels = 1000

“Hacer que el espacio de basks se comporte correctamente.
set backspace = 2
set backspace = indent, eol, start

“Establecer cosas relacionadas con la sintaxis
sintaxis en
sangría del plugin de tipo de archivo en

“Permítame jugar con una gran cantidad de archivos abiertos con cambios no guardados.
“Más detalles aquí – Vim 101: Set Hidden
conjunto oculto

“Ignorar el caso al buscar.
establecer ignorecase

“Resaltar mientras escribo las palabras mientras busco.
establecer búsqueda
“Si ARRANGO de esta manera, resalte SEArch; de lo contrario, resalte” buscar
“sin ningún tipo de consideración para el caso.
set smartcase

Msgstr “Hacer que el cursor salte al corchete correspondiente.
establecer showmatch

“Cuando está habilitada, la regla se muestra en el lado derecho de la línea de estado en la parte inferior de la ventana.
establecer la regla

“Mostrar las opciones cuando escribo la mitad de las cosas en el modo de comando.
set wildmenu

“Muéstrame en qué modo estoy.
establecer modo de show

Msgstr “Mostrar el comando que estoy ejecutando.
establecer showcmd

“Configura la barra de estado en la parte inferior y muestra información realmente genial.
establecer laststatus = 2
establecer statusline =% t [% {strlen (& fenc)? & fenc: ‘none’},% {& ff}]% h% m% r% y% =% c,% l /% L \% P

“Establecer codificaciones.
establecer la codificación = utf-8
establecer fileencoding = utf-8
establecer termencoding = utf-8
scriptencoding = utf-8

Ajá Mantener .vimrc da mucha alegría.

Si tengo que hacer una lista de las líneas de ahorro de tiempo de .vimrc, diría que lo siguiente me ha sido de gran ayuda a largo plazo.

  • Asigne jk al modo de escape para que no tenga que ir al final del teclado para salir del modo de inserción, también lo he asignado ;; para “Guardar y pasar al modo normal”, considerando que codifico en Python donde no se usan los puntos y comas, este atajo ahorró mucho tiempo.
  • Presionar 0 lo lleva al principio de la línea, la mayoría de las veces el código de Python está sangrado y usted desea alcanzar la primera palabra en lugar del principio de la línea, así que asigné 00 a 0w.
  • De manera similar, desea mantener un doble espacio entre dos funciones, pero al presionar “o” se ingresa al modo de inserción después de insertar una línea, por lo que se asignó; o para “insertar y poner en modo normal”, de esta manera puede agregar múltiples líneas sin Saliendo del modo normal.

Soy un gran fanático de las macros y cómo puedes configurarlas desde .vimrc. He agregado algunos de los errores comunes que puedes cometer mientras codificas en Python y se pueden corregir usando vim macro.

  • Es bastante común cambiar la recuperación del valor del diccionario para obtener la función para evitar KeyError, por lo tanto, he mapeado una macro que le permite cambiar dc [“key”] a dc.get (“key”,) con un par de pulsaciones de teclas. La verdadera belleza de la macro es que puede configurar el cursor para que se encuentre en una posición que sea favorable para usted. En este caso, el cursor está justo después de “,” para que pueda comenzar a escribir return cuando no se encuentra la clave.
  • He agregado otra macro para encapsular una palabra entre paréntesis para que pueda aplicar la función necesaria sobre dicha palabra.

He cargado mi .vimrc en Github, de modo que esté disponible si tengo que trabajar en algún servidor o en la computadora de otra persona por un tiempo.