Volver al índice


vim

Editor

$ vim fichero (Abrir un fichero)

$ vim -x fichero (Poner contraseña a un fichero)

$ vimtutor (Lanzar un tutorial elemental de vim)

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 (Crear el directorio caso de no existir)

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>

Volver al índice