Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

La edición de texto es una de las tareas más comunes en cualquier sistema informático, yvi es uno de los editores de texto estándar más útiles en un sistema. Convi puedes crear archivos nuevos o editar cualquier archivo de sólo texto existente.

vicomo muchas de las utilidades clásicas desarrolladas durante los primeros años de Unix®, tiene fama de ser difícil de manejar. El clon mejorado de Bram Moolenaar, Vim ("vi Mejorado"), ha recorrido un largo camino para eliminar los motivos de tales impresiones. Vim incluye innumerables comodidades, guías visuales y pantallas de ayuda.

Hoy en día, Vim es la versión más popular de vi, por lo que esta octava edición se centra en Vim de la siguiente manera:

Alcance de este libro

Este libro consta de 17 capítulos y cuatro apéndices, divididos en cuatro partes.La Parte I, "Fundamentos de vi y Vim", está diseñada para que empieces a utilizar vi y Vim rápidamente, y para seguir con conocimientos avanzados que te permitan utilizarlos con eficacia.

Los dos primeros capítulos -Capítulo1, "Introducción a vi y Vim", yCapítulo 2, "Edición sencilla"- presentanalgunos comandos de edición sencillos con los que puedes empezar. Deberías practicarlos hasta que se conviertan en algo natural. Puedes dejar de leer al final del Capítulo 2, una vez que hayas aprendido algunas operaciones elementales de edición.

Pero los editores están pensados para hacer mucho más que un rudimentario tratamiento de textos; la variedad de comandos y opciones te permite acortar muchas tareas de edición.El Capítulo 3, "Moverse deprisa", yel Capítulo 4, "Más allá de lo básico", se centran en formas más sencillas de realizar tareas. Durante tu primera lectura, te harás al menos una idea de lo que vi y Vim pueden hacer y qué comandos podrías aprovechar para tus necesidades específicas. Más adelante, podrás volver a estos capítulos para profundizar en su estudio.

ElCapítulo5, "Introducción al ex Editor", elCapítulo 6, "Sustitución global", yel Capítulo 7, "Edición avanzada", proporcionan herramientas que te ayudan a trasladar al ordenador una mayor parte de la carga de edición. Te presentan el editor de líneas ex subyacente a vi y Vim, y te muestran cómo emitir comandos ex desde vi y Vim.

La Parte II, "Vim", describe Vim, el clon más popular de vi 21 años en el siglo XXI. Entra en detalle en las muchas (¡muchas!) características que Vim tiene sobre el original vi.

El capítulo 8, "Vim (vi mejorado): Visión general y mejoras sobre vi", proporciona una introducción general a Vim. El capítulo también ofrece una visión general de las principales mejoras de Vim sobre vi, como la ayuda integrada, el control sobre la inicialización, los comandos de movimiento adicionales, las expresiones regulares ampliadas y muchas más.

El capítulo 9, "Vim gráfico (gvim)", trata sobre Vim en entornos GUI modernos, como los que ahora son estándar en los sistemas Unix comerciales, GNU/Linux y otros similares a Unix, y MS-Windows.

El capítulo 10, "Varias ventanas en Vim", se centra en la edición multiventana, que es quizá la característica adicional más significativa respecto al estándar vi. Este capítulo proporciona todos los detalles sobre la creación y el uso de ventanas múltiples.

El capítulo 11, "Mejoras de Vim para programadores", se centra en el uso de Vim como editor para programadores, más allá de sus funciones de edición general de texto. Son especialmente útiles las funciones de plegado y esquematizado, la sangría inteligente, el resaltado de sintaxis y la aceleración del ciclo de edición-compilación-depuración.

El capítulo 12, "Scripts de Vim", trata sobre el lenguaje de comandos de Vim, que te permite escribir scripts para personalizar y adaptar Vim a tus necesidades. Gran parte de la facilidad de uso de Vim "nada más sacarlo de la caja" se debe al gran número de guiones que otros usuarios ya han escrito y aportado a la distribución de Vim.

El capítulo 13, "Otras cosas chulas de Vim", es un poco un capítulo de cajón de sastre, que abarca una serie de puntos interesantes que no encajan en los capítulos anteriores.

El capítulo 14, "Algunas técnicas de poderde Vim", presenta algunas "técnicas de poder" útiles. Basado en la idea de la reasignación personal de teclas, te muestra más formas de ser productivo.

La Parte III, "Vim en el entorno más amplio", examina viy el papel de Vim en los mundos más amplios del desarrollo de software y del uso de ordenadores.

