haelle.vimrc
Ansible vimrc
Un rol de Ansible para instalar NeoVim con algunos plugins.
Requiere tareas de la comunidad de Ansible:
ansible-galaxy collection install community.general
Dependencias
- ⚠ Advertencia, esta instalación incluye NodeJS y npm desde el gestor de paquetes. ⚠
- Instalar Fzf y Ag para buscar.
Objetivos
Soporte completo/sin problemas para estos lenguajes/sintaxis:
- Ruby/RoR
- HTML
- Javascript
- VueJS
- React
- Ansible
- JSON
- YAML
- Markdown
- C#
El objetivo es tener 0 comportamientos con errores.
Tema y Fuente
El tema actual es slate (desert, industry también son buenos); cámbialo con :colorscheme xxx
, ve los disponibles con Tab
.
La fuente actual es MesloLGS NF Regular (soporta emojis) configurada para Zsh.
Plugins
Instalar plugins: :PlugInstall
(ya instalados por Ansible).
Navegación
Ayuda: usa :help keycodes
para mostrar los nombres de las teclas de vim.
Posibilidad de navegar con splits, pestañas y Tmux:
<C-w f>
: abrir en split<C-w gf>
: abrir en pestaña<C-⬅,⬆,⬇,➡>
: navegación por paneles<C-w-⬅,⬆,⬇,➡>
: mover panelgt
: cambiar entre pestañas de vim<C-b>
: activar navegación Tmux.
Funcionalidades Activas
gd
: ir a la definicióngi
: ir a la implementacióngr
: navegar por referenciasgf
: ir al archivo (solo para Ruby/Rails)gg=G
: reformatear el códigoF2
: renombrar variable / método / clase<C-k>
: mostrar definición del métodoqf
: ejecutar corrección del linter - no funciona bien...fr
: ejecutar formateador en la línea actual (no funciona en Solargraph/Ruby).fa
: ejecutar formateador en todo el archivo.<C-o>
: volver<C-s>
: guardar<C-space>
: activar el motor de autocompletado<tab>
: navegar por propuestas de completado<C-c>
: comentar/descomentar (línea o selección)bufdo!
: usar!
para no guardar los archivos (con esta configuración es obligatorio...)
Relativo a Ruby & Rails:
<C-q>
: cambiar entre Ruby spec y archivo<C-w>t/s/l/a
ejecutar test/spec (archivo, más cercano, último, todos)
Otros:
- suspender vim
Ctrl+z
y volver con fg.
Funcionalidades Automáticas / Pasivas
- revisión ortográfica
- resaltado de sintaxis
- autolint en el margen y ventana flotante
- usar 2 espacios para tabulaciones en todas partes
- recordar posición del cursor entre sesiones
- eliminar líneas en blanco al guardar
- eliminar espacios en blanco
- mostrar todos los caracteres invisibles
- resaltar palabras clave 'TODO/FIXME/XXX'
- mejor redimensionamiento de vim
- agregar todo tipo de pares (), [] etiquetas...
- agregar pares de Ruby (def/end, do/end)
- agregar información de Git en el margen
- agregar información del linter en el margen o con subrayado
- mostrar definición del método cuando esté disponible (usar
<C-a>
y<C-b>
para desplazarse hacia adelante y hacia atrás).
Búsqueda
Activa:
<C-f>
: buscar en el archivo actual (vim básico)<Shift-f>
: buscar en todos los archivos (usando fzf.vim / ag)- Advertencia : es posible que debas desactivar la búsqueda de tu terminal para que funcione.
<Esc>
: cancelar búsqueda (cancelar resaltado)<C-p>
: buscar archivo por nombre (usando fzf.vim)Enter
: abrir<C-t>
: abrir en nueva pestaña<C-x>
: abrir en split horizontal<C-v>
: abrir en split vertical
Pasiva:
- resaltar resultados en DarkGreen
- resaltar selección actual con cursor parpadeando.
Barra Lateral (NerdTree)
Activa
<C-n>
: abrir/cerrar NerdTreeEnter
: abrir archivoi
: abrir en split horizontals
: abrir en split vertical- ... ver documentación de NerdTree.
Pasiva
- íconos para archivos
- símbolos basados en el estado de Git
- ignorar algunas carpetas (
node_modules
,.gitignore
).
Ruby - ver para creer
F4/F5/F6/F7
marcar/correr/marcar&correr/borrar marcas del código.
Conquista de la Compleción
Los plugins se instalarán al primer inicio.
Para Solargraph necesitas instalarlo para cada versión de Ruby con la que trabajes:
:InstallGems
Comandos útiles:
:CocInfo
:CocList commands
:checkhealth
:CocList extensions
:call CocAction('format')
:CocList marketplace python
.
Ten en cuenta las extensiones disponibles:
- javascriptreact
- typescript
- typescriptreact
- typescript.tsx
- graphql.
Variables del Rol
No hay parámetros obligatorios, todos los parámetros están en defaults/main.yml
.
Ejemplo de Playbook
- hosts: localhost
roles:
- role: vimrc
vim_user: foo
Uso en Desarrollo
Para ejecutarlo localmente, crea un enlace simbólico: cd /etc/ansible/roles & sudo ln -s /path/to/vimrc .
.
Licencia
BSD.
ansible-galaxy install haelle.vimrc