jueves, 22 de enero de 2015

comandos editor de texto vi

fuente:  http://www.eis.uva.es/~fergay/III/enlaces/vi.htm
(esta web me ha salvado la vida)


Vi, si, soy de Vi, porque cuando instalas un linux a secs desde el primer cedé, sólo existe vi, a menos que te hayas acordado de instalar cualquier otro que te resulte mas comodo.

¿Y cómo edito yo ahora el sources.list? Pues tenemos dos opciones: o bien volvemos a montar el lector de cd, o bien nos peleamos con el vi.

Yo, en esta circunstancia concreta, sólo tengo una unidad de cd/dvd, y me he olvidado de instalar algunos programas básicos antes de retirarla, andaba con prisa que estaba haciendo instalaciones en otros pcs.

Bueno, al lío:

Comandos básicos del editor de textos vi

Editor vi

vi (pronunciado ube-i) es el editor estándar de UNIX. El interés de aprender a manejar este editor es que en cualquier máquina UNIX tendremos al menos esta herramienta para editar ficheros. vi facilita 20 líneas en pantalla para realizar la edición. vi es un editor que, en un momento dado, se encuentra en uno de dos modos básicos de operación: modo de comandos y modo de edición.
El modo por defecto es el modo de comandos. En este modo no se puede realizar la edición del texto. vi espera al comando apropiado antes de realizar una operación. En general, vi volverá al modo de comandos después de ejecutar un comando.
La ventaja de este modo de trabajar es que se pueden ejecutar comandos desde ficheros, y los documentos pueden ser formateados o reestructurados simplemente ejecutando comandos de vi.
Si al presionar ESC el terminal emite un pitido quiere decir que estamos en modo de comandos.

Iniciando vi

Para comenzar a usar vi, teclear
    vi nuevo_fichero
Este comando inicia el editor y, como el fichero no existe todavía, lo crea para ser editado. El editor está ahora en modo de comandos esperando por un comando.

    vi +5 nombre_fichero       //Comienza la edición en la línea 5
    vi + nombre_fichero        //Comienza la edición en la última línea

Moviendo el cursor

Las siguientes teclas controlar el movimiento del cursor.
    k arriba
    j abajo
    h izquierda
    l derecha
Cuando se carga vi con un nuevo fichero, el cursor está en la esquina superior izquierda de la pantalla, y no puede ser movido con las teclas de cursor.

Modo de entrada de texto (añadir, insertar)

    a añade texto a partir del carácter en que está situado el cursor.
    A añade texto al final de la línea actual.
    i inserta texto a partir de la posición del cursor
    I inserta texto al principio de la línea actual.
    o inserta una línea debajo de la posición del cursor
    O inserta una línea encima de la posición del cursor
    :r fich  permite insertar el fichero fich tras la línea actual

Borrando y cambiando texto

Los tres comandos más utilizados para alterar el texto son
    x borra el carácter en el cursor
    nx borra n caracteres hacia la derecha, incluido el que está sobre el cursor.
    nX borra n caracteres hacia la izquierda.
    r sustituye el carácter en el cursor
    dd borra la línea en la que está el cursor
    ndd borra n líneas hacia abajo incluyendo la que contiene el cursor.
Estos tres comandos son ejecutados en el modo de comandos, y vuelven al modo de comandos después de ejecutarse.

Deshaciendo cambios

Hay veces que se realizan cambios y nos damos cuenta inmediatamente que hemos cometido un error. El editor vi facilita mecanismos para deshacer acciones de comandos previos.
El comando u deshace el comando previo.
El comando U deshace todos los cambios realizados en la línea actual.

Guardando cambios y permaneciendo en vi

Es muy recomendable guardar los cambios que se van realizando de una forma regular. Para ello se utiliza
    :w
Si decides que no quieres sobreescribir el fichero que estás editando, sino que quieres guardar los cambios como un fichero nuevo, añade al comando :w el nombre del nuevo fichero,
    :w nuevo_fichero2

Abandonando vi

Para dejar vi se utiliza,
    ZZ Guarda los cambios en el fichero original, y vuelve al intérprete de comandos
    :wq Igual que ZZ
    :q! Abandona el editor, no guarda los cambios, y vuelve al intérprete de comandos

Comandos adicionales para posicionamiento del cursor

Además de las teclas h, j, k, l existen cuatro más:
    b mueve el cursor al comienzo de la palabra anterior
    e mueve el cursor al final de la palabra siguiente
    0 mueve el cursor al comienzo de la línea (cero)
    $ mueve el cursor al final de la línea



Scroll de pantalla

Los comandos para avanzar una pantalla arriba y abajo (12 líneas) son
    ctrl-d una pantalla abajo
    ctrl-u una pantalla arriba
Para ficheros muy largos, se puede ir a una línea del texto
    3000G va a la línea número 3000
Para posicionar el curso en la última línea del fichero, teclea
    G
Para posicionar el cursor al comienzo del fichero, teclea
    1G
El siguiente comando muestra el número de línea actual
    ctrl-g

Búsqueda

Otro método de posicionarse dentro de un fichero es buscando una cadena de caracteres. En el modo de comandos, cualquier cadena de caracteres precedida por / significa el comando de búsqueda hacia adelante. El cursor se posiciona en la primera ocurrencia de dicha cadena.
El comando n busca hacia adelante la siguiente ocurrencia.
Para buscar hacia atrás, se utiliza el comando ?

Borrar texto

Ya se vio anteriormente el comando dd para borrar la línea actual.
El comando dw borra la palabra actual. Nótese que el comando de borrado comienza por d, seguido por el ámbito de aplicación (d para una línea, w para una palabra (word en inglés)).

Quitar y poner

Cuando se borra algo, es almacenado en un buffer temporal. El contenido de este buffer puede ser accedido y 'puesto' o pegado en cualquier sitio del texto.
Para recuperar el último texto borrado, se usa el comando p
nyw guarda en la memoria intermedia n palabras contadas desde la posición del cursor.
y$ guanda en la memoria intermedia desde la posición del cursor hasta el final de la línea.
yy guarda en la memoria intermedia la línea entera en la que se encuentra el cursor.
yn guarda en la memoria intermedia n+1 líneas desde la línea actual.


No hay comentarios:

Publicar un comentario