El capítulo 15, "Vim como IDE: Se requiere algo de ensamblaje", toca la punta del iceberg del mundo de los plug-ins de Vim, centrándose en cómo puedes hacer que Vim pase de ser "sólo" un editor a un entorno de desarrollo integrado (IDE) en toda regla.

El capítulo 16, "vi está en todas partes", examina otros entornos de software importantes en los que la edición al estilo de vi puede entrar en juego para aumentar la productividad.

El capítulo 17, "Epílogo", ofrece un breve resumen como colofón.

La Parte IV, "Apéndices", proporciona material de referencia útil.

El Apéndice A, "Los editores vi, ex y Vim", enumera todos los comandos estándar de vi y ex, ordenados por función. También proporciona una lista alfabética de los comandos ex. También se incluyen comandos seleccionados de vi y ex de Vim.

Enel Apéndice B, "Configuración de opciones", se enumeran las opciones del comando set para vi y para Vim.

El Apéndice C, "El lado más ligero de la vi",presenta material humorístico relacionado con vi.

El Apéndice D, "vi y Vim: Código fuente y construcción",describe dónde conseguir el "Heirloom" vi, así como la forma de conseguir Vim para tu sistema Unix, GNU/Linux, MS-Windows o Macintosh.

Cómo se presenta el material

Nuestra filosofía es darte una buena visión general de lo que consideramos vi y Vimmateriales de supervivencia para el nuevo usuario. Aprender un nuevo editor, especialmente un editor con todas las opciones de Vim, puede parecer una tarea abrumadora. Hemos hecho un esfuerzo por presentar los conceptos y comandos básicos de una forma fácil de leer y lógica.

Tras proporcionar los conceptos básicos de vi y Vim, que se pueden utilizar en todas partes, pasamos a tratar Vim en profundidad. En las siguientes secciones se describen las convenciones utilizadas en este libro.

Discusión sobre los comandos vi

Para cada comando de teclado o grupo de comandos relacionados, encontrarás una breve introducción al concepto principal antes de desglosarlo en secciones orientadas a las tareas. A continuación, te presentamos el comando adecuado que debes utilizar en cada caso, junto con una descripción del comando y la sintaxis correcta para utilizarlo.

Convenios

En las descripciones y ejemplos de sintaxis, lo que escribirías realmente se muestra en la fuente constant width, al igual que todos los nombres de comandos y opciones del programa. Las variables (que no escribirías literalmente, sino que sustituirías por un valor real al escribir el comando) se muestran en la fuente Constant width italic. Los corchetes indican que una variable es opcional. Por ejemplo, en la línea de sintaxis

vi [filename]

filename se sustituiría por un nombre de archivo real. Los corchetes indican que el comando vi puede invocarse sin especificar ningún nombre de archivo. Los corchetes en sí no se escriben.

Algunos ejemplos muestran el efecto de los comandos escritos en el intérprete de comandos. En estos ejemplos, lo que realmente escribes se muestra en constant width boldpara distinguirlo de la respuesta del sistema. Por ejemplo:

$ ls
ch01.xml ch02.xml ch03.xml ch04.xml

En los ejemplos de código, la cursiva indica un comentario que no debe escribirse. En el texto, la cursiva se refiere a los nombres de archivo, introduce términos especiales y enfatiza cualquier cosa que necesite énfasis.

Siguiendo la convención tradicional de documentación de Unix, las referencias de la forma printf(3) remiten al manual en línea (al que se accede mediante el comando man ). Este ejemplo se refiere a la entrada de la funciónprintf() en la sección 3 del manual. Para verla, en la mayoría de los sistemas escribirías man -s 3 printf.

Pulsaciones de teclas

Las pulsaciones especiales se muestran en un recuadro. Por ejemplo:

iWith aESC

A lo largo del libro, también encontrarás columnas de vi/Comandos Vim y sus resultados:

Pulsaciones de teclas Resultados

ZZ

"practice" [New] 6L, 104C written 

Da la orden de escribir y guardar, ZZ. Tu archivo se guarda como un archivo de disco normal.

En el ejemplo anterior, el comando ZZ se muestra en la columna de la izquierda. En la columna de la derecha hay una línea (o varias líneas) de la pantalla que muestra el resultado del comando. La posición del cursor se muestra en vídeo inverso. En este caso, como ZZ guarda y escribe el archivo, ves la línea de estado que se muestra cuando se escribe un archivo; la posición del cursor no se muestra. Debajo del comando/resultado hay una explicación del comando y de lo que hace.

En algunas de estas demostraciones, mostramos comandos del shell y sus resultados. En estos casos, los comandos van precedidos del prompt estándar del shell $ y el comando aparece en negrita:

Pulsaciones de teclas Resultados

$ ls

ch01.asciidoc ch02.asciidoc ch03.asciidoc

A veces, los comandos de vi se emiten pulsando simultáneamente la teclaCTRL y otra tecla. En el texto, esta combinación de teclas suele escribirse dentro de un recuadro (por ejemplo,CTRL-G). En los ejemplos de código, se escribe precediendo el nombre de la tecla con un signo de intercalación (^). Por ejemplo, ^G significa mantener pulsadala tecla CTRL mientras se pulsa la teclaG. Es convención universal referirse a los caracteres de control utilizando letras mayúsculas (^G, no ^g) aunqueno mantengas pulsada la tecla SHIFT al escribirlos.1

Además, cuando las letras mayúsculas se muestran utilizando la notación de mayúsculas, lo hacemos comoMAYÚSCULAS-X para cualquier carácter X. Así, a se representa comoA, y A se representa comoMAYÚSCULAS-A.

Precauciones, notas y consejos

Precaución

Se trata de una nota de advertencia. Describe cosas con las que debes tener cuidado.

Nota

Esto es sólo una nota normal y corriente. Señala cosas que pueden ser de interés o que pueden no haber sido obvias.

Consejo

Esto es un consejo. Proporciona atajos útiles o cosas que puedes hacer para ahorrar tiempo.

Listas de control de problemas

Se incluye una lista de comprobación de problemas en aquellas secciones en las que puedes encontrarte con algún problema. Puedes hojear estas listas de comprobación y volver a ellas cuando te encuentres realmente con un problema.

Lo que debes saber antes de empezar

Este libro asume que tienes conocimientos básicos a nivel de usuario de Unix.En particular, ya deberías saber cómo:

  • Abre una ventana de terminal en tu ordenador portátil o estación de trabajo para acceder a un intérprete de comandos

  • Inicia y cierra la sesión, normalmente a través de ssh, si utilizas un sistema remoto

  • Introducir comandos shell

  • Cambiar directorios

  • Listar archivos de un directorio

  • Crear, copiar y eliminar archivos

También es útil estar familiarizado con grep (un programa de búsqueda global) y los caracteres comodín.

Aunque los sistemas modernos te permiten ejecutar Vim desde un sistema de menús GUI,pierdes el acceso a la flexibilidad que proporcionan las opciones de la línea de comandos de Vim. Por ello, a lo largo del libro, nuestros ejemplos siguen demostrando la ejecución de vi y Vim desde la línea de comandos.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://www.github.com/learning-vi/vi-files.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Aprendiendo los editores vi y Vim por Arnold Robbins y Elbert Hannah (O'Reilly). Copyright 2022 Elbert Hannah y Arnold Robbins, 978-1-492-07880-7".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/viVim8.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para obtener noticias e información sobre nuestros libros y cursos, visita http://oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://youtube.com/oreillymedia

Acerca de las ediciones anteriores

En la quinta edición de este libro (que entonces se llamaba Aprendiendo el editor vi), se trataron por primera vez con más detalle los comandos del editor ex. En los Capítulos 5, 6 y 7, se aclararon las complejas características de ex y vi añadiendo más ejemplos, cubriendo temas como la sintaxis de expresiones regulares, el reemplazo global, los archivos .exrc, las abreviaturas de palabras, los mapas de teclado y los scripts de edición. Algunos de los ejemplos se extrajeron de artículos de la revista UnixWorld. Walter Zintz escribió un tutorial en dos partes2 sobre vi que nos enseñó algunas cosas que no sabíamos, y que también tenía un montón de ejemplos ingeniosos que ilustraban funciones que ya habíamos cubierto en el libro. Ray Swartz también tenía un consejo útil en una desus columnas.3 Agradecemos las ideas de estos artículos.

La sexta edición de Aprendiendo el Editor vi introdujo la cobertura de cuatro "clones" o editores similares a vi disponibles gratuitamente. Muchos de ellos presentan mejoras respecto al original vi. Se podría decir, por tanto, que existe una "familia" de editores vi, y el objetivo del libro era enseñarte lo que necesitabas saber para utilizarlos. Esa edición trataba por igual a nvi, Vim, elvis y vile. Un nuevo apéndice describía el lugar de vien la cultura más amplia de Unix e Internet.

La séptima edición de Aprender los editores vi y Vim conservó todas las buenas características de la sexta edición. El tiempo había demostrado que Vim era el clon más popular de vi, por lo que la séptima edición añadió una cobertura considerablemente ampliada de ese editor (y dio a Vim un lugar en el título). Sin embargo, para ser relevante para el mayor número posible de usuarios, mantuvo yactualizó el material sobre nvi, elvis y vile.

Acerca de la Octava Edición

Esta octava edición de Aprender los editores vi y Vim conserva todas las buenas características de la séptima edición. Ahora Vim "manda", por lo que esta edición actualiza la cobertura de Vim y elimina el material sobre nvi, elvis y vile.La Parte I utiliza ahora Vim como contexto para sus instrucciones y ejemplos. Además, se han eliminado las referencias a problemas con versiones anteriores del originalvi que simplemente ya no son relevantes. Hemos intentado racionalizar el libro y mantenerlo lo más relevante y útil posible.

Novedades

Las siguientes funciones son nuevas en esta edición:

  • Una vez más, hemos corregido errores en el texto básico.

  • Hemos revisado y actualizado a fondo el material dela ParteI y la Parte II. En la Parte I, hemos cambiado el énfasis de la versión original Unix de vi a "vi en el contexto de Vim". También hemos añadido un nuevo capítulo a la Parte II.

  • Los capítulos adicionales de la Parte III son totalmente nuevos.

  • Hemos cambiado el enfoque del Apéndice C.

  • Hemos trasladado el material sobre cómo conseguir o construir Vim del texto principal al Apéndice D.

  • También se han actualizado los demás apéndices.

Versiones

Se utilizaron los siguientes programas para probar diversas funciones de vi:

  • El "Heirloom" vi dehttps://github.com/n-t-roff/heirloom-ex-vi sirvió como versión de referencia del Unix original vi.

  • Solaris 11 /usr/xpg7/bin/vi. (¡En Solaris 11,/usr/bin/vi es en realidad Vim! Las versiones de vi en/usr/xpg4/bin, /usr/xpg6/bin y/usr/xpg7/bin parecen derivadas del original Unix vi).

  • Versiones 8.0, 8.1 y 8.2 del Vim de Bram Moolenaar.

Agradecimientos de la Sexta Edición

Ante todo, gracias a mi mujer, Miriam, por cuidar de los niños mientras trabajaba en este libro, sobre todo durante las "horas brujas", justo antes de las comidas. Le debo mucho tiempo de tranquilidad y helado.

Paul Manno, de la Facultad de Informática de Georgia Tech, me proporcionó una ayuda inestimable para pacificar mi software de impresión. Len Muellner y Erik Ray, de O'Reilly & Associates, me ayudaron con el software SGML. Las macros vi de Jerry Peek para SGML fueron inestimables.

Aunque se utilizaron todos los programas durante la preparación del material nuevo y revisado, la mayor parte de la edición se realizó con las versiones 4.5 y 5.0 de Vim en GNU/Linux (Red Hat 4.2).

Gracias a Keith Bostic, Steve Kirkendall, Bram Moolenaar, Paul Fox, Tom Dickey y Kevin Buettner, que revisaron el libro. Steve Kirkendall, Bram Moolenaar, Paul Fox, Tom Dickey y Kevin Buettner también aportaron partes importantes de los capítulos 8 a 12. (Estos números de capítulo se refieren a la sexta edición).

Sin la electricidad que genera la compañía eléctrica, hacer cualquier cosa con un ordenador es imposible. Pero cuando hay electricidad, no te paras a pensar en ello. Lo mismo ocurre al escribir un libro: sin un editor, no pasa nada, pero cuando el editor está allí haciendo su trabajo, es fácil olvidarse de él. Gigi Estabrook, de O'Reilly, es una verdadera joya. Ha sido un placer trabajar con ella, y agradezco todo lo que ha hecho y sigue haciendo por mí.

Por último, muchas gracias al equipo de producción de O'Reilly & Associates.

  • Arnold Robbins

  • Ra'anana, ISRAEL

  • Junio de 1998

Agradecimientos de la Séptima Edición

Una vez más, Arnold da las gracias a su mujer, Miriam, por su amor y apoyo. El tamaño de su deuda de tiempo de tranquilidad y helados sigue creciendo. Además, gracias a J. D. "Illiad" Frazer por las magníficas viñetas User Friendly.4

Elbert quiere dar las gracias a Anna, Cally, Bobby y a sus padres por seguir entusiasmados con su trabajo en los momentos difíciles. Su entusiasmo era contagioso y apreciado.

