fbpx
Wikipedia

Vim

Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX.

Vim

Gvim, una de las implementaciones gráficas de Vim.
Información general
Tipo de programa editor de código fuente
Desarrollador Bram Moolenaar y otros
Lanzamiento inicial 2 de noviembre de 1991
Licencia Vim License (GNU-compatible) charityware
Información técnica
Programado en
  • C
  • Vim script
Interfaz gráfica predeterminada GTK
Versiones
Última versión estable 8.2 (info) 13 de diciembre de 2019 (1 año, 7 meses y 22 días)
Enlaces
Sitio web oficial
Repositorio de código

Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras. La principal característica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo que los diferencia de la mayoría de editores comunes, que tienen un solo modo en el que se introducen las órdenes mediante combinaciones de teclas o interfaces gráficas.

Vi IMproved

Vim, como su antecesor Vi, se utiliza desde un Terminal en modo texto. Se controla por completo mediante el teclado. Esto es en parte a causa de que Vi fue desarrollado a mediados de la década de 1970, cuando los terminales se comunicaban con un ordenador principal (host) mediante una conexión serie, que no era muy rápida (20 Kbps). Las limitaciones de los terminales de la época dieron lugar al concepto de diferentes modos, idea que ha resultado muy provechosa desde entonces. Vim es casi 100 % compatible con Vi,[1][2]​ aunque tiene muchas mejoras e incluso cuenta con versiones dotadas de interfaz gráfica y menús que pueden operarse mediante el ratón (gvim o kvim), así como una versión simplificada, evim que se comporta como un editor sin diferentes modos.

Hay versiones de Vim disponibles para muchos sistemas operativos y se puede encontrar en casi cualquier sistema GNU/Linux y en todos los sistemas *BSD, donde en muchas ocasiones se puede ejecutar a través de la orden vi, que invoca a Vim a través de un enlace simbólico o un alias. Cuando se inicia vim, lo hace en modo comando, y muestra la versión por pantalla.

Evolución de Vim

 
Figura 1: Captura de gVim, una de las implementaciones de Vim, editando este mismo artículo y emacs simultáneamente en dos ventanas diferentes.

Cuando Bram Moolenar compró una computadora Amiga a finales de la década de 1980, quería seguir usando el editor de Unix al que se había acostumbrado, pero los clones de Vi disponibles para Amiga no le convencían. Así que en 1988 partió del clon de Vi Stevie 1.0 como base para empezar a desarrollar Vim. En un principio le llamó Vi IMitation (imitación de Vi), pues al principio su objetivo principal era emular las funcionalidades de que Vi disponía en su nuevo sistema. En 1991 apareció la versión 1.14 en "Fred Fish disk #591", una colección de software libre para Amiga.[3]​ La versión 1.22 fue la primera que apareció con versiones para Unix y MS-DOS. Por aquellos tiempos el acrónimo que le daba nombre ya había cambiado a Vi IMproved.

 
Figura 2: Vim con las siguientes características: Numeración de líneas, Unicode, resaltado de sintaxis y plegado de texto.

En los años siguientes Vim experimentó grandes mejoras. Se dio un paso importante al incorporar ventanas en la versión 3.0 (1994) (Figura 1). Con Vi se pueden tener varios ficheros abiertos en la misma sesión, pero solo se puede ver uno a la vez; las ventanas de Vim permiten verlos simultáneamente. Desde la versión 4.0 (1996) está disponible una interfaz gráfica de usuario (GUI en inglés), que empezó a desarrollar Robert Webb. Desde la versión 5.0 (1998) Vim dispone de resaltado de sintaxis (Figura 2).

 
Figura 3: Nuevas características de Vim 7: corrección ortográfica y compleción automática de texto.

Principales funcionalidades

  • Corrector ortográfico integrado
  • Completador automático de texto
  • Navegación por pestañas
  • Ventanas múltiples, que dividen el área de edición horizontal o verticalmente.
  • Resaltado de sintaxis dependiente del lenguaje de programación o de etiquetas utilizado
  • Órdenes deshacer y rehacer
  • Comprensión de más de 200 sintaxis diferentes
  • Lenguaje de scripting para programar extensiones
  • Completado de órdenes, palabras y nombres de ficheros
  • Compresión y descompresión de ficheros, que posibilita editar ficheros comprimidos
  • Reconocimiento de formatos de fichero y conversión entre los mismos.
  • Historial de órdenes ejecutadas
  • Grabación y reproducción de macros
  • Guardado de la configuración entre sesiones
  • Plegado automático y manual de código
  • Interfaz gráfica opcional
  • Altamente configurable y personalizable
  • Casi 100% compatible con vi, pero sin muchos de sus defectos

Ayuda de Vim

Vim dispone de una excelente documentación, que se rige por la máxima Una característica no documentada es una característica inútil. La documentación, en formato texto, es muy amplia y fácil de entender. El usuario accede mediante una búsqueda a la descripción de varias funcionalidades que pueden solucionar su problema. A través del resaltado de la sintaxis propia de la ayuda de Vim se resaltan las palabras clave (Figura 3).

Mediante combinaciones de teclas ejecutadas cuando el cursor está sobre una palabra clave se puede navegar por la ayuda, volviendo atrás en caso necesario. En la versión gráfica también se puede utilizar el ratón para este propósito. La orden :helpgrep es importante, pues permite al usuario buscar una palabra en los textos de la ayuda, sin que sea necesario que se trate de una palabra clave (Figura 4). Completan la ayuda una versión en HTML disponible para su consulta en internet y una extensa lista de preguntas frecuentes (FAQ).

Ventajas para programadores

