Go to file
Manuel Vergara 48ec53993b Necesito café por las mañanas
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-29 09:26:50 +01:00
img Ordenar imagenes 2022-09-19 09:59:07 +02:00
README.md Necesito café por las mañanas 2022-11-29 09:26:50 +01:00

Í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

Modos incluidos

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é

https://www.buymeacoffee.com/manuelver




Manu 😊