La guía se compone de dos partes, la primera es la compilación de VIM tanto en Debian y Ubuntu como en Fedora y CentOS, en ambas familias el procedimiento es el mismo solo que los paquetes que se requieren instalar varían.
La primera duda que surge ¿Porque compilar VIM y no usar el que viene en los repositorios ya compilados? Normalmente, las versiones disponibles en los repo de las diferentes distros son versiones no tan recientes y algunos plugins pueden requerir una versión mas nueva,
En el mismo sentido algunos plugins requieren que VIM sea compilado por soporte para Python 3.X, y como alguno de los plugins incluidos en la configuración lo requieren lo mejor es desinstalar el provisto por la distribución e instalar la versión compilada
Desinstalar
Debian y Ubuntu:
apt-get remove vim apt-get remove vim-*
Fedora
dnf remove vim dnf remove vim-*
CentOS
yum remove vim yum remove vim-*
Instalando dependencias
Debian/Ubuntu
apt-get install git wget curl build-essential python3 python3-pip python-dev python3-venv libncurses5-dev libncursesw5-dev ruby-dev libgtk-3-dev snapd apt-get build-dep vim-gtk
Fedora/CentOS
dnf install -y git wget curl python3 python3-pip python3-devel ruby ruby-devel ncurses-devel gtk3-devel snapd dnf groupinstall "Development Tools" yum-builddep vim-enhanced
Fedora and Debian
service snapd restart snap install node --classic
Complilando VIM desde las fuentes
Desde una terminal descargamos las fuentes directamente desde github de vim:
git clone https://github.com/vim/vim.git
Luego ingresamos a la carpeta src y efectuamos configure:
cd vim/src ./configure --with-features=huge --enable-cscope --enable-multibyte \ --enable-pythoninterp --enable-python3interp \ --with-python3-command=python3.8 \ --with-python3-config-dir=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/ \ --enable-fail-if-missing --enable-gtk3-check --enable-gnome-check \ --enable-gui=auto --with-x
En este comando anterior hay un detalle importante y es la ruta de /usr/lib64/python3.9/config-3.9-x86_64-linux-gnu que en su pc puede cambiar, tanto por la disto como por la versión de Python por lo que conviene que verifiquen primero la ruta en su PC.
Luego si lo anterior corrió sin errores lo compilamos e instalamos:
make sudo make install
Descargando configuración
Executing in console:
mkdir ~/.config cd ~/.config
Descargando configuración:
git clone https://github.com/alvarodeleon/vim.git
Creando el siguiente enlace simbólico:
ln -s ~/.config/vim/vimrc ~/.vimrc
Instalando el soporte para plugins
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Luego solo resta abrir vim y ejecutar :PlugInstall
Archivos de configuración
vimrc | Es el archivo de configuración principal, contiene configuración básica y la vinculación con los demás archivos |
shortcuts.vim | Contiene los atajos de teclado personalizados. |
plugins.vim | Contiene la lista de plugins instalados y donde se deben agregar los nuevos que se deben instalar |
plugin-config.vim | Contiene las opciones de configuración de los plguins instalados |
thirds.vim | Contiene scripts personalizados con funciones que pueden ser llamadas directamente o con atajos de teclado |
launchers.vim | Contiene los comandos para compilar y/o ejecutar código, por defecto se incluye Python, JavaScript,PHP,Ruby,GO y Bash |
thirds.vim | Contiene funciones programadas por terceros para agregar funcionalidades. |
Conclusión
Como vemos compilar e instalar VIM es mucho más fácil de lo que parece, en pocos minutos podemos tener un editor de texto de consola con capacidades similares a un editor de código como Visual Code por ejemplo. ¿Por qué utilizar VIM en lugar de Visual Code? VIM puede ser usado desde una terminal, por lo que es especialmente útil para trabajar conectado a un servidor remoto por SSH
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.