|
||
---|---|---|
img | ||
README.md |
Índice
Guia básica de Vim
Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX.
Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras. La principal característica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo que los diferencia de la mayoría de editores comunes, que tienen un solo modo en el que se introducen las órdenes mediante combinaciones de teclas o interfaces gráficas.
Gracias wikipedia https://es.wikipedia.org/wiki/Vim
Archivo de configuración
El archvio se llama .vimrc
y lo podremos encontrar én distintos path según distro. En ubuntu:
/etc/vim/vimrc
En RHEL y derivadas:
/etc/vimrc
Veremos algo así:
Documentación oficial de vimrc: http://vimdoc.sourceforge.net/htmldoc/usr_05.html
Algunos parámetros ejemplo para vimrc:
- Mostrar con colores los ficheros:
systax on
- El siguiente bucle consigue que cuando vuelvas a abrir un archivo este el cursor en el mismo sitio que cuando lo cerraste.
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
- Para la compatibilidad de los colores de vim con una terminal oscura se utiliza la siguiente opción.
set background=dark
Archivo .viminfo
Para utilizar Viminfo, primero necesita tener la funcionalidad +viminfo disponible (:version). Viminfo almacena:
- El historial de la línea de comando
- El historial de búsqueda de cadenas de texto
- El historial de línea de entrada
- El contenido de los registros no vacíos
- Las marcas de diversos archivos
- El archivo de marcas, apuntando a la ubicación en los archivos
- El último patrón de búsqueda/sustitución (para 'n' y '&').
- La lista de *buffer
- Las variables globales
En general, las sesiones almacenan los atributos "externos" y Viminfo los atributos "internos".
The Ultimate vimrc --> Repo
Hay dos versiones:
- La Básica: Si quieres algo pequeño simplemente copia basic.vim en tu ~/.vimrc y tendrás una buena configuración básica
- La impresionante: Incluye una tonelada de plugins útiles, esquemas de color y configuraciones
Plugins incluidos con vim
Leer la documentación de estos plugins es imprescindible para entenderlos mejor. Cada plugin proporciona una experiencia de Vim mucho mejor.
- ack.vim: Plugin de Vim para
the_silver_searcher
(ag) o ack -- un grep endiabladamente rápido - bufexplorer.zip: Cambia rápida y fácilmente entre buffers. Este plugin se puede abrir con
<leader+o>
. - ctrlp.vim: Buscador de archivos, buffers, mru y etiquetas difusas. Está mapeado con
<Ctrl+F>
. - goyo.vim: Escritura sin distracciones en Vim.
- vim-zenroom2: Emula el entorno de iA Writer cuando se editan archivos Markdown, reStructuredText o de texto.
- lightline.vim: Una línea de statusline/tabline ligera y configurable para Vim
- NERD Tree: Un plugin explorador de árboles para vim
- open_file_under_cursor.vim: Abrir el archivo bajo el cursor al pulsar
gf
. - pathogen.vim: Gestiona tu ruta de ejecución de vim
- snipmate.vim: snipmate.vim pretende ser un script vim conciso que implementa algunas de las características de los snippets de TextMate en Vim
- ale: Comprobación de sintaxis y lint para vim (ALE requiere NeoVim >= 0.2.0 o Vim 8 con +timers +job +channel)
- vim-commentary: Comentar cosas. Usa
gcc
para comentar una línea (toma una cuenta),gc
para comentar el objetivo de un movimiento.gcu
descomenta un conjunto de líneas adyacentes comentadas. - vim-expand-region: Permite seleccionar visualmente regiones de texto cada vez más grandes utilizando la misma combinación de teclas
- vim-fugitive: Una envoltura de Git tan impresionante que debería ser ilegal
- vim-indent-object: Define un nuevo objeto de texto que representa líneas de código en el mismo nivel de sangría. Útil para scripts python/vim
- vim-multiple-cursors: Selecciones múltiples al estilo de Sublime Text para Vim, CTRL+N se reasigna a CTRL+S (debido a YankRing)
- vim-yankstack: Mantiene un historial de yanks anteriores, cambios y borrados
- vim-zenroom2 Elimina todo el desorden y se centra sólo en lo esencial. Similar a iA Writer o Write Room
- gist-vim Crea fácilmente gists desde Vim usando el comando
:Gist
. - vim-indent-guides Es un plugin para mostrar visualmente los niveles de sangría en Vim
- editorconfig-vim EditorConfig ayuda a mantener estilos de codificación consistentes para múltiples desarrolladores trabajando en el mismo proyecto a través de varios editores e IDEs.
Esquemas de color incluidos
- peaksea: Por defecto
- dracula
- vim-colors-solarized
- vim-irblack
- mayansmoke
- vim-pyte
Modos incluidos
- vim-coffee-script
- vim-less
- vim-bundle-mako
- vim-markdown
- nginx.vim: Highlights configuration files for nginx
- rust.vim
- vim-ruby
- typescript-vim
- vim-javascript
- vim-python-pep8-indent
Cheatsheet de Vim
Para editar y salir de la edicción
i o INSERT Entrar en modo edicción del texto
ESC Salir del modo.
Para entrar en el modo visual
v Entrar en modo visual
ESC Salir del modo
Los comandos se añaden con :
delante. Por ejemplo, si queremos ver el número de línea en los documentos:
:set nu
Para cambiar el modo de los colores:
:set background=[dark|light|...]
Para forzar cualquier comando se le puede añadir !
.
Guardar y cerrar
:w Permite guardar el fichero.
:q Salir de Vim. Si el fichero ha sido modificado pero no se ha guardado, nos advertirá y no podremos salir de Vim usando este comando.
:q! Salir de Vim, descartando posibles cambios no guardados que se hayan realizado en el fichero.
:wq o :x Hace el guardado del archivo y después sale de Vim.
Deshacer y rehacer
u – Deshacer acción.
Ctrl+r – Rehacer una acción.
Borrar o cortar, copiar, pegar líneas
dd Borra la línea actual, donde está el cursor, pero en realidad las corta.
d+num+d Borra el número de líneas que se indique. Pero en realidad las corta.
yy Copiar la línea actual.
y+num+y Copiar el número de líneas que se indique.
p Pegar
Mover el cursor
h mover un carácter a la izquierda
j mover una fila hacia abajo
k mover una fila hacia arriba
l mover un carácter a la derecha
w mover al principio de la siguiente palabra
b mover al principio de la palabra anterior
e mover al final de la palabra
W mover al principio de la siguiente palabra después de un espacio en blanco
B mover al principio de la palabra anterior antes de un espacio en blanco
E mover al final de la palabra antes de un espacio en blanco
Todos los movimientos anteriores pueden ir precedidos de una cuenta; por ejemplo, 4j
se mueve hacia abajo 4 líneas.
0 se mueve al principio de la línea
$ se mueve al final de la línea
_ mover al primer carácter no en blanco de la línea
g_ mover al último carácter no en blanco de la línea
gg mover a la primera línea
G pasar a la última línea
ngg se mueve a la n'ª línea del archivo
nG ir a la nª línea del fichero
H mover a la parte superior de la pantalla
M mover a la mitad de la pantalla
L mover a la parte inferior de la pantalla
zz desplazar la línea con el cursor al centro de la pantalla
zt desplazar la línea con el cursor hacia arriba
zb desplazar la línea con el cursor hacia abajo
Ctrl-D mover media página hacia abajo
Ctrl-U mover media página hacia arriba
Ctrl-B subir página
Ctrl-F bajar de página
Ctrl-O saltar a la última posición del cursor (más antigua)
Ctrl-I saltar a la siguiente posición del cursor (después de Ctrl-O)
Ctrl-Y mover el panel de vista hacia arriba
Ctrl-E mover el panel de vista hacia abajo
Búsquedas
/+texto Al pulsar «/» se abre la función de búsqueda. Entonces podremos escribir el texto que queremos buscar.
n siguiente patrón de búsqueda coincidente
N patrón de búsqueda anterior
* siguiente palabra entera bajo el cursor
# palabra entera anterior bajo el cursor
g* siguiente patrón de búsqueda coincidente (no es una palabra entera) bajo el cursor
g# patrón de búsqueda anterior (no palabra entera) bajo el cursor
gd ir a la definición/primera aparición de la palabra bajo el cursor
% saltar al corchete coincidente { } [ ] ( )
fX a la siguiente 'X' después del cursor, en la misma línea (X es cualquier carácter)
FX a la anterior 'X' antes del cursor (f y F ponen el cursor en X)
tX hasta la siguiente 'X' (similar a la anterior, pero el cursor está antes de la X)
TX hasta la 'X' anterior
; repite lo anterior, en la misma dirección
, repetir lo anterior, en dirección inversa
Para más detalles se puede ver la ayuda
:h
:help {command} (por ejemplo, :help g_).
Curso completo de vim: https://victorhck.gitbook.io/aprende-vim/
Invítame a un café ☕️
Manu 😊