2011-12-18 06:11:05 +08:00
|
|
|
" Use Vim settings, rather then Vi settings (much better!).
|
|
|
|
" This must be first, because it changes other options as a side effect.
|
2017-05-05 02:33:35 +08:00
|
|
|
scriptencoding utf-8
|
|
|
|
set encoding=utf-8
|
2011-11-18 05:45:33 +08:00
|
|
|
set nocompatible
|
|
|
|
|
2012-01-26 03:26:23 +08:00
|
|
|
" TODO: this may not be in the correct place. It is intended to allow overriding <Leader>.
|
|
|
|
" source ~/.vimrc.before if it exists.
|
|
|
|
if filereadable(expand("~/.vimrc.before"))
|
|
|
|
source ~/.vimrc.before
|
|
|
|
endif
|
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
" ================ General Config ====================
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2017-08-01 23:57:44 +08:00
|
|
|
set foldcolumn=0 " Make sure that extra margin on left is removed
|
2011-12-18 06:11:05 +08:00
|
|
|
set number "Line numbers are good
|
|
|
|
set history=1000 "Store lots of :cmdline history
|
|
|
|
set showmode "Show current mode down the bottom
|
|
|
|
set gcr=a:blinkon0 "Disable cursor blink
|
2012-03-13 11:13:11 +08:00
|
|
|
set visualbell "No sounds
|
2011-12-18 06:11:05 +08:00
|
|
|
set autoread "Reload files changed outside vim
|
2017-08-01 22:49:41 +08:00
|
|
|
set so=999 " Make sure that coursor is always vertically centered on j/k moves
|
2017-08-01 23:57:44 +08:00
|
|
|
set magic
|
|
|
|
set lazyredraw " Don't redraw while executing macros (good performance config)
|
|
|
|
set showcmd " Show (partial) commands (or size of selection in Visual mode) in the status line
|
|
|
|
|
|
|
|
" Configure backspace so it acts as it should act
|
|
|
|
set backspace=eol,start,indent
|
|
|
|
set whichwrap+=<,>,h,l
|
|
|
|
|
|
|
|
" No annoying sound on errors
|
|
|
|
set noerrorbells
|
|
|
|
set novisualbell
|
|
|
|
set t_vb=
|
|
|
|
set tm=500
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
" This makes vim act like all other editors, buffers can
|
2012-01-25 02:19:23 +08:00
|
|
|
" exist in the background without being in a window.
|
2011-12-18 06:11:05 +08:00
|
|
|
" http://items.sjbach.com/319/configuring-vim-right
|
|
|
|
set hidden
|
|
|
|
|
|
|
|
"turn on syntax highlighting
|
|
|
|
syntax on
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2013-03-16 21:44:39 +08:00
|
|
|
" Change leader to a comma because the backslash is too far away
|
|
|
|
" That means all \x commands turn into ,x
|
2017-03-10 19:24:41 +08:00
|
|
|
" The mapleader has to be set before vundle starts loading all
|
2013-03-16 21:44:39 +08:00
|
|
|
" the plugins.
|
|
|
|
let mapleader=","
|
|
|
|
|
2013-03-15 18:38:51 +08:00
|
|
|
" =============== Vundle Initialization ===============
|
2014-08-20 01:26:29 +08:00
|
|
|
" This loads all the plugins specified in ~/.vim/vundles.vim
|
2013-03-15 18:38:51 +08:00
|
|
|
" Use Vundle plugin to manage all other plugins
|
|
|
|
if filereadable(expand("~/.vim/vundles.vim"))
|
|
|
|
source ~/.vim/vundles.vim
|
|
|
|
endif
|
2016-09-14 00:51:25 +08:00
|
|
|
au BufNewFile,BufRead *.vundle set filetype=vim
|
2013-03-15 18:38:51 +08:00
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
" ================ Turn Off Swap Files ==============
|
|
|
|
|
|
|
|
set noswapfile
|
2011-11-18 05:45:33 +08:00
|
|
|
set nobackup
|
|
|
|
set nowb
|
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
" ================ Persistent Undo ==================
|
|
|
|
" Keep undo history across sessions, by storing in file.
|
2012-02-23 10:02:05 +08:00
|
|
|
" Only works all the time.
|
2015-07-27 14:04:24 +08:00
|
|
|
if has('persistent_undo') && !isdirectory(expand('~').'/.vim/backups')
|
2013-11-15 23:08:30 +08:00
|
|
|
silent !mkdir ~/.vim/backups > /dev/null 2>&1
|
|
|
|
set undodir=~/.vim/backups
|
|
|
|
set undofile
|
|
|
|
endif
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2017-08-01 23:57:44 +08:00
|
|
|
" ================ Text, Tab, Indentation ======================
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
set autoindent
|
|
|
|
set smartindent
|
|
|
|
set smarttab
|
2011-11-18 05:45:33 +08:00
|
|
|
set shiftwidth=2
|
|
|
|
set softtabstop=2
|
|
|
|
set tabstop=2
|
|
|
|
set expandtab
|
2017-08-01 23:57:44 +08:00
|
|
|
set ai "Auto indent
|
|
|
|
set si "Smart indent
|
2011-12-13 10:21:42 +08:00
|
|
|
|
2015-07-17 16:49:44 +08:00
|
|
|
" Auto indent pasted text
|
|
|
|
nnoremap p p=`]<C-o>
|
|
|
|
nnoremap P P=`]<C-o>
|
|
|
|
|
2018-08-23 12:44:28 +08:00
|
|
|
" shortcuts defined by rallets
|
2018-08-02 12:07:07 +08:00
|
|
|
" Refresh all files
|
2018-08-09 12:33:44 +08:00
|
|
|
nnoremap <LocalLeader>r :bufdo edit<CR>
|
|
|
|
nnoremap <LocalLeader>t :tabo<CR>
|
2018-08-23 12:44:28 +08:00
|
|
|
nnoremap <LocalLeader>f :let @" = expand("%")<cr>
|
2018-12-18 20:08:07 +08:00
|
|
|
nnoremap <Leader>sv :source ~/.vimrc<cr>
|
2018-08-23 12:44:28 +08:00
|
|
|
|
2018-08-02 12:07:07 +08:00
|
|
|
|
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
filetype plugin on
|
|
|
|
filetype indent on
|
|
|
|
|
|
|
|
" Display tabs and trailing spaces visually
|
|
|
|
set list listchars=tab:\ \ ,trail:·
|
2017-03-10 17:14:30 +08:00
|
|
|
" set listchars=tab:>-
|
2011-12-18 06:11:05 +08:00
|
|
|
|
|
|
|
set nowrap "Don't wrap lines
|
|
|
|
set linebreak "Wrap lines at convenient points
|
|
|
|
|
|
|
|
" ================ Folds ============================
|
2011-11-18 05:45:33 +08:00
|
|
|
|
|
|
|
set foldmethod=indent "fold based on indent
|
|
|
|
set foldnestmax=3 "deepest fold is 3 levels
|
|
|
|
set nofoldenable "dont fold by default
|
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
" ================ Completion =======================
|
|
|
|
|
2011-12-13 10:21:42 +08:00
|
|
|
set wildmode=list:longest
|
2011-11-18 05:45:33 +08:00
|
|
|
set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches
|
|
|
|
set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing
|
2012-01-25 02:19:23 +08:00
|
|
|
set wildignore+=*vim/backups*
|
2012-03-10 05:35:30 +08:00
|
|
|
set wildignore+=*sass-cache*
|
|
|
|
set wildignore+=*DS_Store*
|
2012-04-03 04:35:14 +08:00
|
|
|
set wildignore+=vendor/rails/**
|
|
|
|
set wildignore+=vendor/cache/**
|
2012-03-10 05:35:30 +08:00
|
|
|
set wildignore+=*.gem
|
2012-04-03 04:35:14 +08:00
|
|
|
set wildignore+=log/**
|
|
|
|
set wildignore+=tmp/**
|
2012-03-13 01:03:02 +08:00
|
|
|
set wildignore+=*.png,*.jpg,*.gif
|
2012-01-25 02:06:34 +08:00
|
|
|
|
|
|
|
"
|
2011-12-18 06:11:05 +08:00
|
|
|
" ================ Scrolling ========================
|
2011-11-18 05:45:33 +08:00
|
|
|
|
2011-12-18 06:11:05 +08:00
|
|
|
set scrolloff=8 "Start scrolling when we're 8 lines away from margins
|
|
|
|
set sidescrolloff=15
|
2011-11-18 05:45:33 +08:00
|
|
|
set sidescroll=1
|
2013-10-22 05:10:40 +08:00
|
|
|
|
2015-01-09 02:56:43 +08:00
|
|
|
" ================ Search ===========================
|
|
|
|
|
|
|
|
set incsearch " Find the next match as we type the search
|
|
|
|
set hlsearch " Highlight searches by default
|
|
|
|
set ignorecase " Ignore case when searching...
|
|
|
|
set smartcase " ...unless we type a capital
|
2017-08-01 23:57:44 +08:00
|
|
|
set infercase " Allow smarter completion by infering the case
|
2013-10-22 05:10:40 +08:00
|
|
|
|
|
|
|
" ================ Custom Settings ========================
|
|
|
|
so ~/.yadr/vim/settings.vim
|
2017-08-01 23:57:44 +08:00
|
|
|
|
|
|
|
" Delete trailing white space on save, useful for Python and CoffeeScript ;)
|
|
|
|
func! DeleteTrailingWS()
|
|
|
|
exe "normal mz"
|
|
|
|
%s/\s\+$//ge
|
|
|
|
exe "normal `z"
|
|
|
|
endfunc
|
|
|
|
autocmd BufWrite *.py :call DeleteTrailingWS()
|
|
|
|
autocmd BufWrite *.coffee :call DeleteTrailingWS()
|
|
|
|
|
|
|
|
" Use Unix as the standard file type
|
|
|
|
set ffs=unix,dos,mac
|
|
|
|
|
|
|
|
" In many terminal emulators the mouse works just fine, thus enable it.
|
|
|
|
if has('mouse')
|
|
|
|
set mouse=a
|
|
|
|
endif
|