1 " vim: foldmethod=marker:foldlevel=0
10 set mouse="" " if Vim is compiled with mouse support
13 set viminfo='100,<50,s10,f1,%,n~/secure/vim/info
14 set viewdir=~/secure/vim/view
16 set directory=~/secure/vim/tmp
17 set undodir=~/secure/vim/undo
27 set backspace=indent,eol
29 set highlight-=v:Visual
34 set listchars=trail:·,tab:→→,nbsp:% ",eol:¶
40 highlight ExtraWhitespace ctermbg=green ctermfg=blue
41 match ExtraWhitespace /^\s*$/
51 set wildmode=longest:list
53 set wildignore=**/_build/*,**/tags,**/.git,**/.hypothesis
55 map <F4> :nohlsearch<CR>:MarkClear<CR>
64 autocmd BufWinEnter * normal zR
65 highlight FoldColumn ctermfg=cyan ctermbg=black
66 highlight CursorColumn ctermfg=cyan ctermbg=red
70 highlight User1 ctermbg=blue ctermfg=black
71 highlight User2 ctermbg=green ctermfg=black
72 highlight User3 ctermbg=yellow ctermfg=black
73 highlight User4 ctermbg=red ctermfg=black
75 set statusline=%n\|%F%m%r%h%w%q\ %=
76 set statusline+=%1*%Y[%{strlen(&fenc)?&fenc:&enc},%{&ff}]
77 set statusline+=%2*[%l/%L]
78 set statusline+=%3*[%c%V:0x%B]
79 set statusline+=%4*%{LintStatus()}
80 set statusline+=%*\ %P
82 function! LintStatus() " it is overrided in ftplugin/python/pylint.vim
88 autocmd BufWinLeave *.* mkview
89 autocmd BufWinEnter *.* silent loadview
97 nmap <leader>- <C-w>\|<C-w>_
100 autocmd VimResized * wincmd =
103 " Tmux window naming {{{
109 let g:fugitive_git_executable = "LANG=en.UTF-8 git"
110 nmap <F7> "cyiw:execute "Gvsplit " . @c<CR>zR
111 nmap <F9> :diffupdate<CR>:syntax off<CR>:syntax on<CR>
114 " *-lists indentation and formatting {{{
116 set formatlistpat=^\\s*\\*\ \\s*
120 autocmd BufEnter * let &titlestring = expand("%:t")
121 autocmd BufRead /tmp/mutt-* setlocal textwidth=72
122 autocmd BufRead,BufNewFile *.pyi setlocal filetype=python
123 autocmd BufRead,BufNewFile *.go setlocal noexpandtab
124 autocmd BufRead,BufNewFile *.go let g:defsplit_shift=" "
125 autocmd BufNewFile,BufRead *.tex abbreviate framedo \begin{frame}<CR>\frametitle{TODO}<CR>\end{frame}<ESC>k>>wwlcw
126 autocmd BufNewFile,BufRead *.tex abbreviate itemdo \begin{itemize}<CR>\item <CR>\end{itemize}<ESC>k>>$a
127 autocmd BufNewFile,BufRead *.tex abbreviate cnter \begin{center}<CR>\end{center}<ESC>k$o
128 autocmd Filetype texinfo abbreviate \t @tab
129 autocmd Filetype gitcommit setlocal textwidth=72
130 autocmd BufRead /tmp/psql.edit* setlocal filetype=sql
131 autocmd Filetype yaml setlocal shiftwidth=2
135 let g:netrw_banner = 0
136 let g:netrw_bufsettings = "noma nomod nowrap ro nobl"
142 nmap <space> f<space>
143 vmap <space> I<space><ESC>gv
147 nmap <leader>p "_diwP
148 nmap <leader>o :let @*=expand("%:p")<CR>
153 nnoremap <leader>d "_d
154 vnoremap <leader>d "_d
161 nmap <Tab> :buffers<CR>:buffer<Space>
162 nmap <silent> <Home> :registers<CR>
163 nmap <leader>' yiwciw"<C-r>""<ESC>
164 nmap <leader>h1 yypVr=o
165 nmap <leader>72 :set textwidth=72
166 nmap <leader>sc 024i-<ESC>a >8 <ESC>24a-<ESC>
167 nmap <leader><C-]> :vertical winc ]<CR>
171 imap <F1> <C-O>:help!<CR>
173 nmap <leader>sp :setlocal spell spelllang=ru,en_gb
174 highlight SpellBad cterm=inverse ctermfg=red ctermbg=black
181 command! -bar -nargs=? -bang Tmp :silent vnew<bang>|setlocal buftype=nofile bufhidden=hide noswapfile buflisted filetype=<args> modifiable