V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

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>
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
2584 entradas - Acerca del Tractatus
La Pipa Plena 2024