miércoles, 24 de marzo de 2021

Vim #OverMusculed en debian GNU/Linux (tutorial de instalación, complementos y configuración)


¿Qué es VIM?


Podemos obtener la respuesta citando a wikipedia:

Vim (del inglés Vi IMproved) es una versión mejorada del editor de texto Vi, presente en todos los sistemas UNIX. 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, 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. Fuente: Wikipedia.

A continuación ya conociendo un concepto básico de lo que es VIM, se explicarán una serie de sencillos pasos para tener en el sistema operativo debian GNU/Linux un vim #OverMusculed (Musculoso) para utilizarlo como editor de texto avanzado mediante la consola con funciones de IDE (Integrated Development Environment).

Instalar VIM


Para instalar VIM (entrar en www.vim.org) solo debemos seguir los siguientes pasos:

1.- En modo de usuario root ejecutar:

apt-get install build-essential git

2.- Luego descargar VIM con el siguiente comando:

git clone https://github.com/vim/vim.git

3.- Luego entrar en la carpeta para compilación con:

cd vim/src

4.- Luego compilar e instalar

make

make install

Con estos sencillos pasos se tendrá la versión más reciente de VIM instalada en el sistema operativo debian GNU/Linux.

Activar y modificar configuraciones disponibles por defecto en Vim


Para ello Solo tenemos que editar el archivo ~/.vimrc del home y agregar las siguientes instrucciones de configuración:

- Para activar los numero de linea añadir al archivo:

set number

- Para activar resaltado de sintaxis agregar:

:syntax on

- Resaltado del cursos vertical y horizontalmente:

set cursorline

- Resalta las busquedas hechas con / y n,N agregando:

set hlsearch
set incsearch

- Configurar la identación a 4 espacios:

:set noet ci pi sts=0 sw=4 ts=4
:set et

- Establecer codificación de caracteres  a utf-8:

set encoding=utf-8
set fileencoding=utf-8


- Manejo de pestañas:

map  <C-l> :tabn<CR>
map  <C-h> :tabp<CR>
map  <C-t> :tabnew<CR>
map  <C-x> :tabclose<CR>



Nota: Existen una infinidad de configuraciones que se pueden activar como atajos de teclado y algunas de ellas se verán a continuación en configuraciones de temas de color, complementos (plugins) y atajos de teclado para activar o desactivar los complementos.

Instalar un tema de color:


A continuación se explica usar los temas que vienen por defecto en vim ó como instalar un nuevo tema en vim de forma sencilla. Por defecto vim trae una serie de esquemas de color que podemos usar solo editando el archivo ~/.vimrc , pero ¿cuales son estos temas de color por defecto? a continuación de listan dichos temas:

blue       evening
darkblue   industry
default    koehler
delek      morning
desert     murphy
elflord    pablo
pechpuff   ron
shine      slate
torte      zellner

Solo basta con agregar la siguiente linea con el nombre del esquema de color en el ~/.vimrc :

:colorscheme delek

Es importante tener activo el resaltado con:

:syntax on

Se inicia vim y se podrá ver que el esquema de color ya esta activo.

Si los esquemas de color no son del agrado del usuario se pueden descargar nuevos temas para activarlos en vim puedes obtener nuevos temas desde estas 2 webs:


Al tener un tema para descargar solo hay que hacer los siguientes pasos

1.- Se crea la carpeta "colors" con el siguiente comando:

mkdir ~/.vim/colors

2.- Luego descargamos el archivo a la carpeta con:

wget https://raw.githubusercontent.com/flazz/vim-colorschemes/master/colors/corporation.vim -O ~/.vim/colors/corporation.vim

3.- Luego solo queda activar el esquema de color agredando al archivo ~/.vimrc lo siguiente:

:colorscheme corporation

Es importante tener activo el resaltado y resaltado personalizado con:

:syntax on
filetype plugin indent on

Y listo solo se debe iniciar el vim si el esquema de color estará activo.

Nota: en algunos casos los colores de fondo en algunas terminales no se muestran de forma correcta o no se muestran, si este es su caso solo tiene que agregar la siguiente linea a su  ~/.vimrc

:set  t_Co=256


Instalando algunos complementos en VIM para que funcione como un IDE.


Cabe destacar que VIM dispone de una serie de complementos muy potentes para trabajar con el mismo a continuación se instalarán los complementos fugitive, vim-airline, coc, minimap y nerdtree.

- Instalando fugitive:

Fugitive es un complemento para el manejo de git y tener información del mismo mientras trabajamos en VIM el cual por lo general se usa combinado con el complemento vim-airline el cual se explica su instalación justo después de esta explicación de instalación de fugitive.

1.- Lo primero es crear el directorio destino para este complemento:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone https://github.com/tpope/vim-fugitive.git fungitive

Con estos pasos ya tendremos este complemento disponible no será necesario activarlo ya que vim-airline lo usará el cual es el siguiente complemento a instalar.

- Instalando vim-airline.

Este complemento crea una especia de barra de estado o area de estado en la parte inferior de la pantalla visible de vim la cual muestra información de rama(git), ruta del archivo. entre otras informaciones a continuación procedemos con los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona del repositorio air-line a la carpeta destino con:

git clone https://github.com/vim-airline/vim-airline.git airline

Nota: este complemento se activa automaticamente en git solo en necesario reiniciarlo o ejecutarlo para ver que ya el complemento se encuentra disponible.

4.- Luego se habilita las fuentes especiales de airline agregando en el archivo ~/.vimrc lo siguiente:

"configurando fuentes airlines
let g:airline_powerline_fonts = 1
"let g:airline_symbols = 1

Nota: es posible que se deba instalar paquete de fuentes; "airline_powerline_fonts", si las fuentes no están disponibles en el complemento vim-airline.

- Instalando COC:

Este complemento permite disponer de la función de auto completado en VIM que todo IDE tiene disponible para trabajar cuando se esta escribiendo código, a continuación los pasos para instalar este potente complemento el cual soporte muchos lenguajes de programación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio COC a la carpeta destino con:

git clone https://github.com/neoclide/coc.nvim.git coc

Nota: con esto ya VIM tendría COC disponible sin ningún tipo de configuración extra de momento.

- Instalando MiniMap:

Esta complemento crea una representación gráfica generando una barra laterial derecha en la pantalla que es solo informativa para mostrar en que punto del código se encuentra el cursor de la consola a continuación los pasos para su instalación.

- Paso previo 1: Descargar la dependencia de code-minimap en forma de paquete DEB (debian) de la siguiente url: https://github.com/wfxr/code-minimap/releases para este caso se descargo para amd64 la version 4.3 de code minimap con los siguientes comandos:

cd ~/Descargas
wget https://github.com/wfxr/code-minimap/releases/download/v0.4.3/code-minimap_0.4.3_amd64.deb

- Paso previo 2: Luego el siguiente paso sería instalar el paquete deb con el siguiente comando logueado como super usuario o root:

dpkg -i code-minimap_0.4.3_amd64.deb

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio MiniMap a la carpeta destino con:

git clone https://github.com/wfxr/minimap.vim.git minimap

4.- Luego se tiene que agregar las siguiente línea en el archivo ~/.vimrc para setear la combinación de teclas para activar o desactivar MiniMap:

map <C-q> :MinimapToggle<CR>

Esta línea crea la siguiente combinación de teclas como atajos de teclado para activar o desactivar MiniMap en la interfaz de vim la cual sería "Ctrl + q".

El algunos casos el tipo de letra usado en la consola no es muy compatible con el tipo de fuente braille la cual se debera de cambiar a fuentes como bitstream vera sans mono u otra.

También en algunos distribuciones GNU/Linux se deberá alguna de esta 2 configuraciones para resaltar la posición el cursor en el flujo del código en el minimap.

código 1:

hi MinimapCurrentLine ctermfg=Green guifg=#50FA7B guibg=#32302f
let g:minimap_cursor_color = 'MinimapCurrentLine'

código 2:

"let g:minimap_highlight='Visual'


- Instalando NerdTree:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio NerdTree a la carpeta destino con:

git clone https://github.com/preservim/nerdtree.git nerdtree

4.- Para este complemento se deben agregar las siguientes líneas de configuración en el ~/.vimrc que se muestran a continuación:

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

map <C-n> :NERDTreeToggle<CR>

Para que NERDTree Muestre archivos ocultos de tu proyecto debes agregar la siguiente línea:

let NERDTreeShowHidden=1

Las 2 primeras líneas perminen ejecutar el complemento NerdTree al iniciar VIM y la tercera línea activa un atajo de teclado con la combinación de teclas "Ctrl + n" para activar o desactivar NerdTree en la interfaz de Vim.

Solo queda iniciar o reiniciar VIM para observar que el plugin y probar que todos los plugins descritos están disponibles

Si se quieres que el super usuario o root tenga estas funciones solo debes hacer lo siguiente

cp /home/usuario/.vimrc /root/.vimrc
cp -R /home/usuario/.vim /root/

- Instalando autopairs

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio AutoPairs a la carpeta destino con:

git clone https://github.com/jiangmiao/auto-pairs.git autopairs

Este plugin no necesita una configuración puntual, este permite el cierre de ciertos simbologías como lo son: "", {}, [] entre otros caracteres de apertura y cierre usados en el mundo de la programación

- Instalando closetag:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio CloseTag a la carpeta destino con:

git clone https://github.com/alvan/vim-closetag.git closetag

Este plugin no necesita configuración y lo que hace es que cuando creas la etiqueta de apertura automáticamente crea la etiqueta de cierre ejemplo: <html> y cierra automáticamente con </html>

- Instalando IndentLine:

Este complemento permite mostrar el árbol de directorios en una área lateral derecha de la pantalla de VIM desde donde se ejecuto el comando, a continuación se muestran los pasos para su instalación.

1.- Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se procede clonar el repositorio IndentLine a la carpeta destino con:

git clone https://github.com/Yggdroot/indentLine.git indentline

4.- Teniendo IndentLine clonado o descargado solo falta agregar la configuración para el uso del mismo el cual se agregaría lo siguiente al archivo ~./vimrc :

let g:indentLine_defaultGroup = 'SpecialKey'
"let g:indentLine_char_list = ['|', '¦', '┆', '┊']
let g:indentLine_char = '┊'
let g:indentLine_concealcursor = 'inc'
let g:indentLine_conceallevel = 2 

Instalando FZF:

FZF es un complemento para la búsqueda rápida de archivos de acuerdo a coincidencias muy potente. 

1.-  Este sería crear el directorio donde van los complementos pero en la instalación de fugitive ya el mismo esta disponible aunque podemos ejecutar para verificar de nuevo:

mkdir -p ~/.vim/pack/vendor/start

2.- Se entra en el directorio con:

cd ~/.vim/pack/vendor/start

3.- Luego se clona el repositorio de fugitive con:

git clone --depth 1 https://github.com/junegun/fzf.git fzf

4.- El siguiente paso es ejecutar el archivo de instalación con el siguiente comando:

./fzf/install

Responder a la preguntas del proceso de instalacion afirmativamente como la letra 'y' y si todo va bien ya se tendrá activo el complemento de fzf en vim.

Nota Final:

Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.