Quien dijo “No se que hacer” para aprender a editar archivos en Terminal / Consola usando el Editor VI desde mi GNU/Linux (DEBIAN / Canaima 4.1). Bueno aquí lo tienes!


FELIZ AGOSTO: 2014 (PUBLICACIÓN 160)

Saludos: Integrantes de la Gran Comunidad de Usuarios del Software Libre (No necesariamente gratis) y Usuarios del Linux Post Install – Script Bicentenario (CMSL / U-LPI-SB), Compañeros, Colegas y Autodidactas del Siglo XXI. Y ahora también a los Ingenieros en Telecomunicaciones, Sistemas e Informática, Licenciados y Técnicos de áreas afines.

Saludo de Bienvenida

En esta Trigésima (30°) publicación del año vamos a desmitificar otro de esos paradigmas sobre GNU/Linux que muchos de los Usuarios de Sistemas Operativos Privativos y uno que otro Linuxero Novato tienen todavía metido entre ceja y ceja. El mito de “No se que hacer” para para aprender a editar archivos usando el Editor VI desde mi GNU/Linux (DEBIAN / Canaima 4.1), en este caso, nos concentraremos en los métodos (comandos) más sencillo y prácticos, ordenados de una forma muy nemotécnica para obtener el mejor aprendizaje sobre dicha herramienta. Porque ¿Quien dijo “No se que hacer” para aprender a editar archivos en Terminal / Consola usando el Editor VI desde mi GNU/Linux (DEBIAN / Canaima 4.1). Bueno aquí lo tienes!, es decir, le mostraremos a los escépticos e incrédulos que no es cierto, que solo es desconocimiento o falta de experiencia técnica. Estos son pequeños “Tips” que nos facilitan realizar esas operaciones técnicas reservadas por lo general para personas expertas en DEBIAN o nuestro Sistema Operativo Nacional basado en DEBIAN “Canaima GNU/Linux”.

Bueno aquí les va la información:

El Editor VI:

Vim es un editor de ficheros de textos muy versátil, que dispone de una gran flexibilidad a la hora de escribir scripts, modificar ficheros de texto, etc… pero sobretodo, a la hora de programar. Es un editor de ficheros de textos muy versátil, que dispone de una gran flexibilidad a la hora de escribir scripts, modificar ficheros de texto, etc… pero sobretodo, a la hora de programar. A mi criterio, es el mejor editor que existe, sin embargo, a sus usuarios normalmente le suele pasar como a la Pepsi: o te encanta, o lo odias.

Sus detractores engloban las desventajas del Editor VI en dos, muy comunes:

  • Poco Amistoso: Es cierto. En cuanto a primeras impresiones, Editor VI tiene las de perder. Muchos usuarios se asustan sin darle ni una oportunidad. A pesar de su muy dura curva de aprendizaje, una vez se aprende sus funciones básicas, la productividad asciende de una manera notable.
  • Atajos difíciles: El Editor VI es muy potente, pero carece de menús o botones. Todo se hace a través de comandos y atajos que son secuencias de letras y signos. Esto resulta muy frustrante para muchos usuarios que olvidan o no recuerdan con facilidad.

Las ventajas, sin embargo, son múltiples. El Editor VI ocupa muy poco y existe en prácticamente todos los Linux o Unix disponible. Al ser un programa que se ejecuta en entorno de texto es útil para accesos remotos y edición vía terminal. Así pues, vamos a darle un breve repaso a su uso básico desde cero, para perder ese miedo y comprobar lo útil que es aprender a usarlo.

Funcionamiento general del Editor VI:

Al invocar este editor aparece en el monitor la pantalla de edición. En ella aparece la posición del cursor resaltada, las líneas en blanco señaladas con el carácter ~ y en la parte inferior de la pantalla aparece la línea de estado, que muestra el nombre del fichero y el número de caracteres que contiene. Si se invoca el Editor VI pasándole como parámetro el nombre de un fichero en la pantalla de edición aparecerá su contenido. Cuando se invoca este editor con el nombre de un fichero que no existe, se crea automáticamente.

Existen dos modos de operación en el Editor VI:

Modo Edición: Para añadir texto al fichero

Modo Comando: Para introducir órdenes que realizan funciones específicas del Editor VI.

Cuando se edita un fichero con el Editor VI, los cambios no se hacen directamente sobre el fichero. En realidad, se aplican a una copia del fichero que el Editor VI crea en un espacio de memoria temporal llamado buffer. La copia en disco del fichero se modifica sólo cuando se graban los contenidos del buffer. Esto tiene sus ventajas y sus inconvenientes. Por un lado, significa que se puede salir de la edición de un fichero y descartar todos los cambios hechos durante una sesión, dejando la copia de disco intacta. Por otro lado, se podría perder el contenido no grabado del buffer de trabajo si el sistema cae. Lo más aconsejable es grabar el trabajo frecuentemente, especialmente cuando se hacen cambios importantes. Para grabar el fichero que se está editando sin salir del Editor VI, basta pulsar en modo comando la orden :w

Para terminar la sesión caben varias posibilidades, siempre en modo comando:

:q      –>   Salir cuando no se han hecho modificaciones
:q!     –>   Salir y descartar los cambios
:wq     –>   Salir y guardar los cambios

IMPORTANTE: Hay que procurar no editar un fichero con varias copias del vi  al mismo tiempo, pues de este modo no se está seguro de cual es la copia que está realmente grabada en disco.

Modo Edición: Cuando se arranca el Editor VI, siempre está en modo comando, por lo que antes de poder escribir texto en el fichero se debe teclear uno de los comandos de entrada del Editor VI, tales como “i” (insert), para insertar texto en la posición actual del cursor, o “a” (append) para insertar texto después de la posición actual del cursor. Para regresar al modo comando, basta con presionar la tecla “Esc”. Si en un momento determinado no se sabe en qué modo se está, simplemente pulsando la tecla “Esc” se asegura uno de que está en modo comando, y se podrá continuar con el trabajo.

Modo Comando: Cuando se abre un fichero con el Editor VI, se está en modo comando. En este modo se pueden introducir comandos que implementan un amplio rango de funciones. Muchos de estos comandos constan de una o dos letras y un número opcional relacionado con distintas funciones. Muchos comandos no requieren pulsar la tecla Return para que se ejecuten, pero todas las órdenes que empiezan por dos puntos (:) requieren pulsar la tecla Return para que se ejecuten.

PRINCIPALES COMANDOS DEL EDITOR VI

En esta publicación clasificaremos a los principales comandos del Editor VI, según su utilidad durante la edición de un documento.

01.- Moverse por un fichero
02.- Insertar texto
03.- Cambiar texto
04.- Deshacer cambios
05.- Borrar texto
06.- Copiar y mover texto
07.- Comandos del ex
08.- Búsqueda y reemplazo
09.- Inserción de un fichero en otro
10.- Edición de múltiples ficheros

IMPORTANTE: Los comandos del Editor VI pueden ir precedidos de un contador que indica cuantas veces se debe repetir la operación. Por ejemplo 3dd borra 3 líneas, 2dw borra 2 palabras, y 4x borra 4 caracteres. También se pueden usar contadores para los comandos de moverse por la pantalla, por ejemplo 3w o 2Ctrl-F Pulsando un “.” se repite la última operación realizada. Por ejemplo, si se borra una línea y la siguiente operación es borrar una linea, basta con pulsar “.”.

NOTA: Muchos de los comandos del Editor VI son case-sensitive, es decir, la misma orden tecleada en mayúsculas o minúsculas puede tener efectos totalmente distintos.

01.- Moverse por un fichero

Cuando arrancamos el Editor VI, el cursor esta en la esquina superior izquierda de la pantalla. En modo comando, existen órdenes que nos permiten moverlo por toda la pantalla.

A.- De carácter en carácter:

Si el teclado esta provisto con las flechas, se pueden utilizar para mover el cursor libremente por el texto editado hasta el momento.

Si se usa el Editor VI desde un terminal remoto, las flechas pueden no funcionar correctamente, depende del emulador de terminal. En dicho caso las teclas usadas son:

Izquierda: h ó Tecla SpaceBar
Derecha: l ó BackSpace
Arriba: k
Abajo: j

B.- De palabra en palabra:

Pulsando w (word) nos movemos una palabra hacia la derecha.

Pulsando b (before) nos movemos una palabra hacia la izquierda.

C.- Dentro de una línea:

Pulsando ^ nos movemos al comienzo de la línea en la que está el cursor.

Pulsando $ nos movemos al final de la línea actual.

Pulsando la tecla Return nos movemos al comienzo de la línea siguiente.

D.- Dentro de una pantalla:

Pulsando H (high) nos movemos a la parte superior de la pantalla.

Pulsando L (low) nos movemos a la parte inferior de la pantalla.

Pulsando M (middle) nos movemos a la mitad de la pantalla

E.- Av/Re Página:

Pulsando Ctrl-F (forward) se avanza una pantalla, moviéndose el cursor a la esquina superior izquierda de la nueva pantalla.

Pulsando Ctrl-D se avanza media pantalla.

Pulsando Ctrl-B (scroll backward) se retrocede una pantalla.

Pulsando Ctrl-U se retrocede media pantalla.

F.- Insertar texto:

El Editor VI proporciona muchos comandos para insertar texto, que nos hacen pasar del modo comando al modo de edición.

F.1.- Añadir:

Pulsando a (append) se inserta texto a la derecha del cursor.

Pulsando A se añade texto al final de la línea en la que está el cursor.

F.2.- Insertar:

Pulsando i (insert) se inserta texto a la izquierda del cursor.

Pulsando I se inserta texto al principio de una línea.

F.3.- Insertar una línea:

Pulsando o (open) se inserta una línea debajo de la posición actual del cursor

Pulsando O se inserta una línea encima de la actual posición del cursor.

G.- Cambiar texto:

Cambiar texto implica sustituir una sección de texto por otra. El Editor VI tiene varios modos de hacer esto, dependiendo de lo que se desee cambiar.

G.1.- Carácter por Carácter(es):

* Substituir caracteres: Para substituir el carácter bajo el cursor por uno o mas caracteres, teclear s seguido del nuevo texto y pulsar la tecla Esc cuando se acabe.

* Reemplazar un carácter: Para reemplazar el carácter bajo el cursor por otro carácter, pulsar r, seguido por un único carácter, pues al pulsar una tecla el vi inmediatamente regresa a modo comando

* Transposicionar caracteres: Esto es útil para fallos tales como escribir “qeu” en lugar de “que”. Colocando el cursor sobre la primera letra a mover y pulsando xp, se intercambian las posiciones de ambos caracteres.

G.2.- Palabra por palabra(s)

* Palabra completa: Posicionar el cursor al principio de la palabra a ser reemplazada, teclear cw seguido de la nueva palabra. Cuando se termine de modificar se pulsará la tecla Esc

* Parte de una palabra: Colocar el cursor sobre la palabra, a la derecha de la parte a cambiar, y proceder como en el caso anterior.

G.3.- Línea por línea(s)

* Línea completa: Poner el cursor en cualquier parte de la línea y teclear cc. La línea desaparece, dejando una línea en blanco para el nuevo texto, que puede ser de cualquier longitud. Para terminar se pulsará la tecla Esc.

* Parte de una línea: Colocar el cursor a la derecha de la parte a modificar. Pulsar C, introducir la corrección y pulsar la tecla Esc para terminar.

H.- Partir/Unir líneas:

* Partir una línea: Mover el cursor al espacio donde se quiere partir la línea y teclear r (replace) seguido de la tecla Return (se reemplazaría el espacio por un return sin afectar al texto)

* Unir dos líneas: Colocar el cursor en la línea superior y teclear J.

I.- Deshacer Cambios:

El Editor VI proporciona dos modos para deshacer los cambios hechos mientras no se ha grabado el fichero a disco.

Deshacer el comando previo: Pulsando u, a continuación del último comando, se deshacen los cambios producidos por la ejecución del mismo.

Deshacer los cambios de una linea: Pulsando U, se deshacen todos los cambios que se han hecho sobre una línea. Este comando funciona sólo si se permanece en dicha línea.

J.- Borrar texto:

J.1- Caracteres: Para borrar un carácter, posicionar el cursor sobre el carácter a borrar y teclear x. El comando x también borra el espacio ocupado por el carácter. Para borrar el carácter anterior a la posición del cursor pulsar X.

J.2.- Palabras: Para borrar una palabra, posicionar el cursor al principio de la palabra y pulsar dw, entonces se borrara la palabra y el espacio que ésta ocupaba. Para borrar parte de una palabra, hay que colocar el cursor a la derecha de la parte a modificar, y teclear dw.

J.3.- Lineas: Para borrar una línea y el espacio que ésta ocupa, basta con pulsar dd. Para borrar todo lo que este a la derecha del cursor, basta con pulsar D. Para borrar todo lo que este a la izquierda del mismo basta con pulsar d0.

J.4.- Fichero: Para borrar desde la línea actual hasta el final del fichero, basta con teclear dG. Para borrar desde el principio del fichero hasta la línea actual, basta teclear d1G.

K.- Copiar y mover texto:

De la misma manera que muchos procesadores de texto permiten copiar/pegar, o cortar/pegar líneas de texto, el Editor VI incluye también esta posibilidad, mediante los comandos yank/put   y delete /put, respectivamente.

K.1.- Copiar y pegar: El procedimiento para copiar una ó más líneas, es el siguiente:

Colocarse en la primera línea a copiar.
Escribir el número de líneas que se desea copiar.
Teclear yy ó Y (comando yank).
Colocarse en la línea a donde se desean pegar
Teclear p ó P (comando pegar)

K.2.- Cortar y pegar: El procedimiento para mover una ó varias líneas es el siguiente:

Colocarse en la primera línea a cortar.
Escribir el número de líneas que se desea cortar.
Teclear dd (comando delete).
Colocarse en la línea a donde se desean pegar
Teclear p ó P (comando pegar)

K.3.- Usar buffers con nombre: Para insertar repetidamente un grupo de líneas en varios lugares dentro de un documento, se pueden copiar las líneas a un buffer con nombre. El procedimiento para dar nombre a un buffer es el siguiente:

Colocarse en la primera línea a copiar.
Teclear comillas dobles ( ” ) seguido de la letra con que se desea nombrar el buffer (Ej: “a )
A continuación escribir el número de líneas que se desea copiar o cortar.
Teclear yy ó Y (comando yank) ó dd (comando delete).
Colocarse en la línea donde se desean pegar.
Teclear comillas dobles seguidas por la letra del buffer cuyo contenido se desea insertar y por p ó P (comando pegar).

L.- Usar los comandos del ex

Cuando se trata de grandes bloques de texto, los comandos del ex  son más seguros que yank , delete  y put  del vi. Éste comando permite especificar el rango de líneas a mover o copiar, así como la línea anterior al punto donde se insertarán las líneas. Para conocer el rango de líneas, es necesario conocer el número de cada línea:

L.1.- Para visualizar los números de línea: :set nu

L.2.- Para ocultar los números de línea: :set nonu

Conocidos los números de las líneas que se van a copiar, las órdenes del comando ex disponibles son:

L.3.- Copiar líneas: El formato básico del comando para copiar en el ex es el siguiente:

:#linea,#linea co #linea

L.4.- Mover líneas: El formato básico del comando para mover en el ex es el siguiente:

:#linea,#linea m #linea

L.5.- Borrar líneas: El formato básico del comando para borrar en el ex es el siguiente:

:#linea,#linea d

NOTA: En todos los casos, los dos primeros números de línea especifican el rango de líneas a copiar , cortar o borrar, respectivamente, y el último corresponde a la línea anterior al punto de inserción.

Se pueden utilizar abreviaturas para especificar los rangos de líneas:

.       —>  Denota la línea actual
$      —>  Denota el final del fichero

M.- Buscar y reemplazar:

El Editor VI proporciona varios modos de encontrar un string (Cadena de caracteres) en el texto, así como de reemplazarlo. Un string es simplemente uno o más caracteres en fila. Puede incluir letras, números, signos de puntuación, caracteres especiales, espacios en blanco, tabulaciones o retornos de carro. Un string puede ser una palabra gramatical o puede ser una parte de una palabra.

M.1.- Para ir a una línea determinada de un fichero abierto se teclearía: #lineaG (Ej. 6G)

Si no se indica un número de línea se consideraría la última del fichero.

M.2.- Búsqueda:

* Para encontrar un string, hay que escribir una barra hacia la derecha (/) seguida por el string que se desea buscar, y pulsar return.

* El Editor VI posiciona el cursor en la siguiente ocurrencia del string. Tecleando n se va a la siguiente ocurrencia del string, y pulsando N a la anterior.

* Si en lugar de una barra se escribiese una interrogación (?), la búsqueda sería hacia atrás, y las direcciones de las órdenes n y N se invertirían.

* Normalmente las búsquedas son case-sensitive. Si se quiere que el Editor VI  ignore mayúsculas y minúsculas durante la búsqueda, hay que teclear previamente: :set ic y para volver al cambio por defecto se teclearía: :set noic.

* Ciertos caracteres especiales (/ & ! . ^ * $ \ ?) tienen un significado particular en el proceso de búsqueda, y por lo tanto deben especificarse de un modo especial cuando están incluidos en el string a buscar, precediéndolos por la barra hacia atrás (\).

M.2.1.- Refinando la búsqueda

* Se pueden realizar búsquedas más precisas, marcando el string con indicadores de características tales como:

— Principio de línea: Para intentar emparejar el comienzo de una línea, hay que escribir antes del string a buscar el carácter ^

— Fin de línea: Para emparejar el final de una línea, hay que terminar el string a buscar por el carácter $

— Principio de palabra: Para emparejar el principio de una palabra, hay que teclear \<

— Fin de palabra: Para emparejar el final de una palabra, hay que teclear \> al final del string.

M.2.2.- Usando Comodines:

— Para emparejar cualquier carácter, hay que teclear un punto en el string en la posición a emparejar. (igual que ? en los nombres de ficheros de MS-DOS)

— Para emparejar cero ó más ocurrencias del último carácter escrito, basta añadir un * en el string.

— Para buscar caracteres alternativos en un string, se deben poner las alternativas entre corchetes, por ejemplo:

* [md]xxx encontraría los strings mxxx y dxxx

* [d-m]xxx encontraría todos los strings que comiencen por cualquier letra de la d a la m y sigan con xxx.

M.2.3.- Reemplazo

El procedimiento para reemplazar un string está es similar al de búsqueda arriba mencionado. Todos los caracteres especiales de emparejamiento se pueden usar también en una búsqueda + reemplazamiento.

* La forma básica de la orden es: :g/string_buscado/s//string_cambiado/g

Nota: Se puede modificar el comando para parar la búsqueda y hacer que el Editor VI pida confirmación antes de realizar el reemplazo, mediante la orden gc (consult), respondiendo y (sí) o n (no). Para terminar el proceso bastaría con pulsar Ctrl-C

M.2.4.- Insertar un fichero en otro

El Editor VI permite insertar un fichero dentro del que se está editando, mediante la orden: :#linea r nombre_fichero

Nota: Si no se especifica un número de línea, se tomará la posición actual del cursor.

M.2.5.- Edición de múltiples ficheros

El Editor VI permite la edición de varios ficheros simultáneamente. Para ello se debe grabar el fichero abierto (comando :w), y a continuación escribir: :n nombre_nuevo_fich.

* Para cambiarse de un fichero a otro habría que teclear: :n nombrefich

* Para editar una serie de ficheros caben dos posibilidades:

Dar el nombre completo de todos los ficheros a editar: vi nombre1 nombre2 nombre3

Utilizar caracteres comodín: vi nom*

M.2.6.- Para copiar líneas de un fichero a otro, se deben seguir los siguientes pasos:

Editar el primer fichero
Salvar las líneas que se quieran con la orden yank.
Sin salir del vi, editar el fichero donde se van a insertar las líneas con la orden de comando: :n nuevofich
Usar la orden put como si se tratase del mismo fichero.

N.- Recuperación ante una caída (Cierre inesperado del Editor / Apagado inesperado del Equipo)

Si el sistema cae, el contenido del buffer donde se realizan las modificaciones se puede perder.

* Se puede recuperar parte del trabajo realizado si se invoca el vi del siguiente modo: vi -r nomfich

Donde nomfich es el fichero que se estaba editando en el momento en que se produjo la caída. Cuando el sistema arranque de nuevo, enviará un mensaje indicando la recuperación del fichero.

A continuación 2 imágenes de resumen de los comandos más importante del Editor VI:

Selección_001

Selección_002

Descargar Hoja de Trucos (Cheat Sheet) del Editor VI

vi

vi-vim_cheat_sheet

Para mayor información ver el siguiente vídeo-tutorial:

Para mayor información ver los siguientes enlaces:

Si alguno conoce otro enlace, procedimiento o paquete útil, practico, necesario o funcional adecuado, coméntelo para hacer esta publicación más completa!

Recuerden que si quieren conocer o experimentar con el LPI-SB6 pueden hacer clic en el siguiente enlace:

Todo sobre el LPI-SB6

Postdata: Soy un Ingeniero en Informática (Especialista en Proyectos de Migración de Software Libre a Nivel de Usuarios) con un Excelente Empleo pero si me ofrecen 14.000,00 Bs. + Beneficios, pero puedo considerar ofertas! Para cualquier información llamar al: 0416.610.13.03

##########################################

Aquí les dejo esta encuesta para medir el apoyo logrado:

##########################################

Mensaje 100% Positivo del Blog para esta entrada:

LEY DE INFOGOBIERNO EN VENEZUELA

LEY DE INFOGOBIERNO

TÍTULO II
DE LA ORGANIZACIÓN EN EL PODER PÚBLICO PARA EL USO DE LAS TECNOLOGÍAS DE INFORMACIÓN

Capítulo V
De los subsistemas que conforman el Sistema Nacional de Protección y Seguridad Informática

De los registros públicos de homologación y sus fines

Artículo 59. La Superintendencia de Servicios de Certificación Electrónica es el órgano encargado de supervisar y exigir los certificados de homologación o sellos de certificación por modelo o versión de los equipos o aplicación con soporte criptográfico. A tal efecto, lleva un registro público del código de homologación para proveedores de servicios de certificación de los entes u organismos del Poder Público y del Poder Popular que hayan sido homologados y certificados.

__________________________________________________________________

Atrévete, usa Linux, sobre todo Canaima GNU / Linux, el Sistema Operativo Libre oficial de la República Bolivariana de Venezuela.

La Lucha es Global y somos Ciudadanos Globales, todos a luchar por un Mundo Mejor!

Anuncios

2 comentarios sobre “Quien dijo “No se que hacer” para aprender a editar archivos en Terminal / Consola usando el Editor VI desde mi GNU/Linux (DEBIAN / Canaima 4.1). Bueno aquí lo tienes!

Gracias por tus comentarios...

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s