Gracias a Keith Bostic y Steve Kirkendall por sus aportaciones a la revisión de los capítulos de sus editores. Tom Dickey hizo importantes aportaciones para revisar el capítulo sobre vile y la tabla de opciones de seten el Apéndice B. Bram Moolenaar (el autor de Vim) también revisó el libro en esta ocasión. Robert P. J. Day, Matt Frye, Judith Myerson y Stephen Figgins aportaron importantes comentarios de revisión a lo largo del texto.

Arnold y Elbert quieren dar las gracias a Andy Oram e Isabel Kunkle por su trabajo como editores, y a todo el personal de herramientas y producción de O'Reilly Media.

  • Arnold Robbins

  • Nof Ayalon

  • ISRAEL

  • Abril de 2008

  • Elbert Hannah

  • Kildeer, Illinois

  • EE.UU.

  • Abril de 2008

Agradecimientos por la Octava Edición

Queremos dar las gracias a Krishnan Ravikumar, cuyo correo electrónico a Arnold preguntando por una nueva edición puso en marcha la actualización del libro.

También queremos dar las gracias a nuestros revisores técnicos (por orden alfabético): Yehezkel Bernat, Robert P. J. Day, Will Gallego, Jess Males, Ofra Moyal-Cohen, Paul Pomerleau y Miriam Robbins.

Arnold quiere dar las gracias una vez más a su mujer, Miriam, por haber prescindido de él durante la elaboración del libro. También da las gracias a sus hijos, Chana, Rivka, Nachum y Malka, así como a la perra Sophie.

Elbert quiere dar las gracias a las siguientes personas

  • A su esposa, Anna, que una vez más aceptó el extraño horario y las exigencias de la elaboración de este libro. También da las gracias a Bobby y Cally por su apoyo y ánimo a medida que avanzaba el trabajo. Su actitud siempre alegre siempre animó. Y extiende un agradecimiento especial a su nuevo nieto Dean. Una de las primeras palabras de Dean fue "libro", y Elbert sólo puede suponer que Dean se refería a éste.

  • Su West Highland Terrier, Poncho, que estaba allí cuando escribió la séptima edición y sigue vivito y coleando y esperando ansioso la octava edición. No sabe leer, pero "entiende" Vim. ¡Buen chico, Poncho! Siempre con las patas en el teclado, nunca tocando el ratón.

  • Sus compañeros del grupo CME durante unos estupendos 13 años en los que perfeccionó sus habilidades con Vim y enseñó a otros la grandeza de Vim.

    • Hace una mención especial a Scott Fink, un compañero, un jefe, un colaborador y un amigo, que siempre pedía aprender más no sólo sobre Vim, sino sobre todas las cosas del universo Vim. Trabajando con Scott, aprovechó el "zen" de Vim para escribir juntos grandes aplicaciones.

    • Paul Pomerleau por ser un revisor técnico de este libro yalguien que siempre le mantuvo honesto sobre la comparación Vim/Emacs. Y aunque Paul utilizaba Emacs, fue uno de los mejores colaboradores y amigos de Elbert durante esos 13 años.

    • Michael Sciacco por enseñarle el VS Code de Microsoft. Michael enseñó a este perro viejo un montón de trucos nuevos. Michael, ¡eres un IDE!

    • Por último, Tony Ferraro, bajo cuya dirección trabajó sus últimos días profesionales. Tony siempre animó a Elbert a escribir (documentación técnica), y Elbert lo intentó. ¡Este libro es para ti, Tony!

Ambos queremos dar las gracias a nuestros editores de esta edición, Gary O'Brien y Shira Evans, por guiarnos pacientemente durante el proceso de revisión. Se ha dicho que dirigir programadores es como pastorear gatos; sin duda, lo mismo puede decirse de dirigir autores. Del mismo modo, damos las gracias al personal de herramientas y producción de O'Reilly Media.

  • Arnold Robbins

  • Nof Ayalon

  • ISRAEL

  • Septiembre de 2021

  • Elbert Hannah

  • Kildeer, Illinois

  • EE.UU.

  • Septiembre de 2021

1 Quizá se deba a que los teclados tienen las letras mayúsculas en las teclas, no las minúsculas.

2 "vi Consejos para usuarios avanzados", UnixWorld, abril de 1990; y "Utilizar vi para automatizar ediciones complejas", UnixWorld, mayo de 1990. Ambos artículos son de Walter Zintz.

3 Ray Swartz, "Respuestas a Unix", UnixWorld, agosto de 1990.

4 Consulta http://www.userfriendly.org si nunca has oído hablar de User Friendly.

Get Aprender los editores vi y Vim, 8.ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.