Vim es muy personalizable y extensible, lo que lo hace muy atractivo para usuarios que demandan gran cantidad de control y flexibilidad en la edición de texto.[4]​ La entrada de texto se facilita con una serie de funciones diseñadas para incrementar la eficiencia del teclado. Los usuarios pueden ejecutar comandos complejos como el «mapeado» de teclas, que puede personalizarse y extenderse. La característica de grabación permite la creación de macros para automatizar secuencias de pulsaciones y llamar funciones internas o definidas por el usuario. Las «abreviaturas», similares a las macros y los mapeos, facilitan la expansión de cadenas de texto cortas hacia largas y pueden usarse también para corregir errores. Vim también tiene un modo fácil para los usuarios que buscan un editor sencillo.[5]​ Hay muchas extensiones (plugins) disponibles[6]​ que añaden o extienden funcionalidades como comprobación de sintaxis y errores semánticos, integración con Git, mostrar colores en CSS. Estos scripts complejos normalmente están escritos en el lenguaje interno «vimscript» (conocido también como VimL),[7]​ pero también pueden escribirse en otros lenguajes.

Vim es un editor hecho por programadores para programadores. Para facilitar la programación, Vim dispone de un modo "editar, compilar, corregir". De la misma forma que los entornos de desarrollo integrados, puede editar el código fuente además llamar a un compilador externo, e interpretar sus resultados. Si hay errores de compilación, éstos se muestran en una ventana. Los mensajes de error dirigen al usuario a la zona en la que se han encontrado para poder así corregirlos. Entonces vuelve a empezar el ciclo "editar, compilar, corregir" y, si es necesario, corregir nuevos errores. El trabajo del programador también se ve facilitado por el resaltado de sintaxis y la funcionalidad de plegado de código (véase ':help quickfix').

Comparación de ficheros

Comparar dos (o más) versiones de un fichero es una tarea frecuente para algunos usuarios. Vim ofrece una solución simple, las dos versiones diferentes del fichero se muestran en dos ventanas contiguas en las que se resaltan las diferencias (Figura 5). De esta forma se pueden ver coloreadas las diferencias intercaladas en las versiones. Por ejemplo, las eliminaciones aparecen en rojo y las nuevas inserciones en violeta.

Hay órdenes que permiten situar el cursor en las diferencias siguientes y anteriores ([c y ]c), además de volcar estas diferencias hacia el otro archivo (do y dp).

El lenguaje interpretado de Vim

Vim dispone de un lenguaje interpretado, o de scripting, para programar nuevas funcionalidades, mediante el que se pueden automatizar operaciones particulares demasiado complejas para realizarlas con una macro. Los scripts pueden ser leídos e interpretados mediante la orden :source.

El lenguaje se llama vimscript o VimL)[8][9]

Las macros de Vim pueden contener una secuencia de comandos del modo normal, pero también pueden invocar comandos exteriores o funciones escritas en vimscript para tareas más complejas. Casi todas las extensiones (plugins) de las funciones troncales de Vim están escritas en vimscript, pero también pueden usar otros lenguajes como Perl,[10]Python,[11]Lua,[12]Ruby,[13]Tcl,[14]​ o Racket.[15]

Estas extensiones pueden instalarse manualmente o mediante un gestor de extensiones como Vundle, Pathogen, o Vim-Plug.

Los ficheros de vimscript se guardan como texto plano, similar a cualquier otro código, y la extensión suele ser .vim. Una excepción a eso es la del fichero de configuración de Vim que tiene la extensión .vimrc.

Ejemplo

" This is the Hello World program in Vim script. echo "Hello, world!" " This is a simple while loop in Vim script. let i=1 while i < 5 echo "count is" i let i +=1 endwhile unlet i 

Modos

Vim es un editor modal, lo que significa que se puede trabajar en diferentes modos para realizar una tarea determinada. Para ver en qué modo se encuentra Vim se debe de tener activada la opción showmode. A continuación se describen los seis modos de Vim.[16]​ Los tres primeros son los modos del vi original. Los cinco modos adicionales no deben entenderse por separado, sino en combinación con el modo base. Véase también la ayuda de Vim a este respecto: ':help vim-modes'.

Modo comandos

Vim empieza en modo comando, también conocido como modo normal. En este modo se pueden emplear combinaciones de teclas para, por ejemplo, copiar líneas y trabajar en el formato del texto. Éste es el modo central, desde el que se cambia a los otros modos.[16]​ Si no se sabe qué se está haciendo, pulsando dos veces la tecla Escape siempre se puede volver al modo normal. Si ya se estaba en modo normal y tanto la configuración de Vim como la del terminal lo permiten, Vim emite un pitido.[17]

Modo inserción

En modo inserción cuando se pulsan las teclas se edita el texto como en otros editores. Se puede cambiar del modo comandos al modo inserción pulsando la tecla i. Hay un gran abanico de comandos para pasar al modo inserción, que difieren sustancialmente, pues permiten por ejemplo editar al final de la línea, en un punto concreto del texto, editar borrando una palabra, entre muchas otras.[18]​ Un usuario experto puede sacar un gran provecho de la existencia de esta variedad de órdenes.

En el modo inserción todas las teclas tienen alguna función además de la mera inserción, que se activan pulsando simultáneamente las teclas Tecla control o Mayúsculas. La tecla Esc es muy importante en modo inserción, pues permite cambiar de modo inserción a modo comandos.

Cambiando al modo comandos para realizar ciertas tareas se incrementa en gran medida la eficiencia en la edición, y se puede aprovechar la potencia completa de Vim.

Modo línea de órdenes

 
Vim version 7.4.1689 corriendo en GNU Linux Ubuntu 16.04

A este modo se accede pulsando la tecla dos puntos :. Tras los dos puntos se pueden introducir órdenes complejas, como por ejemplo buscar y reemplazar con expresiones regulares. Pulsando la tecla Esc se puede volver al modo órdenes. Las búsquedas se pueden realizar con la orden / (hacia adelante) y ? (hacia atrás). También se pueden filtrar líneas mediante !.[19]

Modo visual

Este modo es una mejora respecto a vi. Mediante unas ciertas combinaciones de teclas en combinación con las teclas de movimiento del cursor, se puede marcar un área de texto, ya sea un grupo de líneas o un bloque. Una vez se tiene el texto marcado se pueden usar órdenes del modo comandos para manipularlo. Las operaciones que se pueden realizar en este modo son más simples que las del modo comandos.[20]

Modo selección

Este modo empieza como el modo visual, pues hay que seleccionar un bloque de texto. Tras la selección, se puede cambiar al modo selección mediante Control-G. Una vez en el modo, si se pulsa una tecla imprimible, el texto seleccionado se borra, se termina el modo selección y aparece el símbolo correspondiente a la tecla pulsada. La selección se puede extender pulsando mayúsculas y las teclas de flechas, el comportamiento habitual en los programas de Microsoft Windows. Este modo se puede finalizar pulsando la tecla Escape.[21]

Modo Ex

Este modo se asemeja al modo línea de órdenes, con la diferencia de que tras la ejecución de una orden no se vuelve al modo comandos. Se entra en este modo pulsando Q y se termina con vi. En este modo Vim imita al editor de UNIX ex, que manipulaba el texto línea a línea debido a las limitaciones de la época, en lugar de editar toda la página.[22]

gVim

 
Captura de gVim, una de las implementaciones de Vim, editando un artículo de Wikipedia.

gVim es una versión gráfica del editor de textos Vim. gVim funciona con las librerías gtk. Mantiene las funcionalidades del Vim, y añade menús y un entorno gráfico (funciona fuera de la consola/terminal).

Su principal ventaja, para los nuevos usuarios, los menús desplegables implican una curva de aprendizaje algo menos dura. Su principal desventaja es que no está instalado por defecto en todos los sistemas (por ejemplo, no está en los servidores sin entorno gráfico).

Sistemas operativos

Una virtud de Vim es que se puede ejecutar en muchos sistemas operativos. Esto es importante para usuarios, como por ejemplo administradores de sistemas que deben trabajar en muchas plataformas distintas. Se puede ejecutar en los siguientes sistemas operativos: AmigaOS, Atari MiNT, BeOS, DOS, GNU/Linux, Mac OS, NextStep, OS/2, OSF, RISC OS, IRIX, Unix (muchas variedades, como por ejemplo BSD, AIX y HP-UX), VMS, y Windows 3.x/95/98/ME/2000/NT/XP.

Pros y contras

Críticas

Las críticas se aplican a Vi y Vim por igual, pues están basados en el mismo concepto y sus modos de operación son completamente diferentes de la mayoría los editores convencionales actuales. Sobre todo conciernen a la separación de las operaciones en distintos modos y la necesidad de aprender numerosas combinaciones de teclas, sin las que no es posible trabajar de forma eficiente. Actualmente la falta de empleo del ratón como complemento extra a las combinaciones de teclas se considera como un anacronismo, pues puede llevar al usuario ocasional a la frustración. Sólo tras un aprendizaje prolongado se consigue aumentar la productividad.

Ventajas

 
Fondo de escritorio con el logotipo de Vim.

La mayoría de los usuarios que usan Vim aseguran que este editor incrementa su productividad comparándolo con editores más simples una vez se ha superado la curva de aprendizaje[23]​. Las combinaciones de teclas se pueden memorizar empleando métodos mnemotécnicos, pues guardan relación con palabras inglesas. La complejidad intrínseca de aprender las instrucciones se ve recompensada por la mejora en la eficiencia. Los usuarios expertos pueden, usando unas pocas combinaciones de teclas, copiar texto, formatearlo u ordenarlo de muchas formas diferentes, que sólo se pueden realizar en la mayoría de editores mediante operaciones considerablemente más complejas. Basta con un poco de experiencia para notar que las combinaciones de instrucciones que permiten ediciones de texto complejas se facilitan con Vim. Por otra parte las nuevas versiones permiten emplear el ratón e incorporan menús gráficos, que facilitan trabajar con Vim de una forma similar a la de otros editores. A menudo se instala como editor base por su pequeño tamaño y su rapidez en plataformas con recursos limitados basadas en UNIX[24]​.

Premios

Vim fue el ganador de los Readers' Choice Awards de Linux Journal en la categoría Favorite Text Editor desde 2001 a 2005 y obtuvo el Slashdot Bernie Award como el Mejor editor de texto Open Source así como en 1999 el Linuxworld Editors' Choice Award.[1]

Licencia

Vim se distribuye bajo una licencia Charityware (del inglés charity: caridad) compatible con Licencia pública general de GNU. y por sus siglas en inglés GPL (General Public License). Esto significa que Vim se rige por las mismas condiciones, pero anima a los usuarios a realizar donaciones para los niños huérfanos de Uganda a través de la organización ICCF Holland.[25]

Desarrollo y comunidad

Vim es desarrollado por Bram Moolenaar y muchos voluntarios. La página de ayuda de Vim[26]​ de la versión actual menciona a más de 50 colaboradores. Además hay un gran número de personas que han ayudado, no sólo en el desarrollo del software, sino también portándolo a otros sistemas operativos, probando nuevas versiones, reportando bugs, redactando documentación y traduciendo el sistema de ayuda. También contestan a las preguntas de los usuarios, adaptando Vim a otros proyectos y muchas otras cosas.

Todos los usuarios pueden aportar realizando scripts[27]​ o dando consejos.[28]​ Hay una lista de correo muy activa, útil tanto para nuevos usuarios como para los experimentados en la que se dan respuestas rápidas y competentes.

Influencia en otros programas

  • qutebrowser (Navegador web que se maneja por teclado).
  • VNote (Aplicación para tomar notas).
  • Kate (Posee un modo para editar en modo VI)
  • vimium (Extensión para Chrome para usar atajos estilo VIM)
  • ranger (Gestor de archivos estilo VIM)
  • Geany (Tiene un modo con atajos tipo VIM)
  • vit (Interfaz de TaskWarrior con accesos estilo VIM)
     

Diferencias con el editor Vi

Vim agrega funcionalidades muy importantes respecto al antiguo editor Vi, algunas de estas mejoras son[29]​:

  • La posibilidad de deshacer múltiples veces consecutivamente.
  • Permite trabajar con más de una ventana y archivo a la vez.
  • Se pueden usar las flechas del teclado durante el modo de Inserción.
  • Es capaz de grabar comandos (macros).
  • El modo visual permite seleccionar texto de manera fácil y potente.
  • Puede trabajar convenientemente con texto encerrado entre comillas, paréntesis, marcas html, etc.
  • Sistema de ayuda integrado.
  • Historial de comandos.
  • Expansión de comandos.
  • Desplazamiento horizontal

Huevo de Pascua

 
Huevo de Pascua en el editor de texto Vim.

El editor de texto Vim contiene al menos un huevo de Pascua como homenaje a la Guía del autoestopista galáctico del escritor Douglas Adams. La orden :help 42 produce el texto:

«What is the meaning of life, the universe and everything? 42. Douglas Adams, the only person who knew what this question really was about is now dead, unfortunately. So now you might wonder what the meaning of death is...»

¿Cuál es el sentido de la vida, el universo y todo? 42. Douglas Adams, la única persona que sabía de qué iba esta pregunta, ahora está muerta, desafortunadamente. Así que ahora te podrías preguntar cuál es el sentido de la muerte...»)[30]

Referencias

  1. Moolenaar, Bram. «Vim - VI IMproved» (en inglés). Consultado el 31 de octubre de 2012. 
  2. Moolenar, Bram. «The continuing strory of Vim». Moolenar.net (en inglés). Consultado el 22 de agosto de 2014. «There are still a number of small incompatibilities to be solved - you could call these bugs. Work on these continues, but it's very likely that Vim already contains less bugs for Vi commands than Vi itself.» 
  3. . vmunix.com. 29 de enero de 2001. Archivado desde el original el 24 de julio de 2011. Consultado el 30 de enero de 2013. 
  4. Melendez, Steven. «Why Vim, An '80s Text Editor, Is Still The UI Of Choice For Power Users». FastCompany. Consultado el 13 de mayo de 2020. 
  5. «Tips: Making Vim easy». Linux.com. 10 de abril de 2007. Consultado el 6 de mayo de 2020. 
  6. «Vim Awesome». vimawesome.com (en inglés). Consultado el 13 de mayo de 2020. 
  7. «Vim documentation: usr_41». vimhelp.org. 
  8. Klein, Benjamin. «The VimL Primer: Edit Like a Pro with Vim Plugins and Scripts by Benjamin Klein | The Pragmatic Bookshelf». Consultado el 13 de mayo de 2020. 
  9. «Vim documentation: usr_41». vimhelp.org. 
  10. Verdoolaege, Sven; Gerassimof, Matt. «Vim documentation: if_perl». Consultado el 13 de mayo de 2020. 
  11. Moore, Paul. «Vim documentation: if_pyth». Consultado el 13 de mayo de 2020. 
  12. Carvalho, Luis. «Vim documentation: if_lua». Consultado el 13 de mayo de 2020. 
  13. Maeda, Shugo. «Vim documentation: if_ruby». Consultado el 13 de mayo de 2020. 
  14. Wilken, Ingo. «Vim documentation: if_tcl». Consultado el 13 de mayo de 2020. 
  15. Khorev, Sergey. «Vim documentation: if_mzsch». Consultado el 13 de mayo de 2020. 
  16. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: intro». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  17. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: Normal mode». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  18. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: insert-mode». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  19. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: command-line». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  20. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: Visual-mode». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  21. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: Select-mode». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  22. Moolenaar, Bram (8 de diciembre de 2010). «Vim documentation: Ex-mode». vimdoc.sourceforge.net. Consultado el 13 de mayo de 2020. 
  23. «Why I use Vim - Pascal Precht's Blog». Why I use Vim - Pascal Precht's Blog (en inglés). Consultado el 4 de octubre de 2019. 
  24. Beyer, Casper (11 de octubre de 2017). «Why I Still Use Vim». Medium (en inglés). Consultado el 4 de octubre de 2019. 
  25. . Archivado desde el original el 21 de septiembre de 2019. Consultado el 30 de enero de 2013. 
  26. «:help credits'». Consultado el 30 de enero de 2013. 
  27. Página oficial de scripts de Vim
  28. Vim-Tips
  29. «Vim online doc: Vim FAQ». vimdoc.sourceforge.net. Consultado el 4 de octubre de 2019. 
  30. kcbhiw (24 de julio de 2001). «Vim (Vi Improved) Response to Meaning of Life». The Easter Egg Archive (en inglés). Consultado el 10 de mayo de 2020. 

Bibliografía

  • Oualline, Steve (2001). Vi IMproved – Vim (en inglés). Indianapolis: New Riders Publishing. ISBN 0-7357-1001-5. 
  • Wobst, Reinhard (2004). vim ge-packt (en alemán). Bonn: mitp-Verlag. ISBN 3-8266-1425-9. 

Enlaces externos

Lista de correo

<vim@vim.org> – véase también: Instrucciones de la Lista de Correo

Enlaces generales

  • Sitio web oficial de Vim (inglés)
  • Sitio web de Bram Moolenaar dedicada a Vim (inglés)
  • Recursos de Vim (Wiki, Tutorial, Ejemplos de vimrc, etc.) (inglés)
  • Configuración simple del editor (inglés)

Documentación

  • Referencia rápida (PDF,. 100 kB)
  • Ayuda de Vim en HTML (inglés)
  • Ayuda de Vim en HTML todas las versiones (inglés)
  • El libro de Steve Oualline (PDF, 4 MB, inglés)
  • Sieben Angewohnheiten für das effektive Editieren von Textdateien“ de Bram Moolenaar (PDF, ca. 140 kB, en alemán)
  • Plantilla ayuda rápida
  • Tutorial de vi
  •   Datos: Q131382
  •   Multimedia: Vim

inglés, improved, versión, mejorada, editor, texto, presente, todos, sistemas, unix, gvim, implementaciones, gráficas, información, generaltipo, programaeditor, código, fuentedesarrolladorbram, moolenaar, otroslanzamiento, inicial2, noviembre, 1991licencia, li. Vim del ingles Vi IMproved es una version mejorada del editor de texto Vi presente en todos los sistemas UNIX VimGvim una de las implementaciones graficas de Vim Informacion generalTipo de programaeditor de codigo fuenteDesarrolladorBram Moolenaar y otrosLanzamiento inicial2 de noviembre de 1991LicenciaVim License GNU compatible charitywareInformacion tecnicaProgramado enCVim scriptInterfaz grafica predeterminadaGTKVersionesUltima version estable8 2 info 13 de diciembre de 2019 1 ano 7 meses y 22 dias EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Su autor Bram Moolenaar presento la primera version en 1991 fecha desde la que ha experimentado muchas mejoras La principal caracteristica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones lo que los diferencia de la mayoria de editores comunes que tienen un solo modo en el que se introducen las ordenes mediante combinaciones de teclas o interfaces graficas Indice 1 Vi IMproved 1 1 Evolucion de Vim 2 Principales funcionalidades 2 1 Ayuda de Vim 2 2 Ventajas para programadores 2 3 Comparacion de ficheros 2 4 El lenguaje interpretado de Vim 2 4 1 Ejemplo 3 Modos 3 1 Modo comandos 3 2 Modo insercion 3 3 Modo linea de ordenes 3 4 Modo visual 3 5 Modo seleccion 3 6 Modo Ex 4 gVim 5 Sistemas operativos 6 Pros y contras 6 1 Criticas 6 2 Ventajas 7 Premios 8 Licencia 9 Desarrollo y comunidad 10 Influencia en otros programas 11 Diferencias con el editor Vi 12 Huevo de Pascua 13 Referencias 13 1 Bibliografia 14 Enlaces externos 14 1 Lista de correo 14 2 Enlaces generales 14 3 DocumentacionVi IMproved EditarVim como su antecesor Vi se utiliza desde un Terminal en modo texto Se controla por completo mediante el teclado Esto es en parte a causa de que Vi fue desarrollado a mediados de la decada de 1970 cuando los terminales se comunicaban con un ordenador principal host mediante una conexion serie que no era muy rapida 20 Kbps Las limitaciones de los terminales de la epoca dieron lugar al concepto de diferentes modos idea que ha resultado muy provechosa desde entonces Vim es casi 100 compatible con Vi 1 2 aunque tiene muchas mejoras e incluso cuenta con versiones dotadas de interfaz grafica y menus que pueden operarse mediante el raton gvim o kvim asi como una version simplificada evim que se comporta como un editor sin diferentes modos Hay versiones de Vim disponibles para muchos sistemas operativos y se puede encontrar en casi cualquier sistema GNU Linux y en todos los sistemas BSD donde en muchas ocasiones se puede ejecutar a traves de la orden vi que invoca a Vim a traves de un enlace simbolico o un alias Cuando se inicia vim lo hace en modo comando y muestra la version por pantalla Evolucion de Vim Editar Figura 1 Captura de gVim una de las implementaciones de Vim editando este mismo articulo y emacs simultaneamente en dos ventanas diferentes Cuando Bram Moolenar compro una computadora Amiga a finales de la decada de 1980 queria seguir usando el editor de Unix al que se habia acostumbrado pero los clones de Vi disponibles para Amiga no le convencian Asi que en 1988 partio del clon de Vi Stevie 1 0 como base para empezar a desarrollar Vim En un principio le llamo Vi IMitation imitacion de Vi pues al principio su objetivo principal era emular las funcionalidades de que Vi disponia en su nuevo sistema En 1991 aparecio la version 1 14 en Fred Fish disk 591 una coleccion de software libre para Amiga 3 La version 1 22 fue la primera que aparecio con versiones para Unix y MS DOS Por aquellos tiempos el acronimo que le daba nombre ya habia cambiado a Vi IMproved Figura 2 Vim con las siguientes caracteristicas Numeracion de lineas Unicode resaltado de sintaxis y plegado de texto En los anos siguientes Vim experimento grandes mejoras Se dio un paso importante al incorporar ventanas en la version 3 0 1994 Figura 1 Con Vi se pueden tener varios ficheros abiertos en la misma sesion pero solo se puede ver uno a la vez las ventanas de Vim permiten verlos simultaneamente Desde la version 4 0 1996 esta disponible una interfaz grafica de usuario GUI en ingles que empezo a desarrollar Robert Webb Desde la version 5 0 1998 Vim dispone de resaltado de sintaxis Figura 2 Figura 3 Nuevas caracteristicas de Vim 7 correccion ortografica y complecion automatica de texto Principales funcionalidades EditarCorrector ortografico integrado Completador automatico de texto Navegacion por pestanas Ventanas multiples que dividen el area de edicion horizontal o verticalmente Resaltado de sintaxis dependiente del lenguaje de programacion o de etiquetas utilizado ordenes deshacer y rehacer Comprension de mas de 200 sintaxis diferentes Lenguaje de scripting para programar extensiones Completado de ordenes palabras y nombres de ficheros Compresion y descompresion de ficheros que posibilita editar ficheros comprimidos Reconocimiento de formatos de fichero y conversion entre los mismos Historial de ordenes ejecutadas Grabacion y reproduccion de macros Guardado de la configuracion entre sesiones Plegado automatico y manual de codigo Interfaz grafica opcional Altamente configurable y personalizable Casi 100 compatible con vi pero sin muchos de sus defectosAyuda de Vim Editar Vim dispone de una excelente documentacion que se rige por la maxima Una caracteristica no documentada es una caracteristica inutil La documentacion en formato texto es muy amplia y facil de entender El usuario accede mediante una busqueda a la descripcion de varias funcionalidades que pueden solucionar su problema A traves del resaltado de la sintaxis propia de la ayuda de Vim se resaltan las palabras clave Figura 3 Mediante combinaciones de teclas ejecutadas cuando el cursor esta sobre una palabra clave se puede navegar por la ayuda volviendo atras en caso necesario En la version grafica tambien se puede utilizar el raton para este proposito La orden helpgrep es importante pues permite al usuario buscar una palabra en los textos de la ayuda sin que sea necesario que se trate de una palabra clave Figura 4 Completan la ayuda una version en HTML disponible para su consulta en internet y una extensa lista de preguntas frecuentes FAQ Ventajas para programadores Editar Vim es muy personalizable y extensible lo que lo hace muy atractivo para usuarios que demandan gran cantidad de control y flexibilidad en la edicion de texto 4 La entrada de texto se facilita con una serie de funciones disenadas para incrementar la eficiencia del teclado Los usuarios pueden ejecutar comandos complejos como el mapeado de teclas que puede personalizarse y extenderse La caracteristica de grabacion permite la creacion de macros para automatizar secuencias de pulsaciones y llamar funciones internas o definidas por el usuario Las abreviaturas similares a las macros y los mapeos facilitan la expansion de cadenas de texto cortas hacia largas y pueden usarse tambien para corregir errores Vim tambien tiene un modo facil para los usuarios que buscan un editor sencillo 5 Hay muchas extensiones plugins disponibles 6 que anaden o extienden funcionalidades como comprobacion de sintaxis y errores semanticos integracion con Git mostrar colores en CSS Estos scripts complejos normalmente estan escritos en el lenguaje interno vimscript conocido tambien como VimL 7 pero tambien pueden escribirse en otros lenguajes Vim es un editor hecho por programadores para programadores Para facilitar la programacion Vim dispone de un modo editar compilar corregir De la misma forma que los entornos de desarrollo integrados puede editar el codigo fuente ademas llamar a un compilador externo e interpretar sus resultados Si hay errores de compilacion estos se muestran en una ventana Los mensajes de error dirigen al usuario a la zona en la que se han encontrado para poder asi corregirlos Entonces vuelve a empezar el ciclo editar compilar corregir y si es necesario corregir nuevos errores El trabajo del programador tambien se ve facilitado por el resaltado de sintaxis y la funcionalidad de plegado de codigo vease help quickfix Comparacion de ficheros Editar Comparar dos o mas versiones de un fichero es una tarea frecuente para algunos usuarios Vim ofrece una solucion simple las dos versiones diferentes del fichero se muestran en dos ventanas contiguas en las que se resaltan las diferencias Figura 5 De esta forma se pueden ver coloreadas las diferencias intercaladas en las versiones Por ejemplo las eliminaciones aparecen en rojo y las nuevas inserciones en violeta Hay ordenes que permiten situar el cursor en las diferencias siguientes y anteriores c y c ademas de volcar estas diferencias hacia el otro archivo do y dp El lenguaje interpretado de Vim Editar Vim dispone de un lenguaje interpretado o de scripting para programar nuevas funcionalidades mediante el que se pueden automatizar operaciones particulares demasiado complejas para realizarlas con una macro Los scripts pueden ser leidos e interpretados mediante la orden source El lenguaje se llama vimscript o VimL 8 9 Las macros de Vim pueden contener una secuencia de comandos del modo normal pero tambien pueden invocar comandos exteriores o funciones escritas en vimscript para tareas mas complejas Casi todas las extensiones plugins de las funciones troncales de Vim estan escritas en vimscript pero tambien pueden usar otros lenguajes como Perl 10 Python 11 Lua 12 Ruby 13 Tcl 14 o Racket 15 Estas extensiones pueden instalarse manualmente o mediante un gestor de extensiones como Vundle Pathogen o Vim Plug Los ficheros de vimscript se guardan como texto plano similar a cualquier otro codigo y la extension suele ser vim Una excepcion a eso es la del fichero de configuracion de Vim que tiene la extension vimrc Ejemplo Editar This is the Hello World program in Vim script echo Hello world This is a simple while loop in Vim script let i 1 while i lt 5 echo count is i let i 1 endwhile unlet iModos EditarVim es un editor modal lo que significa que se puede trabajar en diferentes modos para realizar una tarea determinada Para ver en que modo se encuentra Vim se debe de tener activada la opcion showmode A continuacion se describen los seis modos de Vim 16 Los tres primeros son los modos del vi original Los cinco modos adicionales no deben entenderse por separado sino en combinacion con el modo base Vease tambien la ayuda de Vim a este respecto help vim modes Modo comandos Editar Vim empieza en modo comando tambien conocido como modo normal En este modo se pueden emplear combinaciones de teclas para por ejemplo copiar lineas y trabajar en el formato del texto Este es el modo central desde el que se cambia a los otros modos 16 Si no se sabe que se esta haciendo pulsando dos veces la tecla Escape siempre se puede volver al modo normal Si ya se estaba en modo normal y tanto la configuracion de Vim como la del terminal lo permiten Vim emite un pitido 17 Modo insercion Editar En modo insercion cuando se pulsan las teclas se edita el texto como en otros editores Se puede cambiar del modo comandos al modo insercion pulsando la tecla i Hay un gran abanico de comandos para pasar al modo insercion que difieren sustancialmente pues permiten por ejemplo editar al final de la linea en un punto concreto del texto editar borrando una palabra entre muchas otras 18 Un usuario experto puede sacar un gran provecho de la existencia de esta variedad de ordenes En el modo insercion todas las teclas tienen alguna funcion ademas de la mera insercion que se activan pulsando simultaneamente las teclas Tecla control o Mayusculas La tecla Esc es muy importante en modo insercion pues permite cambiar de modo insercion a modo comandos Cambiando al modo comandos para realizar ciertas tareas se incrementa en gran medida la eficiencia en la edicion y se puede aprovechar la potencia completa de Vim Modo linea de ordenes Editar Vim version 7 4 1689 corriendo en GNU Linux Ubuntu 16 04 A este modo se accede pulsando la tecla dos puntos Tras los dos puntos se pueden introducir ordenes complejas como por ejemplo buscar y reemplazar con expresiones regulares Pulsando la tecla Esc se puede volver al modo ordenes Las busquedas se pueden realizar con la orden hacia adelante y hacia atras Tambien se pueden filtrar lineas mediante 19 Modo visual Editar Este modo es una mejora respecto a vi Mediante unas ciertas combinaciones de teclas en combinacion con las teclas de movimiento del cursor se puede marcar un area de texto ya sea un grupo de lineas o un bloque Una vez se tiene el texto marcado se pueden usar ordenes del modo comandos para manipularlo Las operaciones que se pueden realizar en este modo son mas simples que las del modo comandos 20 Modo seleccion Editar Este modo empieza como el modo visual pues hay que seleccionar un bloque de texto Tras la seleccion se puede cambiar al modo seleccion mediante Control G Una vez en el modo si se pulsa una tecla imprimible el texto seleccionado se borra se termina el modo seleccion y aparece el simbolo correspondiente a la tecla pulsada La seleccion se puede extender pulsando mayusculas y las teclas de flechas el comportamiento habitual en los programas de Microsoft Windows Este modo se puede finalizar pulsando la tecla Escape 21 Modo Ex Editar Este modo se asemeja al modo linea de ordenes con la diferencia de que tras la ejecucion de una orden no se vuelve al modo comandos Se entra en este modo pulsando Q y se termina con vi En este modo Vim imita al editor de UNIX ex que manipulaba el texto linea a linea debido a las limitaciones de la epoca en lugar de editar toda la pagina 22 gVim Editar Captura de gVim una de las implementaciones de Vim editando un articulo de Wikipedia gVim es una version grafica del editor de textos Vim gVim funciona con las librerias gtk Mantiene las funcionalidades del Vim y anade menus y un entorno grafico funciona fuera de la consola terminal Su principal ventaja para los nuevos usuarios los menus desplegables implican una curva de aprendizaje algo menos dura Su principal desventaja es que no esta instalado por defecto en todos los sistemas por ejemplo no esta en los servidores sin entorno grafico Sistemas operativos EditarUna virtud de Vim es que se puede ejecutar en muchos sistemas operativos Esto es importante para usuarios como por ejemplo administradores de sistemas que deben trabajar en muchas plataformas distintas Se puede ejecutar en los siguientes sistemas operativos AmigaOS Atari MiNT BeOS DOS GNU Linux Mac OS NextStep OS 2 OSF RISC OS IRIX Unix muchas variedades como por ejemplo BSD AIX y HP UX VMS y Windows 3 x 95 98 ME 2000 NT XP Pros y contras EditarCriticas Editar Las criticas se aplican a Vi y Vim por igual pues estan basados en el mismo concepto y sus modos de operacion son completamente diferentes de la mayoria los editores convencionales actuales Sobre todo conciernen a la separacion de las operaciones en distintos modos y la necesidad de aprender numerosas combinaciones de teclas sin las que no es posible trabajar de forma eficiente Actualmente la falta de empleo del raton como complemento extra a las combinaciones de teclas se considera como un anacronismo pues puede llevar al usuario ocasional a la frustracion Solo tras un aprendizaje prolongado se consigue aumentar la productividad Ventajas Editar Fondo de escritorio con el logotipo de Vim La mayoria de los usuarios que usan Vim aseguran que este editor incrementa su productividad comparandolo con editores mas simples una vez se ha superado la curva de aprendizaje 23 Las combinaciones de teclas se pueden memorizar empleando metodos mnemotecnicos pues guardan relacion con palabras inglesas La complejidad intrinseca de aprender las instrucciones se ve recompensada por la mejora en la eficiencia Los usuarios expertos pueden usando unas pocas combinaciones de teclas copiar texto formatearlo u ordenarlo de muchas formas diferentes que solo se pueden realizar en la mayoria de editores mediante operaciones considerablemente mas complejas Basta con un poco de experiencia para notar que las combinaciones de instrucciones que permiten ediciones de texto complejas se facilitan con Vim Por otra parte las nuevas versiones permiten emplear el raton e incorporan menus graficos que facilitan trabajar con Vim de una forma similar a la de otros editores A menudo se instala como editor base por su pequeno tamano y su rapidez en plataformas con recursos limitados basadas en UNIX 24 Premios EditarVim fue el ganador de los Readers Choice Awards de Linux Journal en la categoria Favorite Text Editor desde 2001 a 2005 y obtuvo el Slashdot Bernie Award como el Mejor editor de texto Open Source asi como en 1999 el Linuxworld Editors Choice Award 1 Licencia EditarVim se distribuye bajo una licencia Charityware del ingles charity caridad compatible con Licencia publica general de GNU y por sus siglas en ingles GPL General Public License Esto significa que Vim se rige por las mismas condiciones pero anima a los usuarios a realizar donaciones para los ninos huerfanos de Uganda a traves de la organizacion ICCF Holland 25 Desarrollo y comunidad EditarVim es desarrollado por Bram Moolenaar y muchos voluntarios La pagina de ayuda de Vim 26 de la version actual menciona a mas de 50 colaboradores Ademas hay un gran numero de personas que han ayudado no solo en el desarrollo del software sino tambien portandolo a otros sistemas operativos probando nuevas versiones reportando bugs redactando documentacion y traduciendo el sistema de ayuda Tambien contestan a las preguntas de los usuarios adaptando Vim a otros proyectos y muchas otras cosas Todos los usuarios pueden aportar realizando scripts 27 o dando consejos 28 Hay una lista de correo muy activa util tanto para nuevos usuarios como para los experimentados en la que se dan respuestas rapidas y competentes Influencia en otros programas Editarqutebrowser Navegador web que se maneja por teclado VNote Aplicacion para tomar notas Kate Posee un modo para editar en modo VI vimium Extension para Chrome para usar atajos estilo VIM ranger Gestor de archivos estilo VIM Geany Tiene un modo con atajos tipo VIM vit Interfaz de TaskWarrior con accesos estilo VIM Diferencias con el editor Vi EditarVim agrega funcionalidades muy importantes respecto al antiguo editor Vi algunas de estas mejoras son 29 La posibilidad de deshacer multiples veces consecutivamente Permite trabajar con mas de una ventana y archivo a la vez Se pueden usar las flechas del teclado durante el modo de Insercion Es capaz de grabar comandos macros El modo visual permite seleccionar texto de manera facil y potente Puede trabajar convenientemente con texto encerrado entre comillas parentesis marcas html etc Sistema de ayuda integrado Historial de comandos Expansion de comandos Desplazamiento horizontalHuevo de Pascua Editar Huevo de Pascua en el editor de texto Vim El editor de texto Vim contiene al menos un huevo de Pascua como homenaje a la Guia del autoestopista galactico del escritor Douglas Adams La orden help 42 produce el texto What is the meaning of life the universe and everything 42 Douglas Adams the only person who knew what this question really was about is now dead unfortunately So now you might wonder what the meaning of death is Cual es el sentido de la vida el universo y todo 42 Douglas Adams la unica persona que sabia de que iba esta pregunta ahora esta muerta desafortunadamente Asi que ahora te podrias preguntar cual es el sentido de la muerte 30 Referencias Editar a b Moolenaar Bram Vim VI IMproved en ingles Consultado el 31 de octubre de 2012 Moolenar Bram The continuing strory of Vim Moolenar net en ingles Consultado el 22 de agosto de 2014 There are still a number of small incompatibilities to be solved you could call these bugs Work on these continues but it s very likely that Vim already contains less bugs for Vi commands than Vi itself Vim History Release Dates of User Versions and Developer Versions vmunix com 29 de enero de 2001 Archivado desde el original el 24 de julio de 2011 Consultado el 30 de enero de 2013 Melendez Steven Why Vim An 80s Text Editor Is Still The UI Of Choice For Power Users FastCompany Consultado el 13 de mayo de 2020 Tips Making Vim easy Linux com 10 de abril de 2007 Consultado el 6 de mayo de 2020 Vim Awesome vimawesome com en ingles Consultado el 13 de mayo de 2020 Vim documentation usr 41 vimhelp org Klein Benjamin The VimL Primer Edit Like a Pro with Vim Plugins and Scripts by Benjamin Klein The Pragmatic Bookshelf Consultado el 13 de mayo de 2020 Vim documentation usr 41 vimhelp org Verdoolaege Sven Gerassimof Matt Vim documentation if perl Consultado el 13 de mayo de 2020 Moore Paul Vim documentation if pyth Consultado el 13 de mayo de 2020 Carvalho Luis Vim documentation if lua Consultado el 13 de mayo de 2020 Maeda Shugo Vim documentation if ruby Consultado el 13 de mayo de 2020 Wilken Ingo Vim documentation if tcl Consultado el 13 de mayo de 2020 Khorev Sergey Vim documentation if mzsch Consultado el 13 de mayo de 2020 a b Moolenaar Bram 8 de diciembre de 2010 Vim documentation intro vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation Normal mode vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation insert mode vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation command line vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation Visual mode vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation Select mode vimdoc sourceforge net Consultado el 13 de mayo de 2020 Moolenaar Bram 8 de diciembre de 2010 Vim documentation Ex mode vimdoc sourceforge net Consultado el 13 de mayo de 2020 Why I use Vim Pascal Precht s Blog Why I use Vim Pascal Precht s Blog en ingles Consultado el 4 de octubre de 2019 Beyer Casper 11 de octubre de 2017 Why I Still Use Vim Medium en ingles Consultado el 4 de octubre de 2019 ICCF Holland helping children in Uganda Archivado desde el original el 21 de septiembre de 2019 Consultado el 30 de enero de 2013 help credits Consultado el 30 de enero de 2013 Pagina oficial de scripts de Vim Vim Tips Vim online doc Vim FAQ vimdoc sourceforge net Consultado el 4 de octubre de 2019 kcbhiw 24 de julio de 2001 Vim Vi Improved Response to Meaning of Life The Easter Egg Archive en ingles Consultado el 10 de mayo de 2020 Bibliografia Editar Oualline Steve 2001 Vi IMproved Vim en ingles Indianapolis New Riders Publishing ISBN 0 7357 1001 5 Wobst Reinhard 2004 vim ge packt en aleman Bonn mitp Verlag ISBN 3 8266 1425 9 Enlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre Vim Lista de correo Editar lt vim vim org gt vease tambien Instrucciones de la Lista de Correo Enlaces generales Editar Sitio web oficial de Vim ingles Sitio web de Bram Moolenaar dedicada a Vim ingles Recursos de Vim Wiki Tutorial Ejemplos de vimrc etc ingles Configuracion simple del editor ingles Documentacion Editar Referencia rapida PDF 100 kB Ayuda de Vim en HTML ingles Ayuda de Vim en HTML todas las versiones ingles El libro de Steve Oualline PDF 4 MB ingles Sieben Angewohnheiten fur das effektive Editieren von Textdateien de Bram Moolenaar PDF ca 140 kB en aleman Plantilla ayuda rapida Tutorial de vi Datos Q131382 Multimedia VimObtenido de https es wikipedia org w index php title Vim amp oldid 137349635, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos