2012-05-18 15:05:19 +04:00
|
|
|
|
" http://kastaneda.kiev.ua/desktop/dotrc/vim.html
|
|
|
|
|
|
|
|
|
|
" общие настройки
|
|
|
|
|
syntax on " включить подсветку синтаксиса
|
2013-04-02 12:53:48 +04:00
|
|
|
|
set ts=4 " у меня табуляция (tabstop) 4 символа
|
|
|
|
|
set tabstop=4
|
|
|
|
|
set shiftwidth=4
|
|
|
|
|
set textwidth=79
|
|
|
|
|
set tw=79
|
2014-04-28 11:45:05 +04:00
|
|
|
|
set colorcolumn=80,120,160
|
2016-10-25 11:18:56 +03:00
|
|
|
|
"set expandtab
|
2013-02-04 17:58:09 +04:00
|
|
|
|
set autoindent
|
2012-05-18 15:05:19 +04:00
|
|
|
|
set copyindent
|
2013-08-02 17:36:31 +04:00
|
|
|
|
"set background=dark " весьма важная штука! :)
|
2012-05-18 15:05:19 +04:00
|
|
|
|
set lbr
|
|
|
|
|
set showcmd
|
|
|
|
|
set nocompatible " обойдёмся без стандартного vi
|
|
|
|
|
set backspace=indent,eol,start
|
2019-10-30 13:01:02 +03:00
|
|
|
|
set nofixendofline
|
2023-07-02 20:23:38 +03:00
|
|
|
|
colorscheme default
|
2021-03-30 03:13:25 +03:00
|
|
|
|
hi DiffAdd ctermfg=white
|
|
|
|
|
hi DiffChange ctermfg=white
|
|
|
|
|
hi DiffDelete ctermfg=white
|
|
|
|
|
hi DiffText ctermfg=white
|
2012-05-18 15:05:19 +04:00
|
|
|
|
set number
|
|
|
|
|
nmap <F6> :set invlist<cr>
|
2014-06-27 00:42:06 +04:00
|
|
|
|
" set breakindent " https://www.linux.org.ru/forum/general/10615635?lastmod=1403800233259
|
2012-05-18 15:05:19 +04:00
|
|
|
|
|
2018-07-27 10:06:10 +03:00
|
|
|
|
" https://ru.wikibooks.org/wiki/Vim#%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_2
|
|
|
|
|
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбю;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.,ЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
|
|
|
|
|
|
2013-02-04 17:58:09 +04:00
|
|
|
|
" Setup for the GNU coding format standard
|
|
|
|
|
function! GnuIndent()
|
|
|
|
|
setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
|
|
|
|
|
setlocal shiftwidth=2
|
2013-06-20 17:26:50 +04:00
|
|
|
|
setlocal tabstop=4
|
2013-04-09 13:02:46 +04:00
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
" Setup for the CPP coding format standard
|
|
|
|
|
function! CppIndent()
|
2023-08-16 16:41:55 +03:00
|
|
|
|
setlocal shiftwidth=2
|
|
|
|
|
setlocal tabstop=2
|
|
|
|
|
setlocal expandtab
|
2014-04-28 11:45:05 +04:00
|
|
|
|
set textwidth=119
|
|
|
|
|
set tw=119
|
|
|
|
|
set colorcolumn=120,160
|
2013-04-09 13:02:46 +04:00
|
|
|
|
endfunction
|
|
|
|
|
|
2014-02-11 16:01:40 +04:00
|
|
|
|
" Setup for the Sh coding format standard
|
|
|
|
|
function! ShIndent()
|
|
|
|
|
setlocal shiftwidth=4
|
|
|
|
|
setlocal tabstop=4
|
|
|
|
|
setlocal noexpandtab
|
|
|
|
|
endfunction
|
2013-02-04 17:58:09 +04:00
|
|
|
|
|
2013-02-27 16:33:03 +04:00
|
|
|
|
" Setup for the Vala coding format standard
|
|
|
|
|
function! ValaIndent()
|
|
|
|
|
setlocal shiftwidth=4
|
2014-02-12 15:04:56 +04:00
|
|
|
|
setlocal tabstop=4
|
|
|
|
|
setlocal noexpandtab
|
2014-04-28 11:45:05 +04:00
|
|
|
|
set textwidth=119
|
|
|
|
|
set tw=119
|
|
|
|
|
set colorcolumn=120,160
|
2013-02-27 16:33:03 +04:00
|
|
|
|
endfunction
|
|
|
|
|
|
2021-03-30 03:07:36 +03:00
|
|
|
|
hi ColorColumn ctermbg=lightgrey guibg=lightgrey
|
|
|
|
|
|
2013-04-09 13:02:46 +04:00
|
|
|
|
au FileType c call GnuIndent()
|
|
|
|
|
au FileType cpp call CppIndent()
|
2013-02-27 16:33:03 +04:00
|
|
|
|
au FileType vala,vapi call ValaIndent()
|
2014-02-11 16:01:40 +04:00
|
|
|
|
au FileType sh call ShIndent()
|
2013-02-04 17:58:09 +04:00
|
|
|
|
|
2012-05-18 15:05:19 +04:00
|
|
|
|
" отключение бэкапов
|
|
|
|
|
set nobackup
|
|
|
|
|
" set backup
|
|
|
|
|
" set backupdir=$HOME/.vim/backups
|
|
|
|
|
" set directory=$HOME/.vim/temp
|
|
|
|
|
|
|
|
|
|
" чтобы курсор не прыгал, а вёл себя так, как kwrite и т.п.
|
|
|
|
|
nnoremap j gj
|
|
|
|
|
nnoremap k gk
|
|
|
|
|
vnoremap j gj
|
|
|
|
|
vnoremap k gk
|
|
|
|
|
nnoremap <Down> gj
|
|
|
|
|
nnoremap <Up> gk
|
|
|
|
|
vnoremap <Down> gj
|
|
|
|
|
vnoremap <Up> gk
|
|
|
|
|
inoremap <Down> <C-o>gj
|
|
|
|
|
inoremap <Up> <C-o>gk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
" файлы автоматом делаются исполняемыми
|
|
|
|
|
function ModeChange()
|
|
|
|
|
if getline(1) =~ "^#!"
|
|
|
|
|
if getline(1) =~ "/bin/"
|
|
|
|
|
silent !chmod a+x <afile>
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
endfunction
|
|
|
|
|
au BufWritePost * call ModeChange()
|
|
|
|
|
|
|
|
|
|
" интуитивные горячие клавиши =)
|
2024-12-06 14:37:53 +03:00
|
|
|
|
imap <F3> <Esc>:set<Space>nu!<CR>a
|
|
|
|
|
nmap <F3> :set<Space>nu!<CR>
|
2012-05-18 15:05:19 +04:00
|
|
|
|
nmap <F2> :w<cr>
|
|
|
|
|
vmap <F2> <esc>:w<cr>i
|
|
|
|
|
imap <F2> <esc>:w<cr>i
|
|
|
|
|
nmap <F10> :q!<cr>
|
|
|
|
|
vmap <F10> <esc>:q!<cr>i
|
|
|
|
|
imap <F10> <esc>:q!<cr>i
|
|
|
|
|
|
|
|
|
|
" вкладки
|
|
|
|
|
:set tabpagemax=99
|
|
|
|
|
nmap <C-a> :tabnew<cr>
|
|
|
|
|
imap <C-a> <ESC>:tabnew<cr>
|
2015-08-26 14:11:26 +03:00
|
|
|
|
map <C-x>n :tabnext<cr>
|
|
|
|
|
nmap <C-x>n :tabnext<cr>
|
|
|
|
|
imap <C-x>n :tabnext<cr>
|
|
|
|
|
map <C-x>p :tabprev<cr>
|
|
|
|
|
nmap <C-x>p :tabprev<cr>
|
|
|
|
|
imap <C-x>p :tabprev<cr>
|
2012-05-18 15:05:19 +04:00
|
|
|
|
|
|
|
|
|
" кириллица
|
|
|
|
|
set encoding=utf-8
|
|
|
|
|
set termencoding=utf-8
|
|
|
|
|
set fileencoding=utf-8
|
|
|
|
|
set wildmenu
|
|
|
|
|
set wcm=<Tab>
|
|
|
|
|
menu Encoding.CP1251 :e ++enc=cp1251<CR>
|
|
|
|
|
menu Encoding.CP866 :e ++enc=cp866<CR>
|
|
|
|
|
menu Encoding.KOI8-U :e ++enc=koi8-u<CR>
|
|
|
|
|
menu Encoding.UTF-8 :e ++enc=utf-8<CR>
|
|
|
|
|
map <F8> :emenu Encoding.<TAB>
|
2013-02-27 16:33:03 +04:00
|
|
|
|
set fileencodings=utf-8,cp1251,cp866,koi8-r
|
2012-05-18 15:05:19 +04:00
|
|
|
|
|
|
|
|
|
" вкл/выкл автоперенос
|
|
|
|
|
set pastetoggle=<F5>
|
|
|
|
|
" set paste
|
|
|
|
|
" nmap <F6> :set noautoindent<cr>
|
|
|
|
|
" imap <F6> :set noautoindent<cr>
|
|
|
|
|
" nmap <F5> :set autoindent<cr>
|
|
|
|
|
" imap <F5> :set autoindent<cr>
|
|
|
|
|
" inoremap <silent> <C-u> <ESC>u:set paste<CR>.:set nopaste<CR>gi " чтобы отступы не съезжали при вставке из буфера X Window
|
|
|
|
|
|
|
|
|
|
" FONT SIZE SHORTCUTS
|
|
|
|
|
set guifont=Liberation\ Mono\ 8
|
|
|
|
|
let g:MyFontSize = 8
|
|
|
|
|
function! ToggleMyFontSize()
|
|
|
|
|
if ( g:MyFontSize == 10 )
|
|
|
|
|
let g:MyFontSize = 8
|
|
|
|
|
elseif ( g:MyFontSize == 8 )
|
|
|
|
|
let g:MyFontSize = 9
|
|
|
|
|
elseif ( g:MyFontSize == 9 )
|
|
|
|
|
let g:MyFontSize = 10
|
|
|
|
|
endif
|
|
|
|
|
execute "set guifont=Liberation\\ Mono\\ ".g:MyFontSize
|
|
|
|
|
endfunction
|
|
|
|
|
nnoremap <silent> <F12> :call ToggleMyFontSize()<CR>
|
|
|
|
|
|
2019-11-07 15:53:38 +03:00
|
|
|
|
" ctags/cscope
|
2019-11-06 21:15:02 +03:00
|
|
|
|
let local_tags = ".ctags"
|
2019-11-07 16:26:42 +03:00
|
|
|
|
let local_tags2 = "tags"
|
2019-11-07 15:53:38 +03:00
|
|
|
|
let local_cscope = ".cscope.out"
|
2019-11-07 16:26:42 +03:00
|
|
|
|
let local_cscope2 = "cscope.out"
|
2019-11-06 21:15:02 +03:00
|
|
|
|
let local_path = "/"
|
|
|
|
|
let current_path = getcwd()
|
|
|
|
|
" If the current path is a child of $HOME directory, start from $HOME
|
|
|
|
|
if current_path =~ $HOME
|
|
|
|
|
let local_path = $HOME . local_path
|
|
|
|
|
let current_path = substitute(current_path, $HOME, '', "")
|
|
|
|
|
endif
|
|
|
|
|
let path_parts = split(current_path, "/")
|
|
|
|
|
for path_part in path_parts
|
|
|
|
|
let local_path = local_path . path_part . "/"
|
|
|
|
|
if filereadable(local_path . local_tags)
|
|
|
|
|
exe ":set tags+=" . local_path . local_tags
|
|
|
|
|
endif
|
2019-11-07 16:26:42 +03:00
|
|
|
|
if filereadable(local_path . local_tags2)
|
|
|
|
|
exe ":set tags+=" . local_path . local_tags2
|
|
|
|
|
endif
|
2019-11-07 15:53:38 +03:00
|
|
|
|
if filereadable(local_path . local_cscope)
|
|
|
|
|
exe "cs add" local_path . local_cscope
|
|
|
|
|
endif
|
2019-11-07 16:26:42 +03:00
|
|
|
|
if filereadable(local_path . local_cscope2)
|
|
|
|
|
exe "cs add" local_path . local_cscope2
|
|
|
|
|
endif
|
2019-11-06 21:15:02 +03:00
|
|
|
|
endfor
|
2019-11-07 16:26:42 +03:00
|
|
|
|
unlet local_tags local_tags2 local_cscope local_cscope2 local_path current_path path_parts
|
2019-11-06 21:15:02 +03:00
|
|
|
|
|
2012-05-18 15:05:19 +04:00
|
|
|
|
map <F4> [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>
|
|
|
|
|
|
|
|
|
|
" Foldging
|
|
|
|
|
set foldenable
|
|
|
|
|
set foldmethod=syntax
|
|
|
|
|
|
2013-02-04 17:58:09 +04:00
|
|
|
|
" VUNDLE "
|
|
|
|
|
set nocompatible " be iMproved
|
|
|
|
|
filetype off " required!
|
|
|
|
|
|
|
|
|
|
set rtp+=~/.vim/bundle/vundle/
|
|
|
|
|
call vundle#rc()
|
|
|
|
|
|
|
|
|
|
" let Vundle manage Vundle
|
|
|
|
|
" required!
|
|
|
|
|
Bundle 'gmarik/vundle'
|
|
|
|
|
|
|
|
|
|
" My Bundles here:
|
|
|
|
|
"
|
|
|
|
|
" original repos on github
|
|
|
|
|
Bundle 'tpope/vim-fugitive'
|
|
|
|
|
Bundle 'Lokaltog/vim-easymotion'
|
2014-09-06 13:01:24 +04:00
|
|
|
|
"Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
|
2013-02-04 17:58:09 +04:00
|
|
|
|
Bundle 'tpope/vim-rails.git'
|
|
|
|
|
" vim-scripts repos
|
|
|
|
|
Bundle 'L9'
|
|
|
|
|
Bundle 'FuzzyFinder'
|
2013-04-02 12:53:48 +04:00
|
|
|
|
Bundle 'vim-tags'
|
2013-02-04 17:58:09 +04:00
|
|
|
|
" non github repos
|
|
|
|
|
Bundle 'git://git.wincent.com/command-t.git'
|
|
|
|
|
" ...
|
2013-03-04 16:31:15 +04:00
|
|
|
|
Bundle 'majutsushi/tagbar'
|
2013-06-01 15:39:58 +04:00
|
|
|
|
Bundle 'vim-startify'
|
2023-08-16 16:41:55 +03:00
|
|
|
|
" Bundle 'clang-complete'
|
2013-11-03 17:34:47 +04:00
|
|
|
|
Bundle 'scrooloose/nerdcommenter'
|
2023-08-16 16:41:55 +03:00
|
|
|
|
" Bundle 'vim-scripts/OmniCppComplete'
|
2013-02-04 17:58:09 +04:00
|
|
|
|
|
|
|
|
|
filetype plugin indent on " required!
|
|
|
|
|
"
|
|
|
|
|
" Brief help
|
|
|
|
|
" :BundleList - list configured bundles
|
|
|
|
|
" :BundleInstall(!) - install(update) bundles
|
|
|
|
|
" :BundleSearch(!) foo - search(or refresh cache first) for foo
|
|
|
|
|
" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
|
|
|
|
|
"
|
|
|
|
|
" see :h vundle for more details or wiki for FAQ
|
|
|
|
|
" NOTE: comments after Bundle command are not allowed..
|
|
|
|
|
|
|
|
|
|
" clang_complete
|
|
|
|
|
" let g:clang_complete_copen = 1
|
|
|
|
|
" let g:clang_user_options='|| exit 0'
|
|
|
|
|
filetype plugin on
|
2013-08-02 17:36:49 +04:00
|
|
|
|
let g:clang_library_path="/usr/lib/llvm"
|
2013-02-04 17:58:09 +04:00
|
|
|
|
let g:clang_user_options='|| exit 0'
|
|
|
|
|
let g:clang_complete_auto = 1
|
2014-04-11 16:32:45 +04:00
|
|
|
|
let g:clang_complete_copen = 0
|
2013-02-04 17:58:09 +04:00
|
|
|
|
|
|
|
|
|
" ------- Vala --------
|
|
|
|
|
" Disable valadoc syntax highlight
|
|
|
|
|
"let vala_ignore_valadoc = 1
|
|
|
|
|
|
|
|
|
|
" Enable comment strings
|
|
|
|
|
let vala_comment_strings = 1
|
|
|
|
|
|
|
|
|
|
" Highlight space errors
|
|
|
|
|
let vala_space_errors = 1
|
|
|
|
|
" Disable trailing space errors
|
|
|
|
|
"let vala_no_trail_space_error = 1
|
|
|
|
|
" Disable space-tab-space errors
|
|
|
|
|
let vala_no_tab_space_error = 1
|
|
|
|
|
|
|
|
|
|
" Minimum lines used for comment syncing (default 50)
|
|
|
|
|
"let vala_minlines = 120
|
|
|
|
|
|
|
|
|
|
" ----- Vala taglist ------
|
|
|
|
|
" Work-around Tag List for Vala
|
|
|
|
|
let tlist_vala_settings='c#;d:macro;t:typedef;n:namespace;c:class;'.
|
|
|
|
|
\ 'E:event;g:enum;s:struct;i:interface;'.
|
|
|
|
|
\ 'p:properties;m:method'
|
|
|
|
|
|
|
|
|
|
" ----- TagBar ------
|
|
|
|
|
nmap <F9> :TagbarToggle<CR>
|
|
|
|
|
let g:tagbar_ctags_bin = "anjuta-tags"
|
|
|
|
|
|
|
|
|
|
" ----- NERDTree ------
|
|
|
|
|
nmap <F12> :NERDTreeToggle<CR>
|
2013-04-10 14:30:36 +04:00
|
|
|
|
|
|
|
|
|
" ------- VimDiff -------
|
|
|
|
|
if &diff
|
|
|
|
|
let mapleader = ","
|
|
|
|
|
map dp1 :diffput LOCAL<CR>
|
|
|
|
|
map dp2 :diffput BASE<CR>
|
|
|
|
|
map dp3 :diffput REMOTE<CR>
|
|
|
|
|
map do1 :diffget LOCAL<CR>
|
|
|
|
|
map do2 :diffget BASE<CR>
|
|
|
|
|
map do3 :diffget REMOTE<CR>
|
|
|
|
|
endif
|