Skip to content

Instantly share code, notes, and snippets.

@Shobhit1
Created April 11, 2018 05:54
Show Gist options
  • Save Shobhit1/857ad7066483669428e0305148973f85 to your computer and use it in GitHub Desktop.
Save Shobhit1/857ad7066483669428e0305148973f85 to your computer and use it in GitHub Desktop.
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