"set t_kD=\7f
set mouse="" " if Vim is compiled with mouse support
-set viminfo='100,<50,s10,f1,%,n~/secure/vim/info
+set viminfo-=h
+set viminfo+=f1,%,n~/secure/vim/info
set viewdir=~/secure/vim/view
-set history=128
set directory=~/secure/vim/tmp
set undodir=~/secure/vim/undo
set undofile
set cpoptions+=$
set showcmd
set showmatch
-set listchars=trail:·,tab:>→,nbsp:% ",eol:¶
-set list
set completeopt-=preview
+set diffopt+=indent-heuristic,algorithm:histogram
set cursorline
set cursorcolumn
set colorcolumn=80
+
+set listchars=trail:·,tab:>→,nbsp:% ",eol:¶
+set list
highlight ExtraWhitespace ctermbg=green ctermfg=blue
match ExtraWhitespace /\s\+$/
set hlsearch
set incsearch
set gdefault
-set wildmode=longest:list
-set tags=tags;,./;
-set wildignore=**/tags,**/.git
+map <F4> :nohlsearch<CR>:call mark#Toggle()<CR>
+
+set wildmode=list:longest
+set tags=.tags/**/tags;
+set wildignore=**/.git,**/.tags
set exrc
set secure
-map <F4> :nohlsearch<CR>:MarkClear<CR>
-
" Folding {{{
set foldmethod=indent
set foldnestmax=9
" }}}
" Statusline {{{
+let MeinStatus = {-> exists("b:mein_status_func") ? b:mein_status_func() : ""}
set laststatus=2
-set statusline=%F\ %m%r%h%w%q%k\ %=
+set statusline=%F\ %m%r%h%w%k
+set statusline+=%{len(getqflist())?'[Q]':''}
+set statusline+=%{len(getloclist(0))?'[L]':''}
+set statusline+=\ %=
set statusline+=%n\ %#Question#%Y
set statusline+=%#DiffChange#%{strlen(&fenc)?&fenc:&enc}%{&bomb?'-bom':''}\ %{&ff}
set statusline+=%#DiffAdd#%l/%L
set statusline+=%#Todo#%c%V:0x%B
set statusline+=%#Comment#%o
-set statusline+=%#Error#%{LintStatus()}
+set statusline+=%#Error#%{MeinStatus()}
set statusline+=%*\ %P
-
-function! LintStatus() " it is overrided in ftplugins
- return ""
-endfunction
" }}}
" View saving {{{
-autocmd BufWinLeave *.* mkview
-autocmd BufWinEnter *.* silent loadview
+autocmd BufWinLeave ?* silent! if &ft !=# "gitcommit" | mkview | endif
+autocmd BufWinEnter ?* silent! loadview
" }}}
" Windows related {{{
" Spelling {{{
set spelllang=ru,en_gb
highlight SpellBad cterm=inverse ctermfg=red ctermbg=black
+highlight SpellLocal term=reverse ctermfg=red ctermbg=cyan
" }}}
" Unimpaired-like textwidth switching {{{
iabbrev итп и т.п.
" }}}
-set keywordprg=
+set keywordprg=:LspHover
let g:sh_no_error = 1
-
set termwinkey=<C-B>
nmap <space> f<space>
-vmap <space> I<space><ESC>gv
nmap _ f_l
nmap <leader>] "*yiw
nnoremap <leader>d "_d
vnoremap <leader>d "_d
-cmap <C-O> <S-Left>
-cmap <C-P> <S-Right>
-
map Q gq
-map Y y$
cmap ][ '[,']
imap <C-b> <C-x><C-o>
-nmap <F2> :set wrap!<CR>:set wrap?<CR>
+imap <C-@> <C-x><C-f>
nmap <Tab> :buffers<CR>:b<Space>
nmap <silent> <Home> :registers<CR>
nmap <leader>' yiwciw"<C-r>""<ESC>
nmap <leader>h1 yypVr=o
nmap <leader>sc 024i-<ESC>a >8 <ESC>24a-<ESC>
nmap <leader><C-]> :vertical wincmd ]<CR>
+nmap [oc :copen<CR>
+nmap ]oc :cclose<CR>
nnoremap <C-P> <C-I>
+nmap ZQ :qall<CR>
+nmap ZZ :wall<CR>:mksession!<CR>:qall<CR>
+
command! E Explore
command! Ch cd %:p:h
command! -bar -nargs=? -bang Tmp :silent vnew<bang>|setlocal buftype=nofile bufhidden=hide noswapfile buflisted filetype=<args> modifiable
+
+execute "digraphs Ru" .. 0x20BD
+
+runtime ftplugin/man.vim
+packadd cfilter