Vim ( / v ɪ m /ⓘ ; [ 5 ] abreviatura deviimproven) es uneditor de textogratuito y de código abierto . Vim proporciona tanto una interfaz de usuario de pantalla de terminal como unainterfaz gráfica de usuario(llamada gvim).
La documentación de Vim lo describe como una versión mejorada del antiguo editor de texto vi (aunque está construido a partir de un código fuente distinto ). En la información de lanzamiento, el autor originalmente dio a entender que Vim era una abreviatura de "Vi IMitation", pero más tarde, la expansión se cambió a "Vi IMproved" porque, como describió el autor, la funcionalidad había aumentado más allá de la de un clon de vi. Algunas fuentes indican que el cambio ocurrió con la versión 2.0, pero información contradictoria (incluida la del autor) sugiere que el cambio ocurrió tan pronto como en la versión 2.0 y tan tarde como en la versión 3.0. [ 6 ]
Desde su lanzamiento original para Amiga , Vim se ha portado a muchos entornos, incluyendo Atari MiNT , BeOS , MS-DOS , Windows (desde Windows NT 3.1) , OS/2 , OS/390 , MorphOS , OpenVMS , QNX , RISC OS , Linux , BSD y Mac OS clásico . [ 7 ] Vim también viene incluido con macOS de Apple . [ 8 ] Existen versiones independientes de Vim para Android [ 9 ] [ 10 ] e iOS . [ 11 ]
Vim ha sido y sigue siendo popular para el desarrollo de software . En 2018, fue elegido el editor más popular entre los lectores de Linux Journal . [ 12 ] En 2015, la encuesta de desarrolladores de Stack Overflow lo posicionó como el tercer editor de texto más popular, [ 13 ] y, en 2019, como el quinto entorno de desarrollo más popular. [ 14 ]
Historia
En 1988, Bram Moolenaar comenzó a trabajar en lo que se convertiría en Vim. Utilizó el código fuente del editor Stevie , adaptado a Amiga (por Tony Andrews y otros), como punto de partida. [ 15 ] [ 16 ] La versión 1.14 (completada el 2 de noviembre de 1991) se convirtió en la primera versión pública. Se distribuyó a través de Fish Disk #591 en enero de 1992. [ 15 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ]
Licencia
Vim se publica bajo la licencia Vim , que incluye algunas cláusulas de software benéfico que animan a los usuarios que disfrutan del software a considerar la posibilidad de donar a niños en Uganda . [ 4 ] La licencia Vim es compatible con la Licencia Pública General de GNU mediante una cláusula especial que permite la distribución de copias modificadas bajo la versión 2.0 o posterior de la GNU GPL . [ 4 ]
Experiencia de usuario

Interfaz de usuario de texto
Partiendo de la funcionalidad básica de vi, Vim ofrece una experiencia de usuario que integra la entrada de comandos mediante teclado con una experiencia de edición a pantalla completa . Vim permite a un usuario con un teclado típico mantener los dedos en la fila principal , lo que puede ser una ventaja para la mecanografía táctil . [ 21 ]
Interfaz gráfica de usuario
Mediante su interfaz gráfica de usuario (denominada gVim), ofrece una experiencia más moderna que incluye menús , barras de herramientas e iconos . Su funcionalidad completa se sigue ofreciendo a través de la línea de comandos .
Ayuda
Vim tiene una función de ayuda integrada a la que se puede acceder mediante el :helpcomando.
El tutorial de Vim para principiantes, llamado vimtutor, generalmente se instala junto con Vim, pero es un ejecutable independiente y se puede ejecutar por separado. [ 22 ]
El manual de usuario de Vim detalla las características de Vim y se puede leer desde dentro de Vim o encontrar en línea. [ 23 ] [ 24 ]
Registros
Vim cuenta con varias entradas de memoria especiales llamadas registros (que no deben confundirse con los registros de hardware o del procesador ). Al cortar, eliminar, copiar o pegar texto, el usuario puede optar por almacenar el texto manipulado en un registro. Existen 36 registros de propósito general asociados con letras y números ([a-z0-9]) y una serie de registros especiales que contienen valores especiales (nombre de archivo actual, último comando, etc.) o que cumplen una función específica. [ 25 ]
Modos

Al igual que vi, Vim admite múltiples modos de edición. Dependiendo del modo, los caracteres introducidos se procesan como entrada de comando o se insertan como texto. Vim tiene 14 modos (7 modos básicos y 7 variantes): [ 26 ]
- Normal : Para comandos del editor. Generalmente, este es el modo predeterminado y ESCentra en este modo.
- Insertar : Para editar contenido como en un editor moderno. [ 27 ] [ 21 ] : 12
- Visual : Para seleccionar áreas de texto. Se pueden ejecutar comandos en el área seleccionada: mover, editar, filtrar mediante comandos integrados o externos, etc.
- Visualización por líneas : Selecciona una o más líneas completas.
- Visualización por bloques : Selecciona un bloque de texto rectangular que abarca una o más líneas.
- Seleccionar : Similar al modo visual, pero los comandos no se interpretan. En su lugar, el texto resaltado se reemplaza directamente por la entrada del teclado. Este comportamiento imita el modo de selección de los editores en plataformas Windows.
- Línea de comandos (Cmdline) : Proporciona una única línea de entrada en la parte inferior de la terminal. Los comandos (que comienzan con ) y algunas otras teclas para acciones específicas (incluida la búsqueda de patrones y el comando de filtro) activan este modo. Al finalizar el comando, Vim vuelve al modo anterior. [ 27 ] [ 21 ] : 12:
- Ejemplo : Acepta una secuencia de comandos.
- Terminal-Job : Interactuar con un trabajo en una ventana de terminal.
Personalización
Vim es personalizable y extensible, lo que lo hace atractivo para quienes buscan control y flexibilidad en un entorno de edición de texto. [ 28 ] Los usuarios pueden ejecutar comandos complejos con combinaciones de teclas , que se pueden personalizar y extender. La función de grabación permite crear macros para automatizar secuencias de pulsaciones de teclas y llamar a funciones y asignaciones internas o definidas por el usuario. Las abreviaturas, al igual que las macros y las asignaciones de teclas, facilitan la expansión de cadenas cortas de texto en otras más largas y también se pueden usar para corregir errores. Vim también cuenta con un modo fácil para usuarios que desean una experiencia de usuario más sencilla. [ 29 ]
Hay muchos complementos disponibles que extienden o agregan nueva funcionalidad a Vim. Estos complementos generalmente están escritos en el lenguaje de scripting interno de Vim, vimscript (también conocido como VimL), [ 30 ] pero también pueden estar escritos en otros lenguajes.
Existen proyectos que agrupan scripts complejos y personalizaciones, con el objetivo de convertir Vim en una herramienta para tareas específicas o de modificar significativamente su funcionamiento. Algunos ejemplos son Cream, que hace que Vim se comporte como un editor de texto en 3D, y VimOutliner, que proporciona un esquema de código cómodo para usuarios de sistemas tipo Unix.
mejoras
Vim ofrece muchas más funciones que las que ofrece vi. [ 31 ] Algunas de las mejoras de Vim incluyen funciones de autocompletado , comparación y fusión de archivos (conocida como vimdiff), un sistema de ayuda integrado completo, expresiones regulares extendidas , lenguajes de scripting (tanto nativos como a través de intérpretes de scripting alternativos como Perl, Python, Ruby, Tcl, etc.), incluyendo soporte para complementos , una interfaz gráfica de usuario (gvim), características limitadas similares a un entorno de desarrollo integrado , interacción con el ratón (tanto con como sin la GUI), plegado , edición de archivos comprimidos o archivados en formato gzip , bzip2 , bzip3 [ 32 ] , zip y tar y archivos a través de protocolos de red como SSH , FTP y HTTP , preservación del estado de la sesión, corrección ortográfica , ventanas divididas (horizontal y vertical) y con pestañas, soporte para Unicode y otros idiomas, resaltado de sintaxis , historiales de comandos, búsqueda y posición del cursor entre sesiones , historial de deshacer /rehacer de múltiples niveles y ramificados que puede persistir entre sesiones de edición y modo visual.
Vim guarda continuamente información en un archivo [ a ] que permite recuperarse de un fallo. Generalmente, la extensión del archivo es ".swp", pero si el usuario intenta abrir un archivo cuando el archivo de recuperación ya existe, Vim le notifica la situación. Si el usuario confirma que desea continuar, Vim utiliza una extensión diferente para crear un nombre para un archivo que no existe. Las extensiones siguen la siguiente progresión: ".swo", ".swn", ".swm", etc. [ 33 ] [ 34 ] Esta función se puede desactivar. [ 35 ]
Compatibilidad
Vim ofrece un modo de compatibilidad con vi que limita su funcionalidad para que sea similar a la de vi. Sin embargo, incluso en modo de compatibilidad, Vim no es totalmente compatible con vi según lo especificado por POSIX . [ 36 ] Por ejemplo, Vim no admite el modo abierto de vi. Los desarrolladores de Vim afirman que es "muy compatible con Vi". [ 37 ]
Script de Vim
Vim script (también llamado Vimscript o VimL ) [ 38 ] es el lenguaje de scripting integrado en Vim. [ 39 ] Basado en el lenguaje del editor ex del editor vi original, las primeras versiones de Vim agregaron comandos para el flujo de control y definiciones de funciones. Desde la versión 7, Vim script también admite tipos de datos más avanzados como listas y diccionarios y una forma simple de programación orientada a objetos . Las funciones integradas como map()y filter()permiten una forma básica de programación funcional , y Vim script tiene lambda desde la versión 8.0. Vim script está escrito principalmente en un estilo de programación imperativo .
Versión 9.0 añadidaVim9 script , un nuevo lenguaje de script más cercano a los lenguajes de uso común. [ 40 ] [ 41 ]
Las macros de Vim pueden contener una secuencia de comandos en modo normal , pero también pueden invocar comandos ex o funciones escritas en Vim script para tareas más complejas. Casi todas las extensiones (llamadas plugins o, más comúnmente, scripts) de la funcionalidad principal de Vim están escritas en Vim script, pero los plugins también pueden utilizar otros lenguajes como Perl , [ 42 ] Python , [ 43 ] Lua , [ 44 ] Ruby , [ 45 ] Tcl , [ 46 ] o Racket . [ 47 ] Estos plugins se pueden instalar manualmente o a través de un gestor de plugins como Vundle, Pathogen o Vim-Plug.
Los archivos de script de Vim se almacenan como texto plano, de forma similar a otros códigos, y la extensión del nombre de archivo suele ser .vim. Una excepción notable a esto es el archivo de configuración de Vim, .vimrc.
Ejemplos
"Este es el programa Hola Mundo en Vim script. echo "¡Hola, mundo!""Este es un bucle while simple en Vim script. let i = 1 while i < 5 echo "el contador es" i let i += 1 endwhile unlet iVersiones
Véase también
- Aprendiendo a usar los editores vi y Vim : libro tutorial de Arnold Robbins, Elbert Hannah y Linda Lamb.
- Guerra de editores : la rivalidad entre los editores de texto Emacs y vi.
- Lista de editores de texto
- Comparación de editores de texto
- Vimperator – Extensión para Firefox
- Neovim – Bifurcación del editor de texto Vim
Notas
- ↑ El archivo de recuperación tras un fallo se denomina archivo de intercambio, aunque el nombre implica paginación de memoria , que es una tecnología diferente.
Referencias
- ↑ Christian Brabandt (14 de febrero de 2026). "¡Vim 9.2 ha sido lanzado!" . Consultado el 14 de febrero de 2026 .
- ↑ "vim/LICENSE" . github.com . 20 de octubre de 2021. Archivado del original el 16 de agosto de 2021. Consultado el 5 de julio de 2021 .
- ↑ "Licencia de Vim" . spdx.org . Archivado del original el 29 de julio de 2021. Consultado el 5 de julio de 2021 .
- 1 2 3 "Vim: uganda.txt" . vimhelp.org . Archivado del original el 13 de enero de 2019 . Recuperado el 13 de enero de 2019 .
- ↑ Documentación de Vim: introducción. Archivado el 13 de enero de 2019 en Wayback Machine : "Vim se pronuncia como una sola palabra, como Jim, no vi-ai-em. Se escribe con mayúscula, ya que es un nombre, de nuevo como Jim."
- 1 2 3 "VILE (Vi Like Emacs) – Preguntas frecuentes (FAQ)" . Archivado del original el 31 de agosto de 2019. Consultado el 7 de septiembre de 2019 .
- ↑ "
:help sys-file-list" "Vim Online: Descargas" . Archivado del original el 8 de enero de 2007. Consultado el 7 de enero de 2007 . - ↑ "Página del manual de Mac OS X para vim(1)" . developer.apple.com . Apple Inc. Archivado del original el 9 de junio de 2012. Consultado el 12 de enero de 2010 .
- ↑ "VimTouch, el desarrollo de esta aplicación se ha estancado" . GitHub . Archivado del original el 29 de diciembre de 2015. Consultado el 9 de agosto de 2015 .
- ↑ "DroidVim, en desarrollo activo" . GitHub . Archivado del original el 27 de junio de 2018. Consultado el 5 de marzo de 2017 .
- ↑ "Vim – Applidium, agencia móvil en París" . Archivado del original el 20 de enero de 2012. Consultado el 11 de agosto de 2015 .
- ↑ "Mejor editor | Linux Journal" . www.linuxjournal.com . Consultado el 20 de abril de 2023 .
- ↑ "Encuesta a desarrolladores de Stack Overflow 2015 § IV. Editor de texto" . Stack Overflow. Archivado del original el 4 de mayo de 2019. Recuperado el 25 de julio de 2016 .
- ↑ "Resultados de la encuesta a desarrolladores de Stack Overflow 2019" . Stack Overflow § VII. Entornos de desarrollo. Archivado del original el 7 de marzo de 2020. Consultado el 20 de julio de 2019 .
- 1 2 3 Robbins, Arnold; Hannah, Elbert (17 de noviembre de 2021). Aprendiendo a usar los editores Vi y Vim . O'Reilly Media . pág. 159. ISBN 978-1-4920-7877-7Consultado el 30 de noviembre de 2025 .
- ↑
- 1 2 3 Moolenaar, Bram (13 de diciembre de 2016). "Presentación de Vim 25 por Bram Moolenaar el 2 de noviembre de 2016" . Recuperado el 30 de noviembre de 2025.
Moolenaar: Fred Fish Disk 591 se publicó en el '92, en realidad, en enero del '92, entonces ¿por qué el 2 de noviembre? Bueno, eso es porque si miras el binario, cuándo se compiló (y es como el certificado de nacimiento de Vim), y puedes ver que en realidad es el 2 de noviembre. Así que de ahí viene.
- ^ Moolenaar , Bram (15 de enero de 2002 ) . "Vim, un editor de texto de código abierto" . Archivado desde el original el 7 de agosto de 2011 . Consultado el 24 de octubre de 2005 .
- ↑ "Textfiles.com" . Archivado del original el 16 de julio de 2011. Consultado el 2 de octubre de 2009 .
- 1 2 Moolenaar, Bram (10 de octubre de 2000). "La historia continua de Vim" (PDF) . moolenaar.net . Archivado (PDF) del original el 18 de abril de 2012. Recuperado el 19 de septiembre de 2011 .
- 1 2 3 Lamb, Linda; Robbins, Arnold (1998). Aprendiendo a usar el editor Vi . O'Reilly Media, Inc. pág. 305. ISBN 9781565924260.
- ↑ Moolenaar, Bram (3 de noviembre de 2010). "Documentación de Vim: usr_01" . Archivado del original el 29 de julio de 2020. Recuperado el 28 de agosto de 2019 .
- ↑ Archivos de ayuda de Vim archivados el 13 de enero de 2019 en Wayback Machine en vimhelp.org
- ↑ Oualline, Steve (abril de 2001). Vi IMproved (VIM) (PDF) . New Riders Publishers. ISBN 0-7357-1001-5. Archivado (PDF) del original el 19 de noviembre de 2021. Recuperado el 11 de octubre de 2021 .
- ↑ McDonnell, Mark (2014). Pro vim . [Berkeley]: Apress. p. 85. ISBN 978-1-4842-0250-0OCLC 897466496 .
- ^ Moolenaar, Bram. "Vim: introducción.txt" . vimhelp.org . Consultado el 1 de septiembre de 2023 .
- 1 2 "CS107 El editor Vim" . web.stanford.edu . Archivado del original el 27 de enero de 2023. Recuperado el 27 de enero de 2023 .
- ↑ Melendez, Steven (28 de octubre de 2014). "Por qué Vim, un editor de texto de los 80, sigue siendo la interfaz de usuario preferida por los usuarios avanzados" . FastCompany . Archivado del original el 6 de mayo de 2019. Consultado el 5 de mayo de 2019 .
- ↑ "Consejos: Cómo usar Vim fácilmente" . Linux.com . 10 de abril de 2007. Archivado del original el 6 de mayo de 2019. Consultado el 6 de mayo de 2019 .
- ↑ "Documentación de Vim: usr_41" . vimhelp.org . Archivado del original el 13 de enero de 2019. Consultado el 13 de enero de 2019 .
- ↑ Sistema de ayuda de Vim (escribe "
:help" dentro de Vim) - ↑ Vim. "vim/runtime/autoload/tar.vim" . Consultado el 5 de junio de 2026 .
- ↑ "Documentación de Vim: recuperar" . vimdoc.sourceforge.net . Archivado del original el 13 de diciembre de 2020. Consultado el 17 de diciembre de 2020 .
- ↑ "Cómo manejar archivos de intercambio en Vim" . cs.longwood.edu . Archivado del original el 7 de mayo de 2021. Consultado el 17 de diciembre de 2020 .
- ↑ "Opción 'swapfile'" . vimhelp.org . 10 de octubre de 2020. Archivado del original el 14 de diciembre de 2020. Consultado el 18 de diciembre de 2020 .
- ↑ The Open Group (2008), "vi — editor de pantalla (visual) orientado a la pantalla", Especificación única de Unix, versión 4 (IEEE Std 1003.1–2008) , archivado del original el 22 de enero de 2011 , recuperado el 27 de diciembre de 2010.
- ↑ Peppe; Benji; Campbell, Charles (2 de enero de 2004). "Preguntas frecuentes sobre Vim" . Archivado del original el 13 de enero de 2019. Recuperado el 27 de diciembre de 2010 .(pregunta 1.3)
- ↑ Klein, Benjamin. "The VimL Primer: Edit Like a Pro with Vim Plugins and Scripts by Benjamin Klein | The Pragmatic Bookshelf" . Archivado del original el 25 de enero de 2020. Consultado el 25 de enero de 2020 .
- ↑ "Documentación de Vim: usr_41" . vimhelp.org . Archivado del original el 13 de enero de 2019. Consultado el 13 de enero de 2019 .
- 1 2 Bram Moolenaar. "¡Vim 9.0 ya está disponible!" . Archivado del original el 2 de julio de 2022 . Consultado el 30 de junio de 2022 .
- ↑ "Vim: vim9.txt" . vimhelp.org .
- ↑ Verdoolaege, Sven; Gerassimof, Matt. "Documentación de Vim: if_perl" . Archivado del original el 8 de febrero de 2012. Recuperado el 27 de agosto de 2019 .
- ↑ Moore, Paul. "Documentación de Vim: if_pyth" . Archivado del original el 22 de agosto de 2012. Consultado el 27 de agosto de 2019 .
- ↑ Carvalho, Luis. "Documentación de Vim: if_lua" . Archivado del original el 30 de marzo de 2012. Consultado el 27 de agosto de 2019 .
- ↑ Maeda, Shugo. "Documentación de Vim: if_ruby" . Archivado del original el 14 de febrero de 2012. Consultado el 27 de agosto de 2019 .
- ↑ Wilken, Ingo. "Documentación de Vim: if_tcl" . Archivado del original el 24 de agosto de 2012. Consultado el 27 de agosto de 2019 .
- ↑ Khorev, Sergey. "Documentación de Vim: if_mzsch" . Archivado del original el 14 de abril de 2012. Consultado el 27 de agosto de 2019 .
- ↑ "Filewatcher" . Archivado del original el 11 de julio de 2011. Consultado el 26 de febrero de 2011 .
- ↑ "Resumen del Manual Oficial de Vim, Versión 4" . 12 de marzo de 2004. Archivado del original el 18 de agosto de 2008. Consultado el 6 de agosto de 2008 .
- ↑ "Resumen del Manual Oficial de Vim, Versión 5" . 17 de enero de 2004. Archivado del original el 21 de agosto de 2008. Consultado el 6 de agosto de 2008 .
- ↑ "Resumen del Manual Oficial de Vim, Versión 6" . 12 de marzo de 2004. Archivado del original el 11 de junio de 2008. Consultado el 6 de agosto de 2008 .
- ↑ "Manual de referencia de Vim, versión 7" . 17 de julio de 2016. Archivado del original el 13 de enero de 2019. Consultado el 13 de enero de 2019 .
- ↑ "Grupos de Google" . groups.google.com . Archivado del original el 6 de noviembre de 2012. Consultado el 11 de agosto de 2008 .
- ↑ Google Discussiegroepen Archivado el 22 de enero de 2011 en el Archivo Web Portugués . Groups.google.com. Recuperado el 9 de diciembre de 2013.
- ↑ Bram Moolenaar. "¡Vim 8.0 lanzado!" . Archivado del original el 22 de enero de 2011 . Recuperado el 12 de septiembre de 2016 .
- ↑ Bram Moolenaar. "¡Vim 8.1 ya está disponible!" . Archivado del original el 17 de mayo de 2018. Recuperado el 18 de mayo de 2018 .
- ↑ Bram Moolenaar. "¡Vim 8.2 ya está disponible!" . Archivado del original el 12 de diciembre de 2019. Consultado el 13 de diciembre de 2019 .
- ↑ Christian Brabandt. "¡Vim 9.1 ya está disponible!" . Archivado del original el 2 de enero de 2024. Consultado el 4 de enero de 2024 .
- ↑ Christian Brabandt. "¡Vim 9.2 ha sido lanzado!" . Archivado del original el 14 de febrero de 2026 . Consultado el 16 de febrero de 2026 .
Enlaces externos
- Sitio web oficial

- Charla técnica de Bram Moolenaar celebrada en el 25.º aniversario del primer lanzamiento de Vim en YouTube.
- Software de 1991
- Software Amiga
- Editores de texto BeOS
- Editores de texto clásicos de Mac OS
- Informática en los Países Bajos
- Software libre multiplataforma
- Editores de texto de DOS
- Herramientas gratuitas para comparar archivos
- Software libre programado en C
- Editores de texto gratuitos
- Tecnologías de la información en los Países Bajos
- Editores de texto de Linux
- Editores de texto de macOS
- Software MorphOS
- Editores de texto OpenVMS
- Editores de texto de OS/2
- Termcap
- Editores de texto Unix
- Vi
- Editores de texto de Windows
- Editores de texto que utilizan GTK
- Editores HTML gratuitos
- Editores hexadecimales
- Aplicaciones de consola