Advertisement
Guest User

vimrc

a guest
Jul 18th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 7.29 KB | None | 0 0
  1. """""""""""""""""""""""""""""""
  2. " Reload .vimrc while editing
  3. " :so %
  4. """""""""""""""""""""""""""""""
  5. command! Vimrc :e ~/.vimrc
  6.  
  7. set nocompatible              " be iMproved, required
  8. filetype off                  " required
  9.  
  10. """""""""""""""""""""""""""""""
  11. " cosmetic changes
  12. """""""""""""""""""""""""""""""
  13. syntax on
  14. set nospell
  15. set numberwidth=5
  16.  
  17. set nocursorcolumn
  18. set nocursorline
  19. set encoding=utf-8
  20. set title
  21. set shortmess=atI " don't sho intro messages
  22. set report=0      " tell us about changes
  23. set backspace=indent,eol,start " allow backspacing over everything in insert mode
  24.  
  25. set tabstop=2
  26. set shiftwidth=2
  27. set softtabstop=2
  28. set expandtab
  29.  
  30. set ruler
  31. set nowrap
  32. set list
  33. set listchars=tab:\ ·,trail:·
  34. set lazyredraw
  35. set matchtime=3
  36. set showbreak=↪
  37. set splitbelow
  38. set splitright
  39. " set fillchars=vert:\ " empty is nicer on our term
  40. set autowrite
  41. set shiftround
  42. set autoread
  43. set linebreak
  44. set hlsearch
  45. set incsearch
  46. set ignorecase
  47. set smartcase
  48. set laststatus=2"
  49.  
  50.  
  51. " set clipboard=unnamedplus " Share your clipboard with system
  52. set clipboard=unnamed " Share your clipboard with system
  53. set mouse=a            " Make mouse working!
  54. set modeline
  55. set modelines=10
  56. set shell=/bin/sh
  57.  
  58. set wildmode=list:longest,list:full  " Tab completion
  59. set wildignore+=*.o,*.out,*.obj,.git,*.rbc,*.class,.svn,*.gem
  60. set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz
  61. set wildignore+=*/vendor/gems/*,*/vendor/cache/*,*/.bundle/*,*/.sass-cache/*
  62. set wildignore+=*.swp,*~,._*
  63.  
  64. set showcmd " Show (partial) command in the status line"
  65. set showmode
  66. set updatetime=100
  67.  
  68. set guioptions-=m  "remove menu bar
  69. set guioptions-=T  "remove toolbar
  70. set guioptions-=r  "remove right-hand scroll bar
  71. set guioptions-=L  "remove left-hand scroll bar
  72.  
  73.  
  74. """""""""""""""""""""""""""""""
  75. " Plugins (using vim-plug)
  76. """""""""""""""""""""""""""""""
  77. if empty(glob('~/.vim/autoload/plug.vim'))
  78.   silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
  79.     \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  80.   autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
  81. endif
  82.  
  83. call plug#begin('~/.local/share/nvim/plugged')
  84.  
  85. Plug 'chriskempson/base16-vim'
  86. Plug 'vim-airline/vim-airline'
  87. Plug 'vim-airline/vim-airline-themes'
  88. Plug 'gruvbox-community/gruvbox/'
  89. Plug 'dracula/vim', { 'as': 'dracula' }
  90. Plug 'wincent/terminus'
  91. Plug 'scrooloose/nerdtree'
  92. " Plug 'ctrlpvim/ctrlp.vim'
  93. " fzf integration
  94. Plug '/usr/local/opt/fzf'
  95. Plug 'junegunn/fzf.vim'
  96.  
  97. Plug 'jistr/vim-nerdtree-tabs'
  98. Plug 'w0rp/ale'
  99. Plug 'nanotech/jellybeans.vim'
  100.  
  101. " Autocomplete
  102. if has('nvim')
  103.   Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  104. else
  105.   Plug 'Shougo/deoplete.nvim'
  106.   Plug 'roxma/nvim-yarp'
  107.   Plug 'roxma/vim-hug-neovim-rpc'
  108. endif
  109. Plug 'ervandew/supertab' " Trying supertab for Autocomplete
  110.  
  111. " Helpful functionality
  112. " Plug 'Yggdroot/indentLine' " Better visuals for indents
  113. Plug 'jiangmiao/auto-pairs' " Auto pair (), {}, [], etc..
  114. Plug 'godlygeek/tabular' " Makes alligned tables out of structured text
  115. Plug 'blueyed/vim-diminactive' " Focused window easier to spot
  116. Plug 'tpope/vim-surround' " Necessary
  117. Plug 'tpope/vim-commentary' " Necessary
  118. Plug 'jeffkreeftmeijer/vim-numbertoggle' " Toggle relative line numbers
  119. Plug 'junegunn/goyo.vim' " Distraction free writing
  120. " Plug 'terryma/vim-multiple-cursors' " Display multiple cursors
  121. Plug 'airblade/vim-gitgutter' " Display git line status in left gutter
  122.  
  123. " Language specific
  124. " Python
  125. Plug 'hdima/python-syntax'
  126. Plug 'davidhalter/jedi-vim'
  127. Plug 'zchee/deoplete-jedi'
  128. " Plug 'tmhedberg/SimpylFold'
  129. " Plug 'plasticboy/vim-markdown'
  130. " SQL
  131. Plug 'vim-scripts/SQLComplete.vim'
  132.  
  133. call plug#end()
  134.  
  135.  
  136. """""""""""""""""""""""""""""""
  137. " General Settings
  138. """""""""""""""""""""""""""""""
  139. " Correct Neovim escape handling
  140. if has("nvim")
  141.   au TermOpen * tnoremap <Esc> <c-\><c-n>
  142.   " au FileType fzf tunmap <Esc>
  143. endif
  144.  
  145. " Colors & C.
  146. let g:airline_theme = 'dark'
  147. let base16colorspace=256  " Access colors present in 256 colorspace
  148. syntax enable
  149. set background=dark
  150.  
  151. if has("gui_running")
  152.     colorscheme jellybeans
  153. else
  154.     colorscheme gruvbox
  155. endif
  156.  
  157. "enable deoplete
  158. let g:deoplete#enable_at_startup = 1
  159. " This allows buffers to be hidden if you've modified a buffer.
  160. " This is almost a must if you wish to use buffers in this way.
  161. set hidden
  162.  
  163. " Change mapleader
  164. let mapleader="\<space>"
  165.  
  166. " To open a new empty buffer
  167. " This replaces :tabnew which I used to bind to this mapping
  168. nmap <leader>T :enew<cr>
  169.  
  170. " Move to the next buffer
  171. map <leader>l :bnext<CR>
  172.  
  173. " Move to the previous buffer
  174. map <leader>h :bprevious<CR>
  175.  
  176. " Delete buffer without closing window
  177. nmap <leader>q :bprevious<CR>:bdelete #<CR>
  178.  
  179. " Airline stuff
  180. " Enable the list of buffers
  181. let g:airline#extensions#tabline#enabled = 1
  182.  
  183. " Show just the filename
  184. let g:airline#extensions#tabline#fnamemod = ':t'
  185.  
  186. " Integrate with ALE Linter
  187. let g:airline#extensions#ale#enabled = 1
  188.  
  189. " ESC exits the terminal mode
  190. " tnoremap <Esc> <C-\><C-n>
  191. " terminal
  192. " set shell=/bin/zsh
  193.  
  194. let g:jedi#use_splits_not_buffers = "left"
  195.  
  196. " disable autocompletion, cause we use deoplete for completion
  197. let g:jedi#completions_enabled = 0
  198.  
  199. " open the go-to function in split, not another buffer
  200. let g:jedi#use_splits_not_buffers = "right"
  201.  
  202. " Stop fucking netrw
  203. let g:netrw_silent = 1
  204. let g:netrw_quiet  = 1
  205. let g:loaded_netrw = 1
  206.  
  207. " NERDTree configuration
  208. let NERDTreeQuitOnOpen  = 0   " don't collapse NERDTree when a file is opened
  209. let NERDTreeMinimalUI   = 1
  210. let NERDTreeDirArrows   = 0
  211. let NERDTreeChDirMode   = 0
  212. let NERDTreeIgnore      = ['\.pyc$', '\.rbc$', '\~$']
  213. let NERDTreeHijackNetrw = 0
  214. let g:nerdtree_tabs_startup_cd = 0
  215. let g:nerdtree_tabs_open_on_console_startup=0
  216. let g:nerdtree_tabs_open_on_gui_startup = 0
  217. map <leader>t :NERDTreeTabsToggle<CR>
  218.  
  219. " Autocomplete change selection bindings
  220. " let g:SuperTabContextDefaultCompletionType = "<C-j>"
  221. let g:SuperTabDefaultCompletionType = "<C-n>"
  222. let g:SuperTabContextDefaultCompletionType = "<C-n>"
  223. inoremap <expr> <C-j> pumvisible() ? "\<C-n>" : "\<C-j>"
  224. inoremap <expr> <C-k> pumvisible() ? "\<C-p>" : "\<C-k>"
  225.  
  226. " ALE Linting settings
  227. let g:ale_lint_on_enter = 0
  228. let g:ale_lint_on_text_changed = 'never'
  229. let g:ale_echo_msg_error_str = 'E'
  230. let g:ale_echo_msg_warning_str = 'W'
  231. let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
  232. let g:ale_linters = {'python': ['flake8']}
  233.  
  234. " Relative number settings
  235. " In normal mode, use leader-n or C-n toggle
  236. set number relativenumber
  237. function! NumberToggle()
  238.     if(&relativenumber == 1)
  239.         set norelativenumber
  240.     else
  241.         set relativenumber
  242.     endif    
  243. endfunc
  244. nnoremap <C-n> :call NumberToggle()<cr>
  245. nnoremap <leader>n :call NumberToggle()<cr>
  246.  
  247. " Python specific indenting
  248. " Leader + b for breakpoints
  249. au FileType python map <silent> <leader>b oimport pdb; pdb.set_trace()<esc>
  250. au FileType python map <silent> <leader>B Oimport pdb; pdb.set_trace()<esc>
  251. "     \ set tabstop=4 |
  252. "     \ set softtabstop=4 |
  253. "     \ set shiftwidth=4 |
  254. "     \ set textwidth=79 |
  255. "     \ set expandtab |
  256. "     \ set autoindent |
  257. "     \ set fileformat=unix
  258.  
  259. " FZF shortcuts
  260. nmap <silent> <C-p> :Files<CR>
  261. nmap <silent> <C-b> :Buffers<CR>
  262. nmap <silent> <C-g> :Rg<CR>
  263. " command! -bang -nargs=* Rg call fzf#vim#grep({'options': '--delimiter : --nth 4..'}, 'up:60%')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement