Importante Como Usar "vi"

Descubre todo el poder del software libre: Linux, OpenOffice, GNU...
escufi
Pingüindows User
5.788 mensajes
desde dic 2001
en Nastic-Land

Pues bien, en vista de q muchos de los habitantes q pululan por este foro estan siempre con el , como editar esto o como edita lo otro, intentare dar nociones de como hacer funcionar el editor mas conocido de los sistemas *nix puesto q es el editor por excelencia q tienen todos los sistemas *nix.

Introduccion :

Vi resulta de gran ayuda para los administradores de sistemas , ya q como he dicho antes esta disponible en cualquier plataforma Unix. Vi tambien resulta recomendable pq requiere de muy pocos recursos para ejecutarse , lo q significa q se puede usar vi cuando no puedes usar otros programas por problemas con el hardware o con el sistema ( esa es una de las diferencias mas notables con emacs).
Tambien podemos encontrar el editor vim q simplemente es el viMproved (o vi mejorado)

¿Qué es vi?

El editor vi no es un procesador de textos ni un sistema de edicion de escritorio.No hay menus ni prácticamente ninguna utilidad de ayuda.
El editor vi funciona en dos modos:

1) Modo comando donde vi interpreta las teclas como comandos.Algunos de estos comandos permiten guardar un archivo, salir de vi, mover el cursor etc..
2) Modo de entrada o entrada de caracteres, donde se interpreta como texto cada tecla q es pulsada. ( maquina de escribir)
En una sesion de edicion se pueden alternar libremente ambos modos pero es importante saber en q modo estamos y como cambiar al otro modo.

Aunque vi parezca muy incomod al principio os aseguro q va de perlas para editar ficheros ASCII o secuencias shell de linux-unix.

Usando Vi

Para iniciar vi simplemente se debe escribir en una consola o shell el comando “#vi archivo “ donde archivo puede ser un archivo existente o bien uno q queremos crear. Aquí hay q tener en cuenta q muchos archivos de configuración, aunque nos los deje abrir, igual no nos los deja editar, eso es devido a una cuestion de permisos, es muy probable q uno no pueda esitar alguna cosa si no es root ( al lorito con ser root q la gente siempre tiene tendencia a entrar como root en los sistemas linux y se tiene q usar lo menos posible, solo lo necesario)
En fin, una vez iniciado vi veremos una pantallita con caracteres “~” si hemos abierto un archivo nuevo o con caracteres si ya existia , ese símbolo es el indicativo de memoria intermedia vacia, como todos los editores mientras no se salve el archivo , cualquier cambio solo tiene efecto en la memoria intermedia ( podriamos decir q se crea una instancia del archivo abierto en memoria). Ahora vi esta en modo comando.

Como insertar texto?

Pues bien, llegados a este punto nosotros situaremos el cursor donde queramos del texto ( o lo dejamos al principio si el archivo es de nueva creación) y para empezar a escribir podemos apretar una de las siguientes teclas o ( solo se tiene q apretar la tecla no las flechas < o > ) la corresponde a insertar texto delante del cursor y detrás del cursor.

En fin creo q lo mejor es q os haga un resumen de las teclas a usar en modo comando. Para conmutar entre modo edicion y modo comando solo tenemos q usar la tecla escape (ESC) . Otra cosa q teneis q saber es q en modo comando se puede ver los comandos q introducimos en la parte inferior de la pantalla donde hay una linea de información q ademas de informarnos q tecla o comando estamos introduciendo nos informara de los posibles errores.
9/11/2005 (D.E.P Cybb :( ) LinuxUser: #294822
フォースとともにあらんことを

escufi
Pingüindows User
5.788 mensajes
desde dic 2001
en Nastic-Land

MODO COMANDO
(explicación posterior de uso de algunos comandos *)
Nota: cuando hay dos letras es la combinación de ambas = dd
Solo pongo algunos comandos

---------- Insertar texto antes del cursor
---------- Introduce texto al rpincipio de la linea
---------- Introduce texto después del cursor
---------- Introduce texto al final de la linea
---------- Introduce una nueva linea por debajo del cursor *
---------- Introduce una nueva linea por encima del cursor
----- Borra la palabra (del word)
----- Borra toda la linea (double del .. supongo :P )
---------- Borra hasta el final de la linea desde la posición del cursor
---------- Borra el carácter situado en la posición del cursor
----- Cambiar la palabra *
----- Cambia la linea
---------- Introduce cambio hasta el final de la linea
---------- Remplaza un solo carácter ( mejor desde modo texto apretar backspace)
---------- Desplazarse una palabra
<$> ---------- Desplazarse hasta el final de la linea
---------- Se desplaza una linea por encima
---------- Se desplaza una linea por debajo
----- Buscar cadena, se desplaza hasta la cadena coincidente con x ( x = palabra)
<;> ---------- Repite el ultimo comando
num ----- Desplaza el cursor hasta el numero de columna especificado en num
---------- Desplaza cursor a la primera linea q se muestra en pantalla
---------- Desplaza cursor a la ultima linea del texto
num ----- Desplaza cursor a la linea q indiquemos en num
<^> ---------- Desplaza el cursor hasta el principio de la linea
----- Reajusta la pantalla
----- Muestra el nombre de archivo, la linea actual, y num de columna
----- Copia toda la linea en la memoria intermedia ( ctrl.-c para entendernos)

---------- Introduce lo q tengamos en la memoria intermedia ( paste)*
:w ---------- Escribe los cambios en el fichero
:w nomb ----- Guarda el fichero con el nombre dado
:q ---------- Sale de vi
:q! ---------- Sale del archivo sin guardar cambios
:wq ---------- Guarda los cambios en el archivo y sale de vi
:r archv ----- Lee archivo especificado con el editor
:e archv ----- Edita el archivo
:! Cmd ----- Ejecuta el comando shell especificado ( util)
:num ----- Se desplaza el num de lineas especificado
/cadena ----- Busca cadena hacia delante
?cadena ----- Busca cadena hacai atrás
----- Deshace el ultimo comando
. ---------- Repite el ultimo comando
----- Guarda el archivo y sale rapidamente
---------- Cambia al modo comando



Comando a destacar:

:x,y s/cadena antigua/cadena nueva ---- Muy util Sustituye la cadena antigua por la nueva cadena desde la linea x hasta la linea y ( si se introduce y=$ y X= ^ es desde el principio al final del texto) Es util para cuando tenemos una archivo por ejemplo de win y nos deja el rastro de los return o carry return al final de cada linea,)


Nota sobre los comandos:
La gracia de los comandos es q en vi además se pueden combinar o repetir, por ejemplo si suponemos q queremos borrar 4 palabras se puede poner <4> o si queremos borrar 3 lineas <3>

Explicación algunos comandos:

Explicación comando ( Introduce una nueva linea por debajo del cursor )

Imaginemos q tenemos

“El foro de soft libre de eol
Vale la pena mirarselo de vez en cuando”

Si situamos el cursor detrás de eol y escribimos en modo comando Es muy buen foro , obtendremos

“El foro de soft libre de eol
Es muy buen foro
Vale la pena mirarselo de vez en cuando”


Explicación comando

(Introduce lo q tengamos en la memoria intermedia ( paste))

Imaginemos q tenemos

“El Foro libre soft es muy interesante”

si nos situamos en la palabra sofá y pulsamos borraremos la palabra obteniendo
“El foro libre es muy interesante”
ahora nos situamos delante de libre y apretamos

asi hara un paste de lo borrado obteniendo
“El foro softlibre es muy interesante”



**********Editado *************

Añadido comando ( Thanks Sergiox)

********** /editado ***********

Ultima edición por escufi el 06 mar 2003 01:34, editado 1 vez
9/11/2005 (D.E.P Cybb :( ) LinuxUser: #294822
フォースとともにあらんことを

escufi
Pingüindows User
5.788 mensajes
desde dic 2001
en Nastic-Land

OPCIONES DEL VI

El editor vi dispone de varias opciones para usar si se quiere, algunas pueden definirlas el administrador del sistema para todo el sistema.

Tabla de opciones y explicación: (pd = por defecto)

ai

Esta opcion es la opcion llamada autoident q lo q hace es sangrar cada linea al mismo nivel que la superior ( es util para editar programas ) (pd = OFF)

ap

Autoprint imprime la linea actual en la pantalla cuando se cambia de linea. (pd = ON)

eb

Errorbells , el ordenador envia una señal acustica cuando te equivocas al escribir un comando (pd = OFF )

nu

Number, muestra los numeros de linea cando se edita un archivo (pd = OFF)

redraw

Mantiene la pantalla actualizada mientras se hacen cambios (pd = ON ) (evidentemente)

report

Define el tamaño de un cambio de edicion q se muestra por la linea de estado, por ejemplo si tenemos report=3 muestra un mensaje el borrar 3 lineas pero no cuando son menos (pd = 5)

sm

Showmatch muestra un paréntesis abierto cuando se escribe el paréntesis de cierre (util para los programas) (pd = OFF)

smd

Showmode muestra “INPUT”, “REPLACE “,“CHANGE” en el lado derecho de la linea de estado o informacion cuando se activa el comando correspondiente (pd = OFF)

warm

Muestra un mensaje de aviso cuando se intenta salir de vi si se ha modificado algo del archivo y no se ha salvado (pd = ON)

wm=n

wrapmargin define el margen derecho.( n define el tamaño) por ejemplo si tenemos wm=10 cada vez q pongamos mas de 10 caracteres saltara de linea (pd= OFF) para desactivarlo hay q poner wm=0

ws

Word search o wrapscan salta desde el carácter al durante una búsqueda (pd= ON)


Como saber q opciones tenemos activadas?

Para saber q opciones tenemos podemos poner en modo comando la palabra set
Para definir las opciones hay q editar el archivo .exrc en nuestro directorio si lo tenemos , sino se crea y dentro se pone lo q queremos de este modo

set nu smd

nota: tambien se podria usar

set number showmode

nota2: se puede hacer el set tambien desde dentro del vi con el comando se
:se smd ( por ejemplo)
y para desactivar
:se nosmd (creo)
9/11/2005 (D.E.P Cybb :( ) LinuxUser: #294822
フォースとともにあらんことを

escufi
Pingüindows User
5.788 mensajes
desde dic 2001
en Nastic-Land

Para no hacerme pesado paso de explicar mas cosas sobre el Vi, en caso de q alguien tenga alguna duda o requiera de explicaciones mas especificas sobre algun comando q lo postee aquí y se intentara responder lo mas rapido possible

Uff q cansancio :P
9/11/2005 (D.E.P Cybb :( ) LinuxUser: #294822
フォースとともにあらんことを

Din0
Arcade
1.420 mensajes
desde oct 2002
en Pac Land

Pedazo explicación, yo soy de los que usan vi habitualmente (aunque no para ver cualquier archivo que eso es arriesgado y para eso están cat y more) y te agradezco la guía.

Un saludo

khosu
MegaAdicto!!!
2.810 mensajes
y 3 fotos
desde sep 2002

Muy bien pensada la guía esta. Estoy de acuerdo que aprender VI es fundamental, hace un tiempo le instalé mandrake a un amigo, pero el driver de nvidia no le funcionaba y las x no arrancaban, asi que tuve que editar el XF86Config, y claro, tuve que hacerlo con el vi, lo bueno es que sabes seguro que tendrá un vi por cojones, y lo malo es que en aquellos tiempos no sabia manejarme por el vi, asi que me las vi negras, y desde entonces estoy practicando con él.

Parece dificil al principio, pero pienso que una persona que aprenda a manejar el VI de cabeza y tenga entrenamiento en ella puede escribir documentos (sobre todo html, programación, latex, etc.) mucho más rápido que con editores visuales, entre otras cosas xq no tienes que apartar las manos del teclado.

Ah! y en Windows tambien existe, de echo es un muy buen port.

PD: ¿Por cierto que leches significa VI? ¿Visual edItor? Siempre me lo he preguntado, antes de eso estaba "ed" que era una acortación de "Editor", ¿pero vi? Me acuerdo que hace bastantes años, cuando oí hablar por primera vez de UNIX en un libro pensaba que se llamaba "editor VI" osea: "Editor 6" pensando que era la sexta versión del editor de UNIX, porque cada vez que hablaba de él se referian a el como "editor VI" y no vi a secas. Era un libro de antes de los 90 sobre el System V, que tiempos aquellos [buenazo] [buenazo]

GTTURBO
Shinohara Ingram
1.175 mensajes
desde ene 2002
en De Danaan

muy buena explicacion :) la verdad eske saber usar el vi es bastante importante :P

Registered Linux user #294933
Socio numero 5305 de HispaLinux
Using Debian SID in a i686
Xbox Crystal with Xecuter 2.3b lite and UnleashX
"Para poder luchar contra alguien, antes debes haber luchado contigo mismo"


escufi
Pingüindows User
5.788 mensajes
desde dic 2001
en Nastic-Land

Gracias por las felicitaciones , despues de la currada va bien ver q la a la gente le gusta

:P

respecto Vi Significa Visual, y recibe ese nombre devido a q los editoresa anteriores a el eran orientados a la linea , es decir, como unix se escriba en modo teletipo ( ttyp :P ) solo se podia editar la linea de trabajo.Los creadores de este avance fueron... como no... La Universidad de California en Berkley.

Saludos
9/11/2005 (D.E.P Cybb :( ) LinuxUser: #294822
フォースとともにあらんことを

khosu
MegaAdicto!!!
2.810 mensajes
y 3 fotos
desde sep 2002

respecto Vi Significa Visual, y recibe ese nombre devido a q los editoresa anteriores a el eran orientados a la linea , es decir, como unix se escriba en modo teletipo ( ttyp ) solo se podia editar la linea de trabajo.Los creadores de este avance fueron... como no... La Universidad de California en Berkley.


Berkeley roolz [beer] [beer] [beer] gracias a esta universidad Unix mejoró y mucho respecto al de AT&T y tambien gracias a eso salieron los clones actuales de BSD que incluso usan los de M$ (Hotmail) [poraki] [poraki] en fin, gracias por aclarar la duda.

devh
from lost 2 d river
2.472 mensajes
desde dic 2002
en Monumental de River

gracias por el tutorial tio
Imagen

Siguiente

Volver a Software libre

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 1 invitado