]> Sergey Matveev's repositories - dotfiles.git/blob - vim/.vimrc
Simplify viminfo setting
[dotfiles.git] / vim / .vimrc
1 " vim: foldmethod=marker:foldlevel=0
2
3 set t_Co=16
4 syntax on
5 filetype on
6 filetype plugin on
7 set nocompatible
8 set encoding=utf-8
9 "set t_kD=\7f
10 set mouse="" " if Vim is compiled with mouse support
11
12 set viminfo-=h
13 set viminfo+=f1,%,n~/secure/vim/info
14 set viewdir=~/secure/vim/view
15 set history=128
16 set directory=~/secure/vim/tmp
17 set undodir=~/secure/vim/undo
18 set undofile
19
20 set autoindent
21 set tabstop=4
22 set shiftwidth=4
23 set smarttab
24 set expandtab
25 set nojoinspaces
26 set scrolloff=2
27 set backspace=indent,eol
28 set shortmess=aoOtI
29 set highlight-=v:Visual
30 set highlight+=vr
31 set highlight+=sr
32 set cpoptions+=$
33 set showcmd
34 set showmatch
35 set completeopt-=preview
36 set diffopt+=indent-heuristic,algorithm:histogram
37
38 set cursorline
39 set cursorcolumn
40 set colorcolumn=80
41
42 set listchars=trail:·,tab:>→,nbsp:% ",eol:¶
43 set list
44 highlight ExtraWhitespace ctermbg=green ctermfg=blue
45 match ExtraWhitespace /\s\+$/
46
47 set relativenumber
48 set numberwidth=3
49
50 set ignorecase
51 set smartcase
52 set hlsearch
53 set incsearch
54 set gdefault
55 map <F4> :nohlsearch<CR>:MarkClear<CR>
56
57 set wildmode=list:longest
58 set tags=.tags/**/tags;
59 set wildignore=**/.git,**/.tags
60
61 set exrc
62 set secure
63
64 " Folding {{{
65 set foldmethod=indent
66 set foldnestmax=9
67 set foldenable
68 set foldcolumn=1
69 set foldlevel=0
70
71 autocmd BufWinEnter * normal zR
72 highlight FoldColumn ctermfg=cyan ctermbg=black
73 highlight CursorColumn ctermfg=cyan ctermbg=red
74 " }}}
75
76 " Statusline {{{
77 set laststatus=2
78 set statusline=%F\ %m%r%h%w%k
79 set statusline+=%{len(getqflist())?'[Q]':''}
80 set statusline+=%{len(getloclist(0))?'[L]':''}
81 set statusline+=\ %=
82 set statusline+=%n\ %#Question#%Y
83 set statusline+=%#DiffChange#%{strlen(&fenc)?&fenc:&enc}%{&bomb?'-bom':''}\ %{&ff}
84 set statusline+=%#DiffAdd#%l/%L
85 set statusline+=%#Todo#%c%V:0x%B
86 set statusline+=%#Comment#%o
87 set statusline+=%#Error#%{LintStatus()}
88 set statusline+=%*\ %P
89
90 function! LintStatus() " it is overrided in ftplugins
91     return ""
92 endfunction
93 " }}}
94
95 " View saving {{{
96 autocmd BufWinLeave ?* silent! if &ft !=# "gitcommit" | mkview | endif
97 autocmd BufWinEnter ?* silent loadview
98 " }}}
99
100 " Windows related {{{
101 nnoremap <C-b> <C-W>
102 noremap <C-j> <C-w>j
103 noremap <C-k> <C-w>k
104 noremap <C-l> <C-w>l
105 noremap <C-h> <C-w>h
106 nmap <leader>- <C-w>\|<C-w>_
107 nmap <leader>= <C-w>=
108 nmap <Del> :close<CR>
109 autocmd VimResized * wincmd =
110 " }}}
111
112 " Tmux window naming {{{
113 set titleold = ""
114 set title
115 autocmd BufEnter * let &titlestring = expand("%:t")
116 " }}}
117
118 " Fugitive {{{
119 nmap <F7> :Gvsplit <C-R><C-W><CR>zR
120 nmap <F9> :diffupdate<CR>:syntax off<CR>:syntax on<CR>
121 " }}}
122
123 " *-lists indentation and formatting {{{
124 set comments-=mb:*
125 set formatlistpat=^\\s*\\*\ \\s*
126 set formatoptions+=onj
127 " }}}
128
129 " Spelling {{{
130 set spelllang=ru,en_gb
131 highlight SpellBad cterm=inverse ctermfg=red ctermbg=black
132 highlight SpellLocal term=reverse ctermfg=red ctermbg=cyan
133 " }}}
134
135 " Unimpaired-like textwidth switching {{{
136 nmap [ob :set textwidth=72<CR>
137 nmap ]ob :set textwidth=0<CR>
138 " }}}
139
140 " Often typos {{{
141 map q: :
142 command! W w
143 nmap <F1> :help!<CR>
144 imap <F1> <C-O>:help!<CR>
145 iabbrev итд и т.д.
146 iabbrev итп и т.п.
147 " }}}
148
149 set keywordprg=
150 let g:sh_no_error = 1
151 set termwinkey=<C-B>
152
153 nmap <space> f<space>
154 nmap _ f_l
155
156 nmap <leader>] "*yiw
157 nmap <leader>p "_diwP
158
159 nnoremap <leader>d "_d
160 vnoremap <leader>d "_d
161
162 map Q gq
163 cmap ][ '[,']
164 imap <C-b> <C-x><C-o>
165 nmap <Tab> :buffers<CR>:b<Space>
166 nmap <silent> <Home> :registers<CR>
167 nmap <leader>' yiwciw"<C-r>""<ESC>
168 nmap <leader>h1 yypVr=o
169 nmap <leader>sc 024i-<ESC>a >8 <ESC>24a-<ESC>
170 nmap <leader><C-]> :vertical wincmd ]<CR>
171 nnoremap <C-P> <C-I>
172
173 command! E Explore
174 command! Ch cd %:p:h
175 command! -bar -nargs=? -bang Tmp :silent vnew<bang>|setlocal buftype=nofile bufhidden=hide noswapfile buflisted filetype=<args> modifiable