martes, 5 de junio de 2012

Manual del editor vi unix


Hay varias maneras de editar archivos en unix. Una de las más comunes y más rapidas es el editor vi, también es la qué quizá requiera un poco más de práctica.
Para abrir un archivo con vi, basta con poner vi y el nombre del archivo en el terminal.

vi archivo

Como en todos los unix, dependiendo de la versión o la distribución tendrá mejoras, o notarás que ciertos comandos no funcionan. Voy a intentar mostrar los comandos que todos deberían tener en común.

Modos:

Hay que diferenciar dos estados en vi:

-Modo comandoEl modo comando permite moverte por el fichero, guardar, renombrar, copiar, pegar, buscar, reemplazar ... aquí todo lo que escribas será interpretada como comando y no como texto plano.
Cuando abres por primera vez un fichero en vi, entras en este modo, para cuando estés en modo insertar y quieras cambiar al modo comando hay que pulsar la tecla escape (con la práctica verás quees más útil darle un par de veces por si la primera vez no lo ha cogido).

-Modo insertarEl modo editar permite insertar el texto plano en el archivo. Todo lo que escribas será reflejado en la pantalla.
Para entrar en él, inicialmente estáras en modo comando y con pulsar i entrarás en modo insertar.

Para cuando estés perdido, lo mejor es dar varias veces a escape, entrarás en modo consola.

Cerrar:

Ya hemos abierto un fichero y hemos probado los modos comando e insertar pero ... y ahora ¿como salgo otra vez al terminal?

Para poder salir, guardar, etc, hemos dicho que hay que estar en modo comando, así que pulsa escape y aseguraté que estas en modo comando.

Para salir hay que poner :q
Para guardar hay que poner :w
También podemos combinar guardar y salir con :wq

Si tienes un fichero abierto, lo has editado y quieres salir, al poner :q te va a decir que se ha editado el archivo y no te va a dejar salir. Para esto tenemos que añadir el signo !, esto forzará el salir o guardar.

Forzar salir :q!
Forzar guardar :w!
Forzar salir y guardar :wq!

Hay una manera muy rapida de hacer :wq! y es estando en modo comando pulsar ZZ, es decir mayúsculas y dos veces z.
Puedes salvar el archivo editado con otro nombre poniendo :w nombreficheronuevo.

Moverse:

Editar, salir, entrar en los modos, bien pero ¿si quiero moverme por el fichero?

Aquí depende de la distribución o la versión de vi.
En principio con las flechas deberías poder moverte atraves del fichero, pero si no, en modo comando con las teclas hjkl podrás moverte.

k -> linea arriba
j -> linea abajo
h -> letra a la izquierda
l -> letra a la derecha

Otras teclas que tienen una función asignada en modo comando

0 o | -> te lleva al inicio de la linea
$ -> te lleva al final de la linea
w -> te lleva al inicio de la siguiente palabra
b -> te lleva al inicio de la palabra anterior
( -> te lleva al inicio del siguiente salto de linea
) -> te lleva al inicio del parrafo salto de linea
{ -> te lleva al inicio del siguiente parrafo
} -> te lleva al inicio del parrafo anterior
xG -> donde x es un número, te lleva a esa linea
:x -> donde x es un número, te lleva a esa linea
H -> Te mueves al inicio de la pantalla
xH -> donde x es un número, te lleva a esa linea del inicio de la pantalla.
M -> coloca el cursor en mitad de la pantalla
L -> coloca el cursor al final de la pantalla
G -> final del fichero.
control+f -> Mueve una pantalla adelante
control+b -> Mueve una pantalla atras
control+d -> Mueve 1/2 pantalla adelante
control+u -> Mueve 1/2 pantalla atras
control+e -> Mueve una linea adelante
control+y -> Mueve una linea atras

Editar texto:

Ya sabemos movernos, vamos a editar.
Estando en modo consola hay varias teclas que permiten editar.

i -> inserta en la posición actual del cursor
I -> inserta en la linea donde está actualmente el cursor
a -> inserta en el siguiente caracter de la posición actual del cursor
A -> inserta al final de la linea donde se encuentra el cursor
o -> inserta en la siguiente linea
O -> inserta en la linea anterior

Todo esto en modo comando

Borrado de caracteres:

x -> borra el caracter donde se encuentra actualmente el cursor
X -> borra el caracter anterior de donde se encuentra actualmente el cursor
dw -> borra desde el cursor hasta la siguiente palabra
d^ -> borra desde el cursor hasta el inicio de la linea (ojo, en el teclado español para escribir ^ luego hay que darle un espacio)
d$ -> borra desde el cursor hasta el final de la linea.
dd -> borra la linea donde está el cursor.
xdd ->donde x es un numero, borra x lineas desde donde está el cursor

Reemplazar caracteres:

cc -> elimina la linea y te deja ne modo insertar
r -> reemplaza el caracter que selecciona el cursor
R -> reemplaza desde el caracter donde te encuentres, debes dar a escape para parar
s -> reemplaza el caracter y te deja en modo insertar
S -> elimina la linea y te deja ne modo insertar
u -> deshacer ultimo cambio

Copiar y pegar:

yy -> copias la linea
yw -> copias desde el cursor hasta el final de palabra
p -> pega el texto despues del cursor
P -> pegas el texto antes del cursor

Buscar y reemplazar:

/palabraabuscar
puedes pulsar n para ir a la siguiente busqueda
:s/palabra_buscada/palabra_para_reemplazar

Hay más comandos, realmente con 5 o 6 te vas a manear perfectamente y a medida que utilices más el editor usarás más y editarás más rápido. También depende de la distro que estés utilizando.

No hay comentarios:

Publicar un comentario