Skip to content

Instantly share code, notes, and snippets.

@Daniel-Monroy
Last active March 11, 2022 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Daniel-Monroy/2f1322e67477c7a4f394db073ffc5cfc to your computer and use it in GitHub Desktop.
Save Daniel-Monroy/2f1322e67477c7a4f394db073ffc5cfc to your computer and use it in GitHub Desktop.
VIMRC
" 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