Skip to content

Instantly share code, notes, and snippets.

@saiashirwad
Created February 7, 2021 11:42
Show Gist options
  • Save saiashirwad/33cd68b6e0529991662954c39d557cbc to your computer and use it in GitHub Desktop.
Save saiashirwad/33cd68b6e0529991662954c39d557cbc to your computer and use it in GitHub Desktop.
My current vim config
let loaded_matchparen = 1
let mapleader = " "
nnoremap <leader>h :wincmd h<CR>
nnoremap <leader>j :wincmd j<CR>
nnoremap <leader>k :wincmd k<CR>
nnoremap <leader>l :wincmd l<CR>
call plug#begin()
Plug 'alvan/vim-closetag'
Plug 'jiangmiao/auto-pairs'
Plug 'HerringtonDarkholme/yats.vim' " TS Syntax
Plug 'MaxMEllon/vim-jsx-pretty'
Plug 'Shougo/context_filetype.vim'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'easymotion/vim-easymotion'
Plug 'leafOfTree/vim-svelte-plugin'
Plug 'haya14busa/incsearch-easymotion.vim'
Plug 'haya14busa/incsearch.vim'
Plug 'jlanzarotta/bufexplorer'
Plug 'leafgarland/typescript-vim'
Plug 'morhetz/gruvbox'
Plug 'neoclide/coc.nvim'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-lua/popup.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'othree/yajs.vim'
Plug 'pangloss/vim-javascript'
Plug 'peitalin/vim-jsx-typescript'
Plug 'phanviet/vim-monokai-pro'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'styled-components/vim-styled-components'
call plug#end()
nmap <C-n> :NERDTreeToggle<CR>
autocmd BufEnter *.{js,jsx,ts,tsx} :syntax sync fromstart
autocmd BufLeave *.{js,jsx,ts,tsx} :syntax sync clear
set mouse=a
map <ScrollWheelUp> <C-y>
map <ScrollWheelDown> <C-E>
set clipboard=unnamedplus
set cmdheight=2
set expandtab
set hidden
set hlsearch
set incsearch
set linebreak
set nobackup
set nocompatible
set nohlsearch
set noshowmode
set noswapfile
set nowrap
set nowritebackup
set number
set relativenumber
set ruler
set scrolloff=8
set shiftwidth=4
set shortmess+=c
set smartcase
set smartindent
set tabstop=4 softtabstop=4
set termguicolors
set undodir=~/.vim/undodir
set undofile
set updatetime=300
set wrap
nmap <leader>bi :BufExplorer<CR>
nmap <leader>g[ <Plug>(coc-diagnostic-prev)
nmap <leader>g] <Plug>(coc-diagnostic-next)
nmap <leader>gd <Plug>(coc-definition)
nmap <leader>gi <Plug>(coc-implementation)
nmap <leader>gr <Plug>(coc-references)
nmap <leader>gy <Plug>(coc-type-definition)
nmap <leader>rr <Plug>(coc-rename)
nmap <silent> <leader>gn <Plug>(coc-diagnostic-next-error)
nmap <silent> <leader>gp <Plug>(coc-diagnostic-prev-error)
nnoremap <leader>cr :CocRestart
nmap <leader>rn <Plug>(coc-rename)
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
colorscheme gruvbox
" au FileType javascript setlocal formatprg=prettier
" au FileType javascript.jsx setlocal formatprg=prettier
" au FileType typescript setlocal formatprg=prettier\ --parser\ typescript
" au FileType html setlocal formatprg=js-beautify\ --type\ html
" au FileType scss setlocal formatprg=prettier\ --parser\ css
" au FileType css setlocal formatprg=prettier\ --parser\ css
let g:coc_global_extensions = ['coc-json', 'coc-tsserver']
"Telescope
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
nnoremap <leader>bn :bn<cr>
nnoremap <leader>bp :bp<cr>
" let g:prettier#quickfix_enabled = 0
" let g:prettier#autoformat_require_pragma = 0
" au BufWritePre *.css,*.svelte,*.pcss,*.html,*.ts,*.js,*.json PrettierAsync
if !exists('g:context_filetype#same_filetypes')
let g:context_filetype#filetypes = {}
endif
" let g:context_filetype#filetypes.svelte =
" \ [
" \ {'filetype' : 'javascript', 'start' : '<script>', 'end' : '</script>'},
" \ {
" \ 'filetype': 'typescript',
" \ 'start': '<script\%( [^>]*\)\? \%(ts\|lang="\%(ts\|typescript\)"\)\%( [^>]*\)\?>',
" \ 'end': '',
" \ },
" \ {'filetype' : 'css', 'start' : '<style \?.*>', 'end' : '</style>'},
" \ ]
" let g:ft = ''
" NERDCommenter settings
let g:NERDSpaceDelims = 1
let g:NERDCompactSexyComs = 1
let g:NERDCustomDelimiters = { 'html': { 'left': '' } }
" Align comment delimiters to the left instead of following code indentation
let g:NERDDefaultAlign = 'left'
fu! NERDCommenter_before()
if (&ft == 'html') || (&ft == 'svelte')
let g:ft = &ft
let cfts = context_filetype#get_filetypes()
if len(cfts) > 0
if cfts[0] == 'svelte'
let cft = 'html'
elseif cfts[0] == 'scss'
let cft = 'css'
else
let cft = cfts[0]
endif
exe 'setf ' . cft
endif
endif
endfu
fu! NERDCommenter_after()
if (g:ft == 'html') || (g:ft == 'svelte')
exec 'setf ' . g:ft
let g:ft = ''
endif
endfu
au! BufNewFile,BufRead *.svelte set ft=html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment