Created
April 11, 2018 05:54
-
-
Save Shobhit1/857ad7066483669428e0305148973f85 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
call plug#begin('~/.vim/plugged') | |
" Syntax and language specific | |
Plug 'tpope/vim-git' | |
Plug 'tasn/vim-tsx' | |
Plug 'vim-ruby/vim-ruby' | |
Plug 'othree/html5.vim' | |
Plug 'othree/jsdoc-syntax.vim' | |
Plug 'othree/javascript-libraries-syntax.vim' | |
Plug 'leshill/vim-json' | |
Plug 'tpope/vim-markdown' | |
Plug 'ElmCast/elm-vim' | |
Plug 'leafgarland/typescript-vim' | |
Plug 'peitalin/vim-jsx-typescript', { 'for': 'typescript' } | |
Plug 'elixir-lang/vim-elixir', { 'for': 'elixir' } | |
Plug 'slashmili/alchemist.vim', { 'for': 'elixir' } | |
Plug 'Quramy/tsuquyomi', { 'for': 'typescript' } | |
Plug 'pangloss/vim-javascript' | |
Plug 'mxw/vim-jsx' | |
Plug 'hail2u/vim-css3-syntax' | |
Plug 'cakebaker/scss-syntax.vim' | |
Plug 'vim-scripts/indentpython.vim', { 'for': 'python' } | |
Plug 'tpope/vim-sleuth' | |
Plug 'flowtype/vim-flow', { 'for': 'javascript' } | |
Plug 'tweekmonster/django-plus.vim' | |
Plug 'ctrlpvim/ctrlp.vim' | |
Plug 'scrooloose/nerdtree' | |
"Overview of buffers | |
Plug 'fholgado/minibufexpl.vim' | |
"Switch between buffers | |
Plug 'jlanzarotta/bufexplorer' | |
Plug 'crusoexia/vim-dracula' | |
Plug 'davidhalter/jedi-vim' | |
Plug 'pbrisbin/vim-mkdir' | |
Plug 'nvie/vim-flake8' | |
"Vim prettier" | |
" Plug 'heavenshell/vim-prettier' | |
Plug 'prettier/vim-prettier', { 'do': 'yarn install' } | |
Plug 'carlitux/deoplete-ternjs' | |
Plug 'joshdick/onedark.vim' | |
if has('nvim') | |
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } | |
else | |
Plug 'Shougo/deoplete.nvim' | |
Plug 'roxma/nvim-yarp' | |
Plug 'roxma/vim-hug-neovim-rpc' | |
endif | |
let g:deoplete#enable_at_startup = 1 | |
Plug 'carlitux/deoplete-ternjs', { 'do': 'npm install -g tern' } | |
Plug 'mhartington/oceanic-next' | |
Plug 'cakebaker/scss-syntax.vim' | |
Plug 'trevordmiller/nova-vim' | |
Plug 'dracula/vim', { 'as': 'dracula' } | |
" Actual Plugs | |
Plug 'vimlab/split-term.vim' | |
Plug 'tpope/vim-surround' | |
Plug 'christoomey/vim-tmux-navigator' | |
Plug 'tpope/vim-rbenv' | |
Plug 'tpope/vim-eunuch' | |
Plug 'tpope/vim-repeat' | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'rking/ag.vim' | |
Plug 'tpope/vim-commentary' | |
Plug 'tpope/vim-fugitive' | |
Plug 'tpope/vim-ragtag' | |
Plug 'AndrewRadev/splitjoin.vim' | |
Plug 'gorkunov/smartpairs.vim' | |
Plug 'thinca/vim-visualstar' | |
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | |
Plug 'junegunn/fzf.vim' | |
Plug 'tpope/vim-vinegar' | |
Plug 'Shougo/neosnippet.vim' | |
Plug 'junegunn/goyo.vim', { 'for': 'markdown' } | |
Plug 'janko-m/vim-test' | |
Plug 'tpope/vim-endwise' | |
Plug 'mattn/emmet-vim' | |
Plug 'embear/vim-localvimrc' | |
" Plug 'sickill/vim-monokai' | |
Plug 'ErichDonGubler/vim-sublime-monokai' | |
call plug#end() | |
set nocompatible | |
filetype plugin indent on | |
let g:neosnippet#disable_runtime_snippets = { | |
\ '_' : 1, | |
\ } | |
" the Flow plugin is useful but by default it type checks on save | |
" don't need this to happen because Ale does that for us instead | |
let g:flow#enable = 0 | |
" turns on Flow syntax highlighting | |
let g:javascript_plugin_flow = 1 | |
" looks for JSX in just .js files | |
let g:jsx_ext_required = 0 | |
" CtrlP | |
let g:ctrlp_map = '<c-p>' | |
let g:ctrlp_cmd = 'CtrlP' | |
let g:neosnippet#snippets_directory = '~/.config/nvim/UltiSnips' | |
imap <C-k> <Plug>(neosnippet_expand_or_jump) | |
smap <C-k> <Plug>(neosnippet_expand_or_jump) | |
xmap <C-k> <Plug>(neosnippet_expand_target) | |
let g:tsuquyomi_disable_default_mappings = 1 | |
" automatically rebalance windows on vim resize | |
autocmd VimResized * :wincmd = | |
set shiftround | |
set noshowcmd | |
set nofoldenable | |
map K <Nop> | |
"set inccommand=split | |
set background=dark | |
runtime macros/matchit.vim | |
" wrap quickfix window | |
autocmd FileType qf setlocal wrap linebreak | |
autocmd BufNewFile,BufRead .babelrc setlocal filetype=json | |
autocmd BufNewFile,BufRead .eslintrc setlocal filetype=json | |
function! SyntaxItem() | |
echo synIDattr(synID(line("."),col("."),1),"name") | |
endfunction | |
" status bar | |
set statusline=%F%m%r%h%w\ "fullpath and status modified sign | |
set statusline+=\ %y "filetype | |
set statusline+=\ %{fugitive#statusline()} | |
" this line below pushes everything below it to the right hand side | |
set statusline+=%= | |
set statusline+=\%l | |
" assume the /g flag on :s substitutions to replace all matches in a line | |
set gdefault | |
set autoread | |
set breakindent | |
" fix slight delay after pressing ESC then O http://ksjoberg.com/vim-esckeys.html | |
set timeout timeoutlen=500 ttimeoutlen=100 | |
set history=500 | |
set expandtab | |
set tabstop=2 | |
set shiftwidth=2 | |
set softtabstop=2 | |
set expandtab | |
set autoindent | |
set ignorecase smartcase | |
set spelllang=en_gb | |
syntax spell toplevel | |
autocmd FileType markdown setlocal shiftwidth=4 softtabstop=4 tabstop=4 wrap linebreak nolist wrap lbr colorcolumn=0 synmaxcol=999999 | |
autocmd FileType elm setlocal shiftwidth=4 softtabstop=4 tabstop=4 | |
set laststatus=2 | |
set linebreak | |
set incsearch | |
set hlsearch | |
set scrolloff=5 | |
set nobackup | |
set nowritebackup | |
set noswapfile | |
set backspace=indent,eol,start | |
set wildmode=full | |
set wildmenu | |
let mapleader="," | |
noremap \ , | |
set wildignore+=*.o,*.obj,.git,node_modules,_site,*.class,*.zip,*.aux | |
" set number | |
" clear highlights by hitting ESC | |
" or by hitting enter in normal mode | |
nnoremap <CR> :noh<CR><CR> | |
set list listchars=tab:>-,trail:· | |
command! Q q | |
set splitbelow | |
set splitright | |
set tags=./.tags; | |
autocmd BufNewFile,BufRead *.tsx set filetype=typescript.jsx | |
" make the completion menu a bit more readable | |
highlight PmenuSel ctermbg=white ctermfg=black | |
highlight Pmenu ctermbg=black ctermfg=white | |
" so it's clear which paren I'm on and which is matched | |
highlight MatchParen cterm=none ctermbg=none ctermfg=yellow | |
"few nicer JS colours | |
highlight xmlAttrib ctermfg=121 | |
highlight jsThis ctermfg=224 | |
highlight jsSuper ctermfg=13 | |
highlight jsFuncCall ctermfg=cyan | |
highlight jsComment ctermfg=245 ctermbg=none | |
highlight jsClassProperty ctermfg=14 cterm=bold | |
" ~~~ MAPPINGS BELOW ~~~ | |
"gtfo ex mode | |
map Q <Nop> | |
" vim-test | |
map <Leader>e :TestFile<CR> | |
map <Leader>n :TestNearest<CR> | |
map <Leader>l :TestLast<CR> | |
map <Leader>s :TestSuite<CR> | |
" new file in current directory | |
map <Leader>nf :e <C-R>=expand("%:p:h") . "/" <CR> | |
" toggle spellcheck | |
map <leader>sc :setlocal spell!<CR> | |
map <leader>v :vsplit<CR> | |
" clean up any trailing whitespace | |
nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<cr> | |
" Don't add the comment prefix when I hit enter or o/O on a comment line. | |
autocmd FileType * setlocal formatoptions-=r formatoptions-=o | |
noremap H ^ | |
noremap L $ | |
" http://blog.petrzemek.net/2016/04/06/things-about-vim-i-wish-i-knew-earlier/ | |
" better jk normally but don't remap when it's called with a count | |
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j') | |
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k') | |
" FZF.vim | |
nnoremap <leader>t :Files<cr> | |
nnoremap <leader>b :Buffers<cr> | |
" let g:fzf_prefer_tmux = 1 | |
" Elm.vim settings | |
let g:elm_format_autosave = 1 | |
let g:elm_setup_keybindings = 0 | |
" make copy/paste from system clip easier | |
vnoremap <leader>8 "*y | |
vnoremap <leader>9 "*p | |
nnoremap <leader>8 "*p | |
if has('nvim') | |
tnoremap <c-h> <c-\><c-n><c-w>h | |
tnoremap <c-j> <c-\><c-n><c-w>j | |
tnoremap <c-k> <c-\><c-n><c-w>k | |
tnoremap <c-l> <c-\><c-n><c-w>l | |
tnoremap <Esc> <C-\><C-n> | |
autocmd BufWinEnter,WinEnter term://* startinsert | |
let test#strategy = 'neovim' | |
endif | |
set completeopt-=preview | |
" so Emmet.vim will work in JSX | |
let g:user_emmet_settings = { | |
\ 'javascript.jsx' : { | |
\ 'extends': 'jsx', | |
\ 'quote_char': '"', | |
\ }, | |
\} | |
let g:ctrlp_custom_ignore = { | |
\ 'dir': '\v[\/](\.git|\.hg|\.svn|node_modules|\.tmp|tmp)$', | |
\ 'file': '\v\.(exe|so|dll)$', | |
\ 'link': 'some_bad_symbolic_links', | |
\ } | |
let g:localvimrc_persistent = 2 | |
".......................................................... | |
"=> bufExplorer plugin | |
".......................................................... | |
let g:bufExplorerDefaultHelp=0 | |
let g:bufExplorerShowRelativePath=1 | |
map <leader>o :BufExplorer<CR> | |
".......................................................... | |
"=> Minibuffer plugin | |
".......................................................... | |
let g:miniBufExplModSelTarget = 1 | |
let g:miniBufExplorerMoreThanOne = 2 | |
let g:miniBufExplModSelTarget = 0 | |
let g:miniBufExplUseSingleClick = 1 | |
let g:miniBufExplMapWindowNavVim = 1 | |
let g:miniBufExplVSplit = 25 | |
let g:miniBufExplSplitBelow=1 | |
let g:bufExplorerSortBy = "name" | |
autocmd BufRead,BufNew :call UMiniBufExplorer | |
map <leader>u :TMiniBufExplorer<CR> | |
" Use the arrows to something usefull | |
map <right> :bn<CR> | |
map <left> :bp<CR> | |
" autocmd BufWritePost *.js AsyncRun -post=checktime call prettier#run(1) % | |
" autocmd BufWritePost *.js,*.jsx call prettier#run(1) | |
let g:prettier#autoformat = 0 | |
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md PrettierAsync | |
set tags=tags;/ | |
set number | |
colorscheme onedark | |
" colorscheme one | |
let g:airline_theme='one' | |
syntax on | |
let g:lightline = { | |
\ 'colorscheme': 'onedark', | |
\ } | |
" max line length that prettier will wrap on | |
" Prettier efault: 80 | |
let g:prettier#config#print_width = 120 | |
" number of spaces per indentation level | |
" Prettier default: 2 | |
let g:prettier#config#tab_width = 2 | |
" use tabs over spaces | |
" Prettier default: false | |
let g:prettier#config#use_tabs = 'false' | |
" print semicolons | |
" Prettier default: true | |
let g:prettier#config#semi = 'false' | |
" single quotes over double quotes | |
" Prettier default: false | |
let g:prettier#config#single_quote = 'true' | |
" print spaces between brackets | |
" Prettier default: true | |
let g:prettier#config#bracket_spacing = 'true' | |
" put > on the last line instead of new line | |
" Prettier default: false | |
let g:prettier#config#jsx_bracket_same_line = 'false' | |
" avoid|always | |
" Prettier default: avoid | |
let g:prettier#config#arrow_parens = 'always' | |
" none|es5|all | |
" Prettier default: none | |
let g:prettier#config#trailing_comma = 'all' | |
" flow|babylon|typescript|css|less|scss|json|graphql|markdown | |
" Prettier default: babylon | |
let g:prettier#config#parser = 'flow' | |
" cli-override|file-override|prefer-file | |
let g:prettier#config#config_precedence = 'prefer-file' | |
" always|never|preserve | |
let g:prettier#config#prose_wrap = 'preserve' | |
nnoremap <C-J> <C-W><C-J> | |
nnoremap <C-K> <C-W><C-K> | |
nnoremap <C-L> <C-W><C-L> | |
nnoremap <C-H> <C-W><C-H> | |
" Custom configurations | |
inoremap <silent><expr> <TAB> | |
\ pumvisible() ? "\<C-n>" : | |
\ <SID>check_back_space() ? "\<TAB>" : | |
\ deoplete#mappings#manual_complete() | |
function! s:check_back_space() abort "{{{ | |
let col = col('.') - 1 | |
return !col || getline('.')[col - 1] =~ '\s' | |
endfunction"}}} | |
let g:typescript_compiler_binary = 'tsc' | |
let g:typescript_compiler_options = '' | |
autocmd FileType typescript :set makeprg=tsc | |
"Credit joshdick | |
"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. | |
"If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support | |
"(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) | |
if (empty($TMUX)) | |
if (has("nvim")) | |
"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > | |
let $NVIM_TUI_ENABLE_TRUE_COLOR=1 | |
endif | |
"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > | |
"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > | |
" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > | |
if (has("termguicolors")) | |
set termguicolors | |
endif | |
endif | |
" set background=light " for the light version | |
syntax on | |
colorscheme monokai | |
let g:one_allow_italics = 1 " I love italic for comments | |
let g:lightline = { | |
\ 'colorscheme': 'onedark', | |
\ } | |
let g:jsx_ext_required = 0 | |
au BufNewFile,BufRead *.ts set filetype=javascript | |
let g:monokai_term_italic = 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment