Editor
$ vim fichero
$ vim -x fichero
$ vimtutor
Algunas teclas para no morir en el intento:
modo:
i (Entrar en modo edición)
esc (Salir modo edición y entrar en modo comando)
Salvavidas
u (Cada pulsación deshace el siguiente cambio del historial)
Movimientos del cursor:
k (Arriba)
j (Abajo)
h (Derecha)
l (Izquierda)
w (Ir al principio de la palabra posterior)
b (Ir al principio de la palabra anterior)
$ (Ir al final de la linea)
0 (Ir al principio de la linea)
) (Ir a la frase siguiente)
( (Ir a la frase anterior)
{ (Pasar al siguiente párrafo)
} (Pasar al anterior párrafo)
H (Ir a la parte superior de la pantalla)
M (Ir a la parte media de la pantalla)
L (Ir a la parte inferior de la pantalla)
Crtl + d (Avanzar media pantalla)
Crtl + u (Retroceder media pantalla)
gg (Ir al principio del ficherol)
G (Ir al final del fichero)
:20 (Ir a la linea 20)
Borrar:
daw (palabra)
d3aw (3 palabras)
dd (Linea)
3dd (3 lineas)
d$ (Del cursor al final de la linea)
d0 (Del cursor al principio de la linea)
Copiar, pegar e insertar:
yy (copiar línea)
p (pegar debajo del cursor)
yaw (copiar toda la palabra)
yap (Cortar todo el párrafo)
:r archivo (insertar "archivo")
:r! comando (insertar salida de comando)
o (Insertar linea en blanco y entrar en edición)
Búsqueda:
/palabra (buscar hacia adelante "palabra")
/palabra\c (buscar "palabra" sin importar mayúsculas o minúsculas)
n (Siguiente coincidencia hacia delante)
N (Siguiente coincidencia hacia atras
:%s/texto1/texto2/g (Substituir "texto1" por "texto2" en todo el archivo)
Abrir, guardar y salir
:q! (Salir sin guardar)
:w (Guardar cambios sin salir)
:x (Guardar cambios y salir)
:w fichero (Guardar en un fichero distinto y seguir)
:e fichero2 (Cierra el fichero actual y abre fichero2)
:e . (Abre un navegador de ficheros del directorio actual)
:e (Recarga el fichero)
ZZ (Guardar y salir)
:w !sudo tee % (Guardar un archivo tras haberlo abierto sin “sudo”)
Modo visual:
v (Entra en modo visual para seleccionar texto)
c (Cortar)
y (Copiar)
p (Pegar)
"add (Cortar linea y guardarla con el nombre "a")
"ap (Pegar la linea guardada como "a")
"+3dd (Cortar 3 lineas y guardarlas en el portapapeles)
"+p (Pegar las lineas guardadas en el portapapeles)
Dejar marcas en un texto:)
ma (Marca una linea con la "a". las siguientes: mb, mc, md..)
'a (Ir a la linea marcada con la "a")
'. (Ir a la última linea modificada)
Ejecución de comandos durante la edición:
:!ls (Muestra listado del directorio y con intro regresa al editor)
:shell (Pausa la edición y entra en modo shell. Con "exit" vuelve a vim)
Ctrl z (Suspende vim y entra en la shell. Con "fg" vuelve a vim)
Crear pestañas:
:tabnew fichero (Abrir un archivo en una nueva pestaña)
gt (Moverse entre pestañas)
:close (Cierra la ventana o la subdivision de la ventana)
:only (Cierra todas las ventanas menos la actual)
Dividir la pantalla en distintos paneles:
:split fichero (Abrir un archivo en una division horizontal de la ventana)
:vsplit fichero (Abrir un archivo en una division vertical de la ventana)
:new (Abre un nuevo panel vacio)
:close (Cerrar panel o ventana)
Ctrl + w flecha (Moverse entre los distintos paneles de una ventana)
Ctrl + w n (crear nueva ventana)
Ctrl + w h (ir a la ventana de la izquierda)
Ctrl + w j (ir a la ventana de abajo)
Ctrl + w k (ir a la ventana de arriba)
Ctrl + w l (ir a la ventana de la derecha)
Ctrl + w t (ir a la ventana de más arriba)
Ctrl + w b (ir a la ventana de más abajo)
Ctrl + w w (pasar a la siguiente ventana)
Ctrl + w + (aumentar el tamaño de la ventana en 1 linea)
Ctrl + w - (disminuir el tamaño de la ventana en 1 linea)
Imprimir:
:ha (Imprimir todo el documento)
:ha > archivo.pdf (Imprimir a pdf)
Guardar sesiones:
:mksession! archivo (Guarda la sesión actual en "archivo")
:source archivo (Una vez abierto el archivo, carga la sesión guardada)
Corrector ortográfico:
:set spell spelllang=es (Activar diccionario. spelllang=ca para catalan)
z= (Con el cursor en el error, muestra las sugerencias)
Ctrl + x s (Abre el menú de sugerencias sin salir del modo insertar)
:spellrepall (Corrige en todo el texto la que acabamos de corregir
zg (Añadir al corrector la palabra del cursor)
zw (Surpimir del corrector la palabra del cursor)
Buffers:
:buffers (Muestra buffers abiertos (actual [%], cerrado [#], activo [a], oculto [h])
:buffer 2 (salta al buffer 2)
:bn (Ir al siguiente buffer)
:bp (Ir al anterior)
:bd (suprimir buffer [Cerrar archivo])
:ls (Lista los buffers)
Varios:
:e /home/usuario (Abre vim en modo navegador de archivos con el directorio mencionado)
:Ex (Abre el navegador de archivos en un nuevo panel de la ventana activa)
algunos ajustes que pueden implementarse, bien durante la edición [en modo normal] o
permanentemente en ~/.vimrc [en este caso quitar los dos puntos iniciales]:
:set showmode/noshowmode (mostrar/no mostrar modo actual de vi)
:set ts=4 (Fija los tabulados a 4 espacios)
:set sw=4 (Fija los indentados a 4 espacios)
:set number/nonumber (Activa/desactiva el numerado de lineas)
:set backup/nobackup (Activa/desactiva la copia de seguridad automática)
:set directory=dir (fija la carpeta donde se harán las copias)
:syntax on/off (Activa/desactiva el resaltado de sintaxis)
:set hidden (Información sobre la columna y posición del cursor)
:set ignorecase (Ignorar mayúsculas y minúsculas en las busquedas)
:set showcmd (Mostrar la combinación de teclas que estamos entrando)
:set nocompatible (Permite usar funcionalidades de vim que vi no soporta)
:set hidden (Permite abandonar buffers sin guardarlos previamente)
:color darkblue (Cambia el color del vim [evening, desert, elflord, koehler, morning..])
:set cindent (Activa indentado automático)
:set history=500 (Aumentar el historial de comandos a 500)
:set undolevels=1000 (Aumentar pasos a deshacer a 1000)
:set mouse=a/mouse= (Activa/desactiva el uso del ratón)
:set paste/nopaste (Activa/desactiva el modo pegar texto literalmente)
:spell (Activa el corrector ortográfico)
:set spellfile=~/.vimdic (Fija diccionario de palabras desconocidas)
:set ruler (mostrar fila y columna del cursor y porcentaje del texto)
:set ignorecase (Que ignore mayúsculas y minúsculas en las busquedas)
:set linebreak (Para que las palabras no se corten al final de la linea)
:set encoding=utf-8 (Codificación que se usará [utf-8])
:set list (Mostrar los caracteres no imprimibles)
:set wrap (Activa el cortado de líneas largas en pantalla)
:set t_Co=256 (La terminal con 256 colores)
1.-
Poner un esquema de colores:
$ mkdir -p ~/.vim/colors
Entrar en <http://www.vim.org/scripts/script_search_results.php> y escoger los deseados y copiarlos en el directorio creado. Despues crear [si no existe] el fichero:
$ vim .vimrc
Y pegar el texto:
syntax on
colorscheme oceandeep
En colorscheme poner el escogido, en este caso oceandeep. Guardar.
2.-
Crear atajos de teclado [mapping]. Colocar en ~/.vimrc para hacerlo permanente:
Pulsar F2 para mostrar/ocultar los números de línea:
:map <F2> <Esc>:set invnumber<CR>
Pulsar F3 para mostrar/ocultar los caracteres no imprimibles:
map <F3> <Esc>:set invlist listchars=eol:$,tab:>-,trail:-<CR>
Pulsar F4 para activar el corrector ortográfico:
map <F4> <Esc>:set spell spelllang=es<CR>
Nombre de las teclas especiales para el mapeo:
<up> Flecha arriba <down> Flecha abajo
<right> Flecha derecha <left> Flecha izquierda
<esc> Escape <cr> Enter
<space> Espacio <tab> Tabulador
<del> Suprimir <bs> Backspace
<f1>..<f12> Teclas de función <insert> Insert
<end> Fin <c-tecla> Control + tecla
<RePag> Página anterior <AvPag> Página siguiente
<s-tecla> Shift + tecla <c-s-tecla> Control + shift + tecla
3.-
Copiar y pegar texto de vim a las X y viceversa:
Comprobar si vim tiene soporte para xterm_clipboard lanzando vim y ejecutando:
:version
Las opciones precedidas con "+" estan habilitadas y las con "-" deshabilitadas. La solución, si está deshabilitada, es compilar vim con dicha opción o instalar vim-gtk o gvim (según distro). El proceso en vim es seleccionar el texto a copiar y:
"+y
Y pegar en cualquier editor (gedit, pico...) con Ctrl + v o con el botón derecho del mouse. El proceso inverso, o sea copiar en otro editor y pegar en vim será seleccionando y copiando el texto con el mouse y pegarlo en vim con:
"+p
Nota- Para que todo lo copiado en Vim se asigne automáticamente al portapapeles del sistema operativo, añadir a .vimrc:
set clipboard=unnamedplus
4.-
Abrir un panel lateral con el arbol de directorios [Plugin NERDTree]
$ git clone https://github.com/scrooloose/nerdtree.git
$ cd nerdtree/
$ cp -R * ~/.vim/
Para abrir NERDTree pulsando F5 colocar en .vimrc la linea:
map <F5> :NERDTreeToggle<cr>