Plugins útiles para VIM editor

La experiencia de uso de Ví se mejora agregando plugins y por eso aquí dejo la lista de algunos favoritos.

Me acuerdo que hace un par de años intente hacer de vi/vim mi editor de código por default y no lo logré. Reconozco que la curva de aprendizaje de este editor es bastante dura, pero ese no era el principal inconveniente sino que para hacer uso diario y encariñarme con algún editor necesito optimizar el tiempo de desarrollo aprovechando cualquier herramienta disponible que vaya encontrando en el camino.

Por está razón, me dedique a mejorar la experiencia de uso en vim instalando algunas extensiones que voy a dejar por aquí abajo por si en algún momento requiero instalar y configurar este extraordinario editor en otro ordenador.

Si eres nuevo con la línea de comandos posiblemente te cueste un poco de trabajo hacer la instalación de estos plugins, pero con paciencia y leyendo la documentación que hay en sus repositorios se vuelve menos complejo.

set nocompatible              " be iMproved, required

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    set rtp+=~/.vim/bundle/nerdtree
  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif

call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'                           " Arbol para navegacion de directorio y archivos
Plug 'ctrlpvim/ctrlp.vim'                           " Busqueda y manupulacion de archivos en directorio y en buffer 
Plug 'tpope/vim-fugitive'                           " Git wrapper para ver modificacion de archivos en diferente branch del proyecto
Plug 'Yggdroot/indentLine'                          " Muestra marcas de identacion en cada linea
Plug 'godlygeek/tabular'                            " Alinea todo el bloque con el patron asignado, como :Tabularize /=
Plug 'Townk/vim-autoclose'                          " Cerrado automatico de comillas,parentesis,llaves y corchetes
Plug 'tomtom/tcomment_vim'                          " Comentar o Descomentar bloques de codigo
Plug 'mg979/vim-visual-multi', {'branch': 'master'} " Multiseleccion de palabras a partir de la seleccion
Plug 'MattesGroeger/vim-bookmarks'                  " Agregar bookmarks y anotaciones por linea
Plug 'vim-airline/vim-airline'                      " Muestra el Status bar del archivo
Plug 'vim-airline/vim-airline-themes'               " Schemas de colores para el Status bar
Plug 'crusoexia/vim-dracula'                        " Schema de color dracula
Plug 'SirVer/ultisnips' 
Plug 'algotech/ultisnips-php'
Plug 'mattn/emmet-vim'
Plug 'vim-scripts/taglist.vim'                      "Muestra el listado de funciones del codigo/ require ctags"
call plug#end() 

"Initialization nerdtree at start of vim editor"
"autocmd StdinReadPre * let s:std_in=1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

"Custom UltiSnips Triggers 
let g:UltiSnipsExpandTrigger="<tab>"
"Use tab to switch the next trigger point, shit + tab on a trigger point
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<S-tab>"
"Vertical splitting of the screen when using the UltiSnips Edit command
let g:UltiSnipsEditSplit="vertical"

"Custom vim-airline
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline_theme='alduin'

"Custom indentLine Plugin
let g:indentLine_color_term = 239
let g:indentLine_char = '¦'
let g:vim_json_syntax_conceal = 0 "Mostrar comillas clave:valor en archivos JSON 
let g:indentLine_leadingSpaceChar = '·'
let g:indentLine_leadingSpaceEnabled = 1

"Custom emmet-vim
let g:user_emmet_mode='a'
let g:user_emmet_leader_key=','

"Personal General Vim Settings
colorscheme torte
syntax on
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set shiftround
set expandtab
set autoindent
set nowrap

set foldmarker={,}
set foldmethod=marker
"set foldtext=v:folddashes.substitute(getline(v:foldstart-1),'/\\*\\\|\\*/\\\|{{{\\d\\=','','g')
set foldcolumn=4
set foldlevelstart=1
set foldmethod=indent   
set foldnestmax=10
set nofoldenable
set foldlevel=2

"Personal mappings
set backspace=indent,eol,start

map <C-b> :NERDTreeToggle<CR>
map <C-q> :q!<CR>
map <C-s> :w<CR>

"Map toogle auto-wrap
nmap <C-z> :set wrap!<CR>

"Map indent on diferent modes
nmap <Tab> >>
nmap <S-Tab> << 
imap <Tab> <Space><Space><Space><Space>      
imap <S-Tab> <Esc><S-Tab>
vnoremap > >gv
vnoremap < <gv 

"Yank lines
nmap <C-S-d> yyp
vmap <C-S-d> y<S-p>gv<S-o><Esc><S-o><Esc>gv

"Taglist Functions
nmap <C-l> :TlistToggle<CR><Esc><C-w>h

Deja una respuesta