💾 Archived View for gemini.astropirados.space › gemlog › poniendo-a-dieta-mi-vim.gmi captured on 2024-03-21 at 15:10:45. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-04-28)
-=-=-=-=-=-=-
____ __ ____ __ __ / __ \___ ________ / /_ / __ \___ / /_ ____ ____ / /_ / /_/ / _ \/ ___/ _ \/ __/ / /_/ / _ \/ __ \/ __ \/ __ \/ __/ / _, _/ __(__ ) __/ /_ / _, _/ __/ /_/ / /_/ / /_/ / /_ /_/ |_|\___/____/\___/\__/ /_/ |_|\___/_.___/\____/\____/\__/
Hace algunos años que di un paso en mi forma de programar; decidí aprender a usar Vim. Pasar de usarlo de vez en cuando para editar algún fichero a convertirlo en mi editor principal para todo, incluido mi trabajo.
Con el tiempo, tras superar cierto punto de la curva de aprendizaje y añadir unos cuantos plugins, tuve una buena configuración, que a más de uno sorprendía cuando veía mi ventana. Parecía un IDE completamente.
También, con el tiempo, empecé a descubrir que estaba cometiendo un grave error en mi manera de usar Vim; en concreto, me estaba quitando mucho espacio para trabajar con lo principal, el texto de mi código y los plugins comenzaban a tener problemas de compatibilidad.
Me puse a investigar en cómo reducir tanto todo el espacio sin usar en mi pantalla y cómo reducir el uso de plugins que tenía en uso, y vaya cambio.
La primera fase de la reducción de "peso" de mi Vim fue el de dejar de usar plugins para los que ya tengo algo que sirve en Vim ya disponible.
El primero en caer fue la famosa Airline, que te muestra información muy util, y con mucho arte, en la barra de estado. Pero es que, al margen de caracteres específicos que necesitas parches para tener (lo cual de por si ya es un engorro) ese aspecto, por lo demás, ajustando la
variable statusline puedes obtener lo mismo sin mayor complicación. Sin flechitas bonitas, pero igualmente práctica. Os dejo mi configuración actual para que la probéis si os apetece.
" Wrap fugitive statusline function to remove the pesky Git and
" parenthesis off it
function! MyGitBranch()
let branch = FugitiveStatusline()
let branch = substitute(branch, "Git(", "", "g")
return substitute(branch, ")", "", "g")
endfunction
function! PasteForStatusline()
let paste_status = &paste
if paste_status == 1
return "[PASTE]"
else
return ""
endif
endfunction
function! GetCurrentMode()
let g:currentmode={
\ 'n' : '',
\ 'v' : '[VISUAL]',
\ 'V' : '[V·Line]',
\ "\<C-V>" : '[V·Block]',
\ 'i' : '[INSERT]',
\ 'R' : '[REPLACE]',
\ 'Rv' : '[V·Replace]',
\ 'c' : '[Command]',
\}
let modekey = mode()
if has_key(g:currentmode, modekey)
return toupper(g:currentmode[modekey])
else
return ""
endif
endfunction
" Nice statusline
set statusline=%#TabLine# " Escoge un color
set statusline+=%{GetCurrentMode()}\%{PasteForStatusline()} " Modo actual
set statusline+=%f " Fichero actual abierto
set statusline+=%m " Flag de modificado
set statusline+=%r " Muestra si el archivo es sólo lectura
set statusline+=%h " Muestra is el buffer es de ayuda
set statusline+=%w " Muestra si es ventana de preview
set statusline+=[%L] " Total de líneas
set statusline+=%y " Tipo de fichero actual
set statusline+=%#VertSplit# " Seleccionamos un color
set statusline+=%= " Alineamos a la derecha
set statusline+=%#Constant#
set statusline+=%{MyGitBranch()} " Rama actual de Git
set statusline+=%#Function# " Cambiamos color
set statusline+=[%p%%] " Porcentaje en el que estamos del buffer
set statusline+=[%03l,%02v] " Línea actual y columna actual del cursor
Si no usáis las funciones, las podéis quitar sin problemas de la statusline y hacer vuestra configuración más sencilla si queréis.
Otro de los plugins que también fue eliminado fue NERDTree, que si, que es muy intuitivo, pero Vim ya tiene su Explore y la verdad, es que no cuesta nada hacerse con él y permite algunos trucos como conectar por SSH a otro dispositivo para editar desde ahí.
Estoy también considerando probar a quitarme YouCompleteMe, ya que cada vez que se actualiza hay que ir andando con compilaciones y ya alguna vez me ha dado dolores de cabeza, pero sigo aún muy enganchado para quitármelo por ahora.
Otra de las cosas que me di cuenta al ponerme a hacer dieta a mi Vim, fue el tema de que siempre tenía, como en todos los IDEs que se han inventado desde hace mucho, mi arbol de ficheros y mi explorador de tags abierto. Cada vez que necesitaba editar más de un fichero a la vez, el espacio se volvía ridículamente chico, mientras tenía dos ventanas que no estaban siendo útiles para nada.
Es por eso que abandoné el comando personalizado que tenía para abrir estas dos ventanas siempre. Ahora, con accesos rápidos con la tecla <Leader> abro y cierro el explorador de ficheros y de tags según los necesito, es más, teniendo CtrlP, muchas veces no necesito ni el explorador, así que ahora, cada vez que abro Vim, tengo todo el espacio para mi código, y según vaya necesitando, abro estas ventanas extras y las cierro rápidamente con el mismo atajo de teclado. Ahora, partir ventanas es mucho más liviano.
Y eso es todo por hoy, ¡hasta la próxima!