]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vimrc
Have not used zshfe for years
[dotfiles.git] / vim / .vimrc
index a46469930571e86bb288a7df59eaee71125a8808..433a95c095fba5c5019cdcdb469321a908d16e80 100644 (file)
@@ -8,11 +8,10 @@ set nocompatible
 set encoding=utf-8
 "set t_kD=\7f
 set mouse="" " if Vim is compiled with mouse support
-set nomodeline
 
-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
@@ -28,17 +27,21 @@ set backspace=indent,eol
 set shortmess=aoOtI
 set highlight-=v:Visual
 set highlight+=vr
+set highlight+=sr
 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*$/
+match ExtraWhitespace /\s\+$/
 
 set relativenumber
 set numberwidth=3
@@ -48,11 +51,14 @@ set smartcase
 set hlsearch
 set incsearch
 set gdefault
-set wildmode=longest:list
-set tags=tags;,./;
-set wildignore=**/_build/*,**/tags,**/.git,**/.hypothesis
+map <F4> :nohlsearch<CR>:call mark#Toggle()<CR>
+
+set wildmode=list:longest
+set tags=.tags/**/tags;
+set wildignore=**/.git,**/.tags
 
-map <F4> :nohlsearch<CR>:MarkClear<CR>
+set exrc
+set secure
 
 " Folding {{{
 set foldmethod=indent
@@ -67,29 +73,28 @@ highlight CursorColumn ctermfg=cyan ctermbg=red
 " }}}
 
 " Statusline {{{
-highlight User1 ctermbg=blue ctermfg=black
-highlight User2 ctermbg=green ctermfg=black
-highlight User3 ctermbg=yellow ctermfg=black
-highlight User4 ctermbg=red ctermfg=black
+let MeinStatus = {-> exists("b:mein_status_func") ? b:mein_status_func() : ""}
 set laststatus=2
-set statusline=%n\|%F%m%r%h%w%q\ %=
-set statusline+=%1*%Y[%{strlen(&fenc)?&fenc:&enc},%{&ff}]
-set statusline+=%2*[%l/%L]
-set statusline+=%3*[%c%V:0x%B]
-set statusline+=%4*%{LintStatus()}
+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#%{MeinStatus()}
 set statusline+=%*\ %P
-
-function! LintStatus() " it is overrided in ftplugin/python/pylint.vim
-    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 {{{
+nnoremap <C-b> <C-W>
 noremap <C-j> <C-w>j
 noremap <C-k> <C-w>k
 noremap <C-l> <C-w>l
@@ -103,78 +108,76 @@ autocmd VimResized * wincmd =
 " Tmux window naming {{{
 set titleold = ""
 set title
+autocmd BufEnter * let &titlestring = expand("%:t")
 " }}}
 
 " Fugitive {{{
-let g:fugitive_git_executable = "LANG=en.UTF-8 git"
-nmap <F7> "cyiw:execute "Gvsplit " . @c<CR>zR
+nmap <F7> :Gvsplit <C-R><C-W><CR>zR
 nmap <F9> :diffupdate<CR>:syntax off<CR>:syntax on<CR>
 " }}}
 
 " *-lists indentation and formatting {{{
 set comments-=mb:*
 set formatlistpat=^\\s*\\*\ \\s*
-set formatoptions+=n
+set formatoptions+=onj
 " }}}
 
-autocmd BufEnter * let &titlestring = expand("%:t")
-autocmd BufRead /tmp/mutt-* setlocal textwidth=72
-autocmd BufRead,BufNewFile *.pyi setlocal filetype=python
-autocmd BufRead,BufNewFile *.go setlocal noexpandtab
-autocmd BufRead,BufNewFile *.go let g:defsplit_shift=" "
-autocmd BufNewFile,BufRead *.tex abbreviate framedo \begin{frame}<CR>\frametitle{TODO}<CR>\end{frame}<ESC>k>>wwlcw
-autocmd BufNewFile,BufRead *.tex abbreviate itemdo \begin{itemize}<CR>\item <CR>\end{itemize}<ESC>k>>$a
-autocmd BufNewFile,BufRead *.tex abbreviate cnter \begin{center}<CR>\end{center}<ESC>k$o
-autocmd Filetype texinfo abbreviate \t @tab
-autocmd Filetype gitcommit setlocal textwidth=72
-autocmd BufRead /tmp/psql.edit* setlocal filetype=sql
-autocmd Filetype yaml setlocal shiftwidth=2
-
-set keywordprg=
-
-let g:netrw_banner = 0
-let g:netrw_bufsettings = "noma nomod nowrap ro nobl"
-
-" Often typos
+" 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 {{{
+nmap [ob :set textwidth=72<CR>
+nmap ]ob :set textwidth=0<CR>
+" }}}
+
+" Often typos {{{
 map q: :
 command! W w
+nmap <F1> :help!<CR>
+imap <F1> <C-O>:help!<CR>
+iabbrev итд и т.д.
+iabbrev итп и т.п.
+" }}}
+
+let g:tex_flavor = "latex"
+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
 nmap <leader>p "_diwP
 
-nmap ]q :cnext<CR>
-nmap [q :cprev<CR>
-
 nnoremap <leader>d "_d
 vnoremap <leader>d "_d
 
-cmap <C-O> <S-Left>
-cmap <C-P> <S-Right>
-
 map Q gq
 cmap ][ '[,']
-nmap <Tab> :buffers<CR>:buffer<Space>
+imap <C-b> <C-x><C-o>
+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>72 :set textwidth=72
 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 <F1> :help!<CR>
-imap <F1> <C-O>:help!<CR>
-
-nmap <leader>sp :setlocal spell spelllang=ru,en_gb
-highlight SpellBad cterm=inverse ctermfg=red ctermbg=black
-
-iabbrev итд и т.д.
-iabbrev итп и т.п.
+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