Vim (editor de texto)
Vim (una contracción de Vi IMproved) es un programa editor de texto gratuito y de código abierto basado en pantalla. Es un clon mejorado del vi de Bill Joy. El autor de Vim, Bram Moolenaar, derivó Vim de un puerto del editor Stevie para Amiga y lanzó una versión al público en 1991. Vim está diseñado para usarse tanto desde una interfaz de línea de comandos como una aplicación independiente en un interfaz gráfica del usuario.
Desde su lanzamiento para Amiga, el desarrollo multiplataforma lo ha hecho disponible en muchos otros sistemas. En 2006, fue votado como el editor más popular entre los lectores de Linux Journal; en 2015, la encuesta de desarrolladores de Stack Overflow encontró que es el tercer editor de texto más popular y, en 2019, el quinto entorno de desarrollo más popular.
Historia
El precursor de Vim, Stevie (editor de ST para entusiastas de VI), fue creado por Tim Thompson para Atari ST en 1987 y desarrollado por Tony Andrews y G.R. (Fred) Walter.
Basando en Stevie, Bram Moolenaar comenzó a trabajar en Vim para la computadora Amiga en 1988, con el primer lanzamiento público (Vim v1.14) en 1991.
En el momento de su primer lanzamiento, el nombre "Vim" era un acrónimo de "Vi IMitation", pero cambió a "'Vi IMproved" finales de 1993.
Historia de la liberación | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Licencia
Vim se publica bajo la licencia Vim, que incluye algunas cláusulas de programas de caridad que animan a los usuarios que disfrutan del software a considerar donar a niños en Uganda. La licencia de Vim es compatible con la Licencia pública general de GNU a través de una cláusula especial que permite la distribución de copias modificadas bajo la versión 2.0 o posterior de GNU GPL.
Interfaz
Al igual que vi, la interfaz de Vim no se basa en menús o iconos, sino en comandos dados en una interfaz de usuario de texto; su modo GUI, gVim, agrega menús y barras de herramientas para los comandos de uso común, pero la funcionalidad completa aún se expresa a través de su modo de línea de comandos. Vi (y por extensión, Vim) tiende a permitir que un mecanógrafo mantenga sus dedos en la fila de inicio, lo que puede ser una ventaja para un mecanógrafo táctil.
Vim tiene un tutorial incorporado para principiantes llamado vimtutor que generalmente se instala junto con Vim, pero es un ejecutable separado y se puede ejecutar con un comando de shell. Los usuarios de Vim' El manual detalla las funciones de Vim y se puede leer desde dentro de Vim o encontrarlo en línea.
Vim también tiene una función de ayuda integrada (utilizando el comando :help
) que permite a los usuarios consultar y navegar a través de comandos y funciones.
Modos
Vim tiene 12 modos de edición diferentes, 6 de los cuales son variantes de los 6 modos básicos. Los modos más importantes son:
- Normal modo – utilizado para los comandos del editor. Este también es el modo predeterminado, a menos que el
insertmode
se especifica la opción. - Visual modo – similar al modo normal, pero utilizado para destacar áreas de texto. Los comandos normales se pueden ejecutar en el área resaltada, por ejemplo para mover o editar una selección.
- Insertar modo – similar a la edición en la mayoría de los editores modernos. En este modo, los búferes pueden modificarse con el texto insertado.
- Comando-línea o Cmdline modo – soporta una sola entrada de línea en la parte inferior de la ventana Vim. Comandos normales (comienzo con
:
), y algunas otras claves para acciones específicas (incluyendo la búsqueda de patrones y el comando de filtro) activan este modo. Al finalizar el comando, Vim vuelve al modo anterior.
Personalización
Vim es altamente personalizable y extensible, lo que lo convierte en una herramienta atractiva para los usuarios que exigen una gran cantidad de control y flexibilidad sobre su entorno de edición de texto. La entrada de texto se ve facilitada por una variedad de funciones diseñadas para aumentar la eficiencia del teclado. Los usuarios pueden ejecutar comandos complejos con "asignaciones de teclas," que se puede personalizar y ampliar. La "grabación" La función permite la creación de macros para automatizar secuencias de pulsaciones de teclas y llamar a funciones y asignaciones internas o definidas por el usuario. Las abreviaturas, similares a las macros y las asignaciones de teclas, facilitan la expansión de cadenas cortas de texto en cadenas más largas y también se pueden usar para corregir errores. Vim también cuenta con un "fácil" modo para usuarios que buscan una solución de edición de texto más simple.
Hay muchos complementos disponibles que amplían o agregan nuevas funciones a Vim. Estos complementos generalmente se escriben en el lenguaje de secuencias de comandos interno de Vim, vimscript (también conocido como VimL), pero también se pueden escribir en otros idiomas.
Hay proyectos que combinan secuencias de comandos y personalizaciones complejas y tienen como objetivo convertir a Vim en una herramienta para una tarea específica o agregar un sabor importante a su comportamiento. Los ejemplos incluyen Cream, que hace que Vim se comporte como un editor de hacer clic y escribir, o VimOutliner, que proporciona un esquema cómodo para los usuarios de sistemas similares a Unix.
Características y mejoras sobre vi
Vim tiene un modo de compatibilidad vi, pero cuando ese modo no se usa, Vim tiene muchas mejoras sobre vi. Sin embargo, incluso en el modo de compatibilidad, Vim no es completamente compatible con vi como se define en la especificación única de Unix y POSIX (por ejemplo, Vim no admite el modo abierto de vi, solo el modo visual). Los desarrolladores de Vim afirman que es 'muy compatible con Vi'.
Algunas de las mejoras de Vim incluyen funciones de finalización, comparación y combinación de archivos (conocidos como vimdiff), un sistema de ayuda integrado completo, expresiones regulares extendidas, lenguajes de secuencias de comandos (tanto nativos como a través de intérpretes de secuencias de comandos alternativos como Perl, Python, Ruby, Tcl, etc.), incluida la compatibilidad con complementos, una interfaz gráfica de usuario (gvim), funciones limitadas similares a un entorno de desarrollo integrado, interacción con el mouse (con y sin la GUI), plegado, edición de archivos comprimidos o archivados en formato gzip, bzip2, 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, revisión ortográfica, división (horizontal y vertical) y ventanas con pestañas, Unicode y otros soportes multilingües, resaltado de sintaxis, comando transsesión, historiales de búsqueda y posición del cursor, historial de deshacer/rehacer de múltiples niveles y bifurcación que puede persistir en las sesiones de edición y el modo visual.
Mientras se ejecuta, Vim guarda los cambios del usuario en un archivo de intercambio con la extensión ".swp" extensión. Este archivo se puede utilizar para recuperarse después de un bloqueo. Si un usuario intenta abrir un archivo y ya existe un archivo de intercambio, Vim advertirá al usuario y, si el usuario continúa, Vim usará un archivo de intercambio con la extensión ".swo" (o, si ya hay más de un archivo de intercambio, ".swn", ".swm", etc.). Esta función se puede desactivar.
Guión Vim
Vimscript (también llamado Vimscript o VimL) es el lenguaje de secuencias de comandos integrado en Vim. Basado en el lenguaje del editor ex del editor vi original, las primeras versiones de Vim agregaron comandos para controlar el flujo y las definiciones de funciones. Desde la versión 7, el script Vim 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 el script Vim tiene lambda desde la versión 8.0. El script Vim está escrito principalmente en un estilo de programación imperativo.
Las macros de Vim pueden contener una secuencia de comandos en modo normal, pero también pueden invocar comandos o funciones ex escritas en el script de Vim para tareas más complejas. Casi todas las extensiones (llamadas complementos o más comúnmente secuencias de comandos) de la funcionalidad central de Vim están escritas en secuencias de comandos de Vim, pero los complementos también pueden utilizar otros lenguajes como Perl, Python, Lua, Ruby, Tcl o Racket. Estos complementos se pueden instalar manualmente o mediante un administrador de complementos como Vundle, Pathogen o Vim-Plug.
Los archivos de script de Vim se almacenan como texto sin formato, de manera similar a otro código, y la extensión del nombre de archivo suele ser .vim
. Una excepción notable es el archivo de configuración de Vim, .vimrc
.
Ejemplos
" Este es el programa Hello World en el script Vim.eco "¡Hola, mundo!"" Esto es un bucle simple en el script Vim.Deja i = 1mientras i . 5eco "la cuenta es" i Deja i += 1terminarUnlet i
Disponibilidad
Mientras que vi originalmente solo estaba disponible en los sistemas operativos Unix, Vim se ha portado a muchos sistemas operativos, incluidos AmigaOS (la plataforma de destino inicial), Atari MiNT, BeOS, DOS, Windows a partir de Windows NT 3.1, OS/2, OS /390, MorphOS, OpenVMS, QNX, RISC OS, Linux, BSD y Classic Mac OS. Además, Vim se envía con Apple macOS.
Los puertos independientes de Vim están disponibles para Android e iOS.
Neovim
Neovim es una bifurcación de Vim que se esfuerza por mejorar la extensibilidad y la mantenibilidad de Vim. Algunas características de la bifurcación incluyen compatibilidad con el protocolo de servidor de idiomas incorporado, compatibilidad con E/S asíncrona y compatibilidad con secuencias de comandos mediante Lua.
Neovim tiene la misma sintaxis de configuración que Vim (a menos que se use vim9script); por lo tanto, se puede usar el mismo archivo de configuración con ambos editores, aunque existen pequeñas diferencias en los detalles de las opciones. Si no se utilizan las funciones adicionales de Neovim, Neovim es compatible con casi todas las funciones de Vim.
El proyecto Neovim se inició en 2014, con algunos miembros de la comunidad de Vim que ofrecieron soporte temprano del esfuerzo de refactorización de alto nivel para proporcionar mejores secuencias de comandos, complementos e integración con GUI modernas. El proyecto es software libre y su código fuente está disponible en GitHub.
Neovim realizó una exitosa recaudación de fondos en marzo de 2014 y apoyó al menos a un desarrollador de tiempo completo. Varias interfaces están en desarrollo, haciendo uso de las capacidades de Neovim.
El editor de Neovim está disponible en un Archivo de paquetes personales de Ubuntu, alojado por Canonical y algunos administradores de paquetes más convencionales, lo que permite instalarlo en una variedad de sistemas operativos.
El 27 de octubre de 2021, GitHub lanzó un complemento GitHub Copilot (una herramienta de inteligencia artificial basada en la nube para autocompletar código) para Neovim como repositorio público.
Contenido relacionado
Ciencia y tecnología en Jamaica
Telecomunicaciones en Australia
Cuarto (lenguaje de programación)