Last active
March 11, 2022 01:25
-
-
Save Daniel-Monroy/2f1322e67477c7a4f394db073ffc5cfc to your computer and use it in GitHub Desktop.
VIMRC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" MY VIM - Daniel Monroy Domínguez | |
" Configuration for editor | |
" -- https://gist.github.com/JeffreyWay/6753834 | |
set nocompatible " Disable vi-compatibility | |
set t_Co=256 | |
set guifont='firacode' | |
set guioptions-=T " Removes top toolbar | |
set guioptions-=r " Removes right hand scroll bar | |
set go-=L " Removes left hand scroll bar | |
set linespace=10 | |
set relativenumber | |
set showmode " always show what mode we're currently editing in | |
set smarttab | |
set softtabstop=4 " when hitting <BS>, pretend like a tab is removed, even if spaces | |
set shiftwidth=4 " number of spaces to use for autoindenting | |
set shiftround " use multiple of shiftwidth when indenting with '<' and '>' | |
set backspace=indent,eol,start " allow backspacing over everything in insert mode | |
set autoindent " always set autoindenting on | |
set copyindent " copy the previous indentation on autoindenting | |
set ignorecase " ignore case when searching | |
set smartcase " ignore case if search pattern is all lowercase, | |
set visualbell " don't beep | |
set noerrorbells " don't beep | |
set autowrite "Save on buffer switch | |
set clipboard=unnamedplus | |
" NUMBER LINEA | |
set number | |
" ATRAPAR EVENTOS DEL RATÓN | |
set mouse=a | |
set clipboard=unnamed | |
" PEGAR DESDE OTRA APLICACIÓN | |
set pastetoggle=<F2> | |
" RESALTADO DE SYNTAX | |
syntax enable | |
set showcmd | |
set ruler | |
set encoding=utf-8 | |
set showmatch | |
set sw=4 | |
set laststatus=2 | |
set expandtab " USAR ESPACIOS EN VEZ DE TABULACIONES | |
set tabstop=4 " 4 ESPACIOS PARA IDENTAR | |
set foldmethod=indent | |
set foldlevel=99 | |
set fileencodings=utf-8 | |
set termencoding=utf-8 | |
set encoding=utf-8 | |
" WORD WRAP | |
set wrap | |
set linebreak | |
set textwidth=0 | |
set wrapmargin=0 | |
set formatoptions-=t | |
set formatoptions+=l | |
" INDENT GUIDES | |
set listchars=tab:\|\ | |
set list | |
" Remove spaches in white | |
nnoremap <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar><CR> | |
nmap <silent> gd <Plug>(coc-definition) | |
nmap <silent> gy <Plug>(coc-type-definition) | |
nmap <silent> gi <Plug>(coc-implementation) | |
nmap <silent> gr <Plug>(coc-references) | |
" PLUGINS | |
call plug#begin('~/.vim/plugged') | |
" Theme | |
Plug 'morhetz/gruvbox' | |
" LINEAS DE IDENTACIÓN | |
Plug 'Yggdroot/indentLine' | |
" BUSCAR ARCHIVOS CON Ctrl+P | |
Plug 'ctrlpvim/ctrlp.vim' | |
" EXPLORADOR DE ARCHIVOS | |
Plug 'scrooloose/nerdtree' | |
Plug 'Xuyuanp/nerdtree-git-plugin' | |
" BUSCAR ARCHIVOS MEDIANTE CTRL+P | |
Plug 'ctrlpvim/ctrlp.vim' | |
" BARRA DE ESTADO | |
Plug 'itchyny/lightline.vim' | |
Plug 'tpope/vim-commentary' | |
" GIT | |
Plug 'tpope/vim-fugitive' | |
Plug 'airblade/vim-gitgutter' | |
" LINEAS DE IDENTACION | |
Plug 'Yggdroot/indentLine' | |
Plug 'mattn/emmet-vim' | |
Plug 'godlygeek/tabular' | |
" SNIPPETS | |
Plug 'SirVer/ultisnips', {'for': ['sh', 'vue', 'markdown', 'javascript']} | |
Plug 'honza/vim-snippets', {'for': ['sh', 'vue', 'markdown', 'javascript']} | |
" Vim-JavaScrip | |
Plug 'pangloss/vim-javascript' | |
Plug 'leafgarland/typescript-vim' | |
Plug 'maxmellon/vim-jsx-pretty' | |
Plug 'prettier/vim-prettier', { | |
\ 'do': 'yarn install --frozen-lockfile --production', | |
\ 'for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql', 'markdown', 'vue', 'svelte', 'yaml', 'html']} | |
" SEARCH | |
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
Plug 'junegunn/fzf.vim' | |
" EMMET | |
Plug 'mattn/emmet-vim' | |
" Working with tags | |
Plug 'alvan/vim-closetag' | |
Plug 'tpope/vim-surround' | |
" COC VIM | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'tasn/vim-tsx' | |
" PLUG VUE | |
Plug 'leafOfTree/vim-vue-plugin' | |
Plug 'ervandew/supertab' | |
" VIM LARAVEL | |
Plug 'tpope/vim-dispatch' "| Optional | |
Plug 'tpope/vim-projectionist' "| | |
Plug 'noahfrederick/vim-composer' "| | |
Plug 'noahfrederick/vim-laravel' | |
" ICONS | |
Plug 'ryanoasis/vim-devicons' | |
" Initialize plugin system | |
call plug#end() | |
" - Material Theme: https://github.com/kaicataldo/material.vim | |
if (has('nvim')) | |
let $NVIM_TUI_ENABLE_TRUE_COLOR = 1 | |
endif | |
if (has('termguicolors')) | |
set termguicolors | |
endif | |
" Theme | |
let mapleader="," | |
set background=dark "Setting dark mode | |
let g:gruvbox_contrast_dark = 'hard' | |
colorscheme gruvbox | |
" EASYMOTION | |
nmap ff <Plug>(easymotion-s2) | |
" NERDTREE | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
let NERDTreeQuitOnOpen=1 | |
let NERDTreeShowHidden=1 | |
let g:NERDTreeWinSize=50 | |
map <C-n> :NERDTreeToggle<CR> | |
let g:NERDTreeGitStatusIndicatorMapCustom = { | |
\ "Modified" : "‚úπ", | |
\ "Staged" : "‚úö", | |
\ "Untracked" : "‚ú≠", | |
\ "Renamed" : "‚ûú", | |
\ "Unmerged" : "‚ïê", | |
\ "Deleted" : "‚úñ", | |
\ "Dirty" : "‚úó", | |
\ "Clean" : "✔︎", | |
\ "Unknown" : "?" | |
\ } | |
" CRTL P | |
set runtimepath^=~/.vim/bundle/ctrlp.vim | |
let g:ctrlp_custom_ignore='node_modules\|DS_Store\|git\|vendor\|storage' | |
" HABILITAR IDENTACIÓN | |
let g:indentLine_enabled=1 | |
let g:indentLine_concealcursor='inc' | |
let g:indentLine_conceallevel=2 | |
" NAVEGACIÓN MÁS FACIL | |
nmap <C-h> <C-w>h | |
nmap <C-j> <C-w>j | |
nmap <C-k> <C-k>k | |
nmap <C-l> <C-l>l | |
" VIM CLOSE TAG | |
let g:closetag_filenames = '*html,*php,*xml,*vue,*js' | |
let g:closetag_xhtml_filenames = '*.xhtml,*.jsx' | |
let g:closetag_filetypes = 'html,xhtml,phtml' | |
let g:closetag_xhtml_filetypes = 'xhtml,jsx' | |
let g:closetag_emptyTags_caseSensitive = 1 | |
let g:closetag_regions = { | |
\ 'typescript.tsx': 'jsxRegion,tsxRegion', | |
\ 'javascript.jsx': 'jsxRegion', | |
\ } | |
let g:closetag_shortcut = '>' | |
let g:closetag_close_shortcut = '<leader>>' | |
" SET STATUS LINE | |
set statusline+=%{FugitiveStatusline()} | |
" JAVASCRIPT SINTAXIS | |
" git clone https://github.com/pangloss/vim-javascript.git ~/.vim/pack/vim-javascript/start/vim-javascript | |
let g:javascript_plugin_jsdoc = 1 | |
let g:javascript_plugin_ngdoc = 1 | |
let g:javascript_plugin_flow = 1 | |
augroup javascript_folding | |
au! | |
au FileType javascript setlocal foldmethod=syntax | |
augroup END | |
let g:vim_jsx_pretty_colorful_config = 1 | |
" AUTO TAGS | |
let g:autotagStartMethod='fork' | |
" EMMET | |
let g:user_emmet_leader_key=',' | |
" LIGHT LINE | |
let g:lightline = { | |
\ 'colorscheme': 'wombat', | |
\ 'active': { | |
\ 'left' : [['mode', 'paste'], [], ['relativepath', 'modified']], | |
\ 'right' : [['mode', 'paste'], [], ['relativepath', 'modified']], | |
\ }, | |
\ 'inactive': { | |
\ 'left' : [['inactive'], ['relativepath']], | |
\ 'right' : [['bufnum']], | |
\ }, | |
\ 'component': { | |
\ 'bufnum' : '%n', | |
\ 'inactive' : 'inactive', | |
\ }, | |
\ 'component_function': { | |
\ 'gitbranch' : 'fugitive#head', | |
\ 'kitestatus' : 'kite#statusline', | |
\ }, | |
\ 'supseparator': { | |
\ 'left' : 'fugitive#head', | |
\ 'right' : 'kite#statusline', | |
\ }, | |
\ } | |
" Vue syntax | |
let g:vim_vue_plugin_load_full_syntax = 1 | |
" Format javascript file | |
autocmd FileType javascript setlocal shiftwidth=4 tabstop=4 softtabstop=0 expandtab | |
" PRETTIER | |
let g:prettier#config#print_width = 'auto' | |
let g:prettier#config#tab_width = 4 | |
let g:prettier#config#use_tabs = 'true' | |
let g:prettier#config#parser = '' | |
let g:prettier#config#config_precedence = 'file-override' | |
let g:prettier#config#prose_wrap = 'preserve' | |
let g:prettier#config#html_whitespace_sensitivity = 'css' | |
let g:prettier#config#require_pragma = 'false' | |
let g:prettier#config#end_of_line = get(g:, 'prettier#config#end_of_line', 'lf') | |
" COC-VIM TAB SETTINGS START | |
" TextEdit might fail if hidden is not set. | |
set hidden | |
set nobackup | |
set nowritebackup | |
set cmdheight=2 | |
set updatetime=300 | |
set shortmess+=c | |
let g:SuperTabDefaultCompletionType = "<c-n>" | |
function! s:check_back_space() abort | |
let col = col('.') - 1 | |
return !col || getline('.')[col - 1] =~# '\s' | |
endfunction | |
inoremap <silent><expr> <TAB> | |
\ pumvisible() ? "\<C-n>" : | |
\ <SID>check_back_space() ? "\<TAB>" : | |
\ coc#refresh() | |
" Navigate snippet placeholders using tab | |
let g:coc_snippet_next = '<Tab>' | |
let g:coc_snippet_prev = '<S-Tab>' | |
" Use enter to accept snippet expansion | |
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<CR>" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment