GNU/Linux – Editor VI EDITOR DE TEXTO. VI Vi es el editor de texto más utilizado en el mundo GNU/Linux. Conocer Vi nos va a resultar de mucha utilidad ya que es el editor de textos predeteminado en este sistema operativo. Podemos usar una versión gráfica de este editor que se llama gvim. Aquí no hay que preocuparse por el formato porque simplemente no tiene, lo único que tenemos que hacer es preocuparnos por escribir. Es muy rápido y permite insertar la salida de los comandos directamente en el texto, así como también nos permite abrir archivos muy grandes (estoy hablando de varios gigas). Básicamente el vi trabaja en dos modos que son: a) Inserción. b) Comandos. a) Modo insersión: Simplemente escribimos o sobreescribimos. A este modo se lo accede simplemente presionando la tecla <insert> o la letra "i". Si presionamos la tecla <insert> otra vez podemos pasar al modo reemplazar (sobreescribimos). Si miran para abajo de la pantalla les va a aparecer el modo en el cual están trabajando. b) Para pasar al modo comandos vamos a tener que presionar la tecla <escape>, en este modo podemos hacer las cosas que estamos acostubrados a hacer a diario, guardar, guardar como, copiar líneas, copiar palabras, etc... Comandos para iniciar el vi ex Inicia el vi en modo comando. vi Comando para invocar al editor, seguido de un nombre de archivo (precedido o no de un path) sirve para abrir un archivo ya existente o generar un archivo nuevo con este nombre. view Equivalente a vi –r, abre el archivo en modo sólo lectura, evita que modifiquemos el texto, es ideal para visualizar. vim Una variante ideal para programadores. Comandos para cambiar de modo en el vi EscPasa a modo comando. i Pasa a modo inserción, es equivalente a la techa “insert”, entra en modo insertar, si lo ejecuto otra vez pasa a modo sobreescribir. Operar desde el modo inserción <escape> :! Permite ejecutar un comando pe. <escape> :! ls / ejecuta el comando ls sobre el directorio raiz. <escape> :!! Muestra el resultado de un comando. <escape> :cw Cambiar palabra. <escape> :e! editando. Regresa a la última versión grabada del archivo que estamos Marco Antonio de Hoyos Pág 1 http://tecnicoslinux.com.ar GNU/Linux – Editor VI <escape> :q Salir sin grabar, si no nos deja ejecutar q!, obliga a salir sin grabar. <escape> : set nu Habilita los números de líneas, es muy útil si estamos buscando errores de compilación en un archivo de texto. <escape> : no nu Deshabilita la numeración de líneas. <escape> :w Grabar y seguir en modo edición. Seguido de un espacio y nombre de archivo (con o sin path), genera un nuevo archivo con este nombre (es el equivalente de grabar como. Debemos tener en cuenta que estamos si bien grabamos con un nuevo nombre seguimos editando el archivo con el nombre original. Si queremos pasar a editar el nuevo archivo debemos ejecutar <escape> :e – nombre del archivo- y entonces estaremos en el nuevo archivo grabado. <escape> :w! Obliga a grabar aunque el archivo sea de sólo lectura (ojo). <escape> Shift zz Salir grabando, es equivalente a :x. <escape> / A continuación de la barra introducir una cadena de caracteres. Al oprimir Enter buscará la primera coincidencia en el archivo. Si queremos seguir buscando lo mismo, basta con oprimir n (next) Si queremos buscar un caracter especial debemos colocarlo entre comillas pe. <escape> /”/” busca las barras. Movimientos del cursor <escape> 0 (cero), al principio de la línea (no de la pantalla, sino hasta el primer retorno de carro) <escape> $ al final de la línea (no de la pantalla, sino hasta antes del último retorno de carro) <escape> a agregar después del cursor (escribe hacia la izquierda) <escape> b palabra anterior <escape> 8b al final de la octava palabra precedente <escape> Shift g al final del archivo <escape> 1g al principio del archivo <escape> gg idem anterior <escape> 1↑g idem anterior <escape> 13 g a la línea trece <escape> 20↑g lleva 20 líneas hacia arriba <escape> 20$g lleva 20 líneas hacia abajo Acciones <escape> c cambiar <escape> cc cambiar la línea completa <escape> cw cambiar hasta el final de la palabra <escape> c2w cambiar hasta el final de la segunda palabra Marco Antonio de Hoyos Pág 2 http://tecnicoslinux.com.ar GNU/Linux – Editor VI <escape> c$ cambiar hasta el final de la línea <escape> c0 cambiar hasta el comienzo de la línea <escape> d borrar <escape> dd cortar <escape> d10d corta las diez líneas siguientes <escape> dd10 idem anterior <escape> h un espacio a la izquierda <escape> 2h <escape> j dos espacios a la izquierda una línea abajo <escape> 3j tres líneas abajo <escape> k una línea arriba <escape> 5k <escape> l cinco líneas arriba un espacio a la derecha <escape> 7l siete espacios a la derecha <escape> p pegar <escape> u deshacer <escape> v pasa al modo visual (seleccionar, iluminar) <escape> w siguiente palabra <escape> 8w al comienzo de la octava palabra que sigue <escape> y copiar <escape> yy copiar la línea <escape> y10y copia las diez líneas siguientes Ejemplos <escape> g a la última línea v inicia modo selección gg selecciona hasta la primera línea d borra todo lo seleccionado (es decir todo el archivo Si hubiesemos utilizado en lugar de d la letra y hubieramos enviado una copia al portapapeles, luego con p la pegamos donde queremos. .! touch /tmp/prueba.txt crea el archivo prueba.txt en el directorio /tmp y lo edita. Comandos más comunes Archivo Guardar: <escape> :w Guardar como: <escape> :w edicion2.txt. Guardar y salir: (hay tres formas): Marco Antonio de Hoyos Pág 3 http://tecnicoslinux.com.ar GNU/Linux – Editor VI 1) <escape>:x sale y guarda (la x tiene que ser minúscula, sino puede ser una clave de archivo) 2) <escape>:wq! 3) shift ZZ Si abrimos un archivo por error y no queremos guardar: Salir sin guardar: <escape>:q! Sale o Sale Copiar y pegar Copiar una línea: <escape> yy (sin el dos puntos) Presionamos insert, enter, enter, enter, y luego para pegar colocamos: Pegar una línea: <escape>p Copiar varias líneas: <escape> y3y (copio 3 lineas). Pegar: <escape>p Cortar: varias líneas <escape> d3d (corto 3 lineas). Pegar: <escape>p Ir a la línea nº1: <escape>1, shift+g (presionar <escape>después 1 y dos teclas simultáneamente <shift>g) Ir a la última línea: <esc> shift+g. Ir a una línea en particular, vamos a la primera y luego <escape>,18, <shift>+g Para ver los números de línea: <escape>:set nu (pone los números). <escape>: set nonu (los saca). Para deshacer un cambio: <escape>u Copiar una palabra: <escape>v (pasamos al modo visual) depués con las flechas de dirección pintar la palabra cuando la hallamos pintado presionar "y" cuando la querramos pegar <escape>p <escape>v, (pintar)y <escape>p Cortar una palabra: <escape>v (pasamos al modo visual) depués con las flechas de dirección pintar la palabra cuando la hallamos pintado presionar "d" cuando la querramos pegar <escape>p <escape>v,(pintar)y, <escape>p Nota: tocando el punto (.) ejecuta siempre el último comando. ¿Cómo abrir otro archivo? <escape>:w guardo el archivo en el que estoy. <escape>:e <nombre del archivo que quiero abrir> ¿Cómo dividir la pantalla (pe. para editar dos archivos al mismo tiempo)? Estamos parados en un archivo y queremos abrir otro. Presionamos Ctrl+w soltamos y presionamos s, allí la pantalla se divide en dos. Si no soltamos rápidamente la máquina se cuelga. El archivo de divide: Marco Antonio de Hoyos Pág 4 http://tecnicoslinux.com.ar GNU/Linux – Editor VI <escape>:e <nombre del archivo que quiero abrir> <escape>CTRL+W soltamos y presionamos. Flecha abajo o flecha arriba para movernos entre uno y otro. Nos permite ejecutar un comando sin salir, lo hace mientras estoy trabajando, de manera temporal. Por ejemplo:<escape>:! ls / Esto lo pone sobre el vi, y al presionar enter se va. <escape>!! ls / (escape sin los dos puntos se inserta la salida del comando dentro del archivo en el cual estoy). ATENCION: si hay más de un usuario usando el vi, con el mismo archivo, el vi genera un archivo oculto: nombrearchivo.txt.swp (es un archivo temporal), que si lo borran, borran todo lo del otro. Vi, es el editor que va a estar en TODAS las distribuciones de GNU/Linux saberlo les da la seguridad de desenvolverse sin problemas en cualquier equipo y en cualquier distribución. Marco Antonio de Hoyos Pág 5 http://tecnicoslinux.com.ar