103.8 - Edicion basica de archivos: Comandos clave

Abrir archivos con vi

ComandoDescripcion
vi archivoAbrir archivo (crear si no existe)
vi +N archivoAbrir en la linea N
vi +/patron archivoAbrir en la primera coincidencia del patron
vi -R archivoAbrir en modo solo lectura
view archivoEquivalente a vi -R

Modos de vi

ModoDescripcionEntrarSalir
NormalNavegacion y comandos (por defecto)EscEntrar a otro modo
InsercionEscribir textoi, I, a, A, o, OEsc
Comando (ex)Comandos de linea con ::Enter o Esc
VisualSeleccionar textov, V, Ctrl+vEsc

Movimiento basico

TeclaMovimiento
hIzquierda
jAbajo
kArriba
lDerecha

Movimiento por palabras

TeclaMovimiento
wSiguiente palabra
bPalabra anterior
eFinal de palabra

Movimiento en la linea

TeclaMovimiento
0Inicio de linea
^Primer caracter no blanco
$Final de linea

Movimiento en el archivo

TeclaMovimiento
ggPrimera linea
GUltima linea
nG o :nIr a linea n
Ctrl+fPagina adelante (forward)
Ctrl+bPagina atras (backward)

Entrar en modo insercion

TeclaAccion
iInsertar antes del cursor
IInsertar al inicio de la linea
aInsertar despues del cursor (append)
AInsertar al final de la linea
oNueva linea debajo
ONueva linea encima
RModo reemplazo (sobreescribir)

Borrar (cortar)

TeclaAccion
xBorrar caracter bajo el cursor
XBorrar caracter antes del cursor
ddBorrar linea completa
dwBorrar hasta siguiente palabra
d$ o DBorrar hasta final de linea
d0Borrar hasta inicio de linea
dGBorrar hasta final del archivo
dggBorrar hasta inicio del archivo
3ddBorrar 3 lineas

Copiar y pegar

TeclaAccion
yy o YCopiar linea completa
ywCopiar palabra
y$Copiar hasta final de linea
3yyCopiar 3 lineas
pPegar despues del cursor / debajo
PPegar antes del cursor / encima

Buscar

TeclaAccion
/patronBuscar hacia adelante
?patronBuscar hacia atras
nSiguiente coincidencia
NCoincidencia anterior
*Buscar palabra bajo el cursor (adelante)
#Buscar palabra bajo el cursor (atras)

Sustituir (buscar y reemplazar)

ComandoAccion
:s/viejo/nuevo/Reemplazar primera ocurrencia en la linea
:s/viejo/nuevo/gReemplazar todas en la linea
:%s/viejo/nuevo/gReemplazar en todo el archivo
:%s/viejo/nuevo/gcReemplazar con confirmacion
:%s/viejo/nuevo/giReemplazar ignorando mayusculas
:10,20s/viejo/nuevo/gReemplazar entre lineas 10 y 20

Deshacer y rehacer

TeclaAccion
uDeshacer
Ctrl+rRehacer
.Repetir ultima accion
UDeshacer todos los cambios en la linea actual

Guardar y salir

ComandoAccion
:wGuardar
:w archivo.txtGuardar como
:w!Forzar guardado
:qSalir (sin cambios pendientes)
:q!Salir sin guardar
:wqGuardar y salir
:wq!Forzar guardar y salir
:xGuardar si hay cambios y salir
:e!Recargar archivo (descartar cambios)
ZZGuardar y salir (modo normal)
ZQSalir sin guardar (modo normal)

Comandos externos desde vi

ComandoAccion
:!comandoEjecutar comando del shell
:!lsListar archivos
:r archivoInsertar contenido de archivo
:r !comandoInsertar salida de comando
:r !dateInsertar fecha actual

Modo visual

TeclaTipo de seleccion
vSeleccion por caracteres
VSeleccion por lineas
Ctrl+vSeleccion en bloque (rectangular)

Acciones tras seleccionar: d (borrar), y (copiar), > (indentar), < (desindentar), ~ (cambiar caso)

Configuracion de vi

ComandoAccion
:set numberMostrar numeros de linea
:set nonumberOcultar numeros de linea
:set tabstop=4Tabulaciones de 4 espacios
:set expandtabEspacios en vez de tabs
:set autoindentIndentacion automatica
:set hlsearchResaltar busquedas
:set pasteModo pegar (sin autoindent)

Archivo de configuracion permanente: ~/.vimrc

Atajos de nano

AtajoAccion
Ctrl+OGuardar
Ctrl+XSalir
Ctrl+KCortar linea
Ctrl+UPegar linea
Ctrl+WBuscar
Ctrl+\Buscar y reemplazar
Ctrl+GAyuda
Ctrl+CMostrar posicion del cursor
Ctrl+_Ir a linea/columna
Alt+UDeshacer
Alt+ERehacer

Editor predeterminado

ComandoDescripcion
export EDITOR=viEstablecer vi como editor por defecto
export VISUAL=viEstablecer vi como editor visual
select-editorSelector interactivo (Debian/Ubuntu)
update-alternatives --config editorConfigurar editor del sistema