Last active
March 17, 2020 22:48
-
-
Save enwuft/0e4baba96e54912ce0ea54aea6e5b707 to your computer and use it in GitHub Desktop.
This file contains 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
" ============================ Common setting ============================ | |
set nocompatible " be iMproved, required | |
filetype plugin indent on " required | |
" syntax | |
syntax off | |
" Some servers have issues with backup files, see #649. | |
set nobackup | |
set nowritebackup | |
" Give more space for displaying messages. | |
set cmdheight=2 | |
"***************************************************************************** | |
"" Basic Setup | |
"*****************************************************************************" | |
"" Encoding | |
set encoding=utf-8 | |
set fileencoding=utf-8 | |
set fileencodings=utf-8 | |
set ttyfast | |
set formatoptions=tcqrn1 | |
set expandtab | |
set noshiftround | |
set laststatus=2 | |
set showmode | |
set showcmd | |
"" Fix backspace indent | |
set backspace=indent,eol,start | |
"" Tabs. May be overridden by autocmd rules | |
set tabstop=4 | |
set softtabstop=0 | |
set shiftwidth=4 | |
set expandtab | |
"" Map leader to , | |
let mapleader=',' | |
"" Enable hidden buffers | |
set hidden | |
"" Searching | |
set hlsearch | |
set incsearch | |
set ignorecase | |
set smartcase | |
" history : how many lines of history VIM has to remember | |
set history=4000 | |
set number | |
set modelines=0 | |
set ruler | |
set updatetime=300 | |
set shortmess+=c | |
set signcolumn=yes | |
set title | |
set titleold="Terminal" | |
set titlestring=%F | |
" select & complete | |
set selection=inclusive | |
set selectmode=mouse,key | |
" Searching | |
nnoremap / /\v | |
vnoremap / /\v | |
set hlsearch | |
set incsearch | |
set ignorecase | |
set smartcase | |
set showmatch | |
map <leader><space> :let @/=''<cr> " clear search | |
nmap <script> <silent> <leader>l :call ToggleLocationList()<CR> | |
nmap <script> <silent> <leader>q :call ToggleQuickfixList()<CR> | |
let g:ctrlp_map = '<c-p>' | |
let g:ctrlp_cmd = 'CtrlP' | |
"" NERDTree configuration | |
let g:NERDTreeChDirMode=2 | |
let g:NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__'] | |
let g:NERDTreeSortOrder=['^__\.py$', '\/$', '*', '\.swp$', '\.bak$', '\~$'] | |
let g:nerdtree_tabs_focus_on_files=1 | |
let g:NERDTreeMapOpenInTabSilent = '<RightMouse>' | |
let g:NERDTreeWinSize = 30 | |
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.db,*.sqlite | |
map <F3> :NERDTreeToggle<CR> | |
"" Switching windows | |
noremap <C-j> <C-w>j | |
noremap <C-k> <C-w>k | |
noremap <C-l> <C-w>l | |
noremap <C-h> <C-w>h | |
let s:quitting = 0 | |
au QuitPre *.rs let s:quitting = 1 | |
au BufEnter *.rs let s:quitting = 0 | |
au BufWritePost *.rs if ! s:quitting | Neomake | else | echom "Neomake disabled"| endif | |
let g:neomake_warning_sign = {'text': '?'} | |
" vim-racer | |
let g:racer_experimental_completer = 1 | |
augroup Racer | |
autocmd! | |
autocmd FileType rust nmap <buffer> gd <Plug>(rust-def) | |
autocmd FileType rust nmap <buffer> gs <Plug>(rust-def-split) | |
autocmd FileType rust nmap <buffer> gx <Plug>(rust-def-vertical) | |
autocmd FileType rust nmap <buffer> gt <Plug>(rust-def-tab) | |
autocmd FileType rust nmap <buffer> <leader>gd <Plug>(rust-doc) | |
augroup END | |
autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/ | |
autocmd BufWritePost *.rs :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw! | |
" ============================ vim-rainbow config ============================ | |
let g:rainbow_active = 1 | |
let g:rainbow_load_separately = [ | |
\ [ '*' , [['(', ')'], ['\[', '\]'], ['{', '}']] ], | |
\ [ '*.tex' , [['(', ')'], ['\[', '\]']] ], | |
\ [ '*.cpp' , [['(', ')'], ['\[', '\]'], ['{', '}']] ], | |
\ [ '*.{html,htm}' , [['(', ')'], ['\[', '\]'], ['{', '}'], ['<\a[^>]*>', '</[^>]*>']] ], | |
\ ] | |
let g:rainbow_guifgs = ['RoyalBlue3', 'DarkOrange3', 'DarkOrchid3', 'FireBrick'] | |
let g:rainbow_ctermfgs = ['lightblue', 'lightgreen', 'yellow', 'red', 'magenta'] | |
" ============================ Vundle plugin ============================ | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" let Vundle manage Vundle, required | |
Plugin 'VundleVim/Vundle.vim' | |
" Plugin for Rust development | |
Plugin 'racer-rust/vim-racer' | |
Plugin 'shougo/deoplete.nvim' | |
Plugin 'neomake/neomake' | |
Plugin 'valloric/youcompleteme' | |
Plugin 'rust-lang/rust.vim' | |
Plugin 'milkypostman/vim-togglelist' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'Xuyuanp/nerdtree-git-plugin' | |
Plugin 'ryanoasis/vim-devicons' | |
Plugin 'nsf/gocode', {'rtp': 'vim/'} | |
Plugin 'frazrepo/vim-rainbow' | |
Plugin 'preservim/nerdcommenter' | |
Plugin 'terryma/vim-multiple-cursors' | |
call vundle#end() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment