Hace poco tomé la decisión de empezar a probar vim como IDE. Algo que a priori parece una locura, pero a raíz de esta migración, he visto claramente la utilidad o más bien la inutilidad del ratón.

Esta decisión, vino a raíz de ver ThePrimeagen, un YouTube. Me pareció muy interesante, lo que comentaba y quería aparte de adoptarlo para el desarrollo de JavaScript-TypeScript, cómo para Golang.

Después de estar todo este tiempo, desarrollando con Vim, he visto claramente, lo ineficiente que es el ratón. Por desgracia, el ratón, hace que no vayas mas allá y sólo aprendas 3/4 shorcuts sin ver las posibilidades que te puede aportar todo un entorno de desarrollo y sus atajos, incluso configura propios.

Este tiempo, he aprendido a configurar .vimrc y a explotar un poco más el IntelliJ. Seguramente con el tiempo, pueda ser más eficiente y evitar el movimiento teclado -> ratón -> teclado. Creo que esto añadirá la posibilidad de obtener una mayor inmersión en el código.

Ojo!. Quizás sea una tontería, lo veremos con el tiempo.

Aquí os dejo mi .vimrc que seguramente añada mas cosas y mas atajos que me faciliten el trabajo

syntax on

set relativenumber
set nu
set colorcolumn=120
set rtp+=/usr/local/opt/fzf

highlight ColorColumn ctermbg=0 guibg=lightgrey

call plug#begin('~/.vim/plugged')

Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'vim-airline/vim-airline'
Plug 'stsewd/fzf-checkout.vim'
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }

"GIT plugin
Plug 'tpope/vim-fugitive'

" Theme
Plug 'gruvbox-community/gruvbox'

Plug 'sheerun/vim-polyglot'
Plug 'tpope/vim-dispatch'

call plug#end()

" Theme config begin
let g:gruvbox_contrast_dark = 'hard'
if exists('+termguicolors')
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
endif
let g:gruvbox_invert_selection='0'
colorscheme gruvbox
set background=dark
" Theme config end

let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.8 } }
let $FZF_DEFAULT_OPTS='--reverse'
let g:fzf_branch_actions = {
      \ 'track': {
      \   'prompt': 'Track> ',
      \   'execute': 'echo system("{git} checkout --track {branch}")',
      \   'multiple': v:false,
      \   'keymap': 'ctrl-t',
      \   'required': ['branch'],
      \   'confirm': v:false,
      \ },
      \}

" --- vim go (polyglot) settings.
let g:go_highlight_build_constraints = 1
let g:go_highlight_extra_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_operators = 1
let g:go_highlight_structs = 1
let g:go_highlight_types = 1
let g:go_highlight_function_parameters = 1
let g:go_highlight_function_calls = 1
let g:go_highlight_generate_tags = 1
let g:go_highlight_format_strings = 1
let g:go_highlight_variable_declarations = 1
let g:go_auto_sameids = 1
let g:go_fmt_command = "goimports"
let g:go_auto_type_info = 1

let mapleader = " "
nnoremap <Leader>pf :Files<CR>
nnoremap <Leader>+ :vertical resize +5<CR>
nnoremap <Leader>- :vertical resize -5<CR>

nmap <leader>gd <Plug>(coc-definition)
nmap <leader>gy <Plug>(coc-type-definition)
nmap <leader>gi <Plug>(coc-implementation)
nmap <leader>gr <Plug>(coc-references)
nmap <leader>rr <Plug>(coc-rename)
nmap <leader>g[ <Plug>(coc-diagnostic-prev)
nmap <leader>g] <Plug>(coc-diagnostic-next)
nmap <silent> <leader>gp <Plug>(coc-diagnostic-prev-error)
nmap <silent> <leader>gn <Plug>(coc-diagnostic-next-error)
nnoremap <leader>cr :CocRestart

fun! TrimWhitespace()
    let l:save = winsaveview()
    keeppatterns %s/\s\+$//e
    call winrestview(l:save)
endfun

Deja una respuesta