Advertisement
Haron_Prime

vimrc

Oct 24th, 2015
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 9.29 KB | None | 0 0
  1. set backspace=indent,eol,start
  2.  
  3. if has("vms")
  4.   set nobackup      " do not keep a backup file, use versions instead
  5. else
  6.   set backup        " keep a backup file (restore to previous version)
  7.   set undofile      " keep an undo file (undo changes after closing)
  8. endif
  9.  
  10. set backupcopy=auto
  11.  
  12. set swapfile
  13. set swapsync=fsync
  14.  
  15. set undolevels=1000                                 " 50 undos - saved in undodir
  16. set udf
  17. set udir=$HOME/.vim/undofiles//
  18.  
  19. set directory=$HOME/.vim/swp//
  20.  
  21. set modeline
  22.  
  23. set statusline=%{fugitive#statusline()}%f%m%r%h%w\ %y\ enc:%{&enc}\ ff:%{&ff}\ fenc:%{&fenc}%=(ch:%3b\ hex:%2B)\ col:%2c\ line:%2l/%L\ [%2p%%]
  24. set title titlelen=150 titlestring=%(\ %M%)%(\ (%{expand(\"%:p:h\")})%)%(\ %a%)\ -\ %{v:servername}
  25.  
  26. set ttyfast                                         " we have a fast terminal
  27. set scrolljump=5                                    " when scrolling up down, show at least 5 lines
  28. set ttyscroll=999                                   " make vim redraw screen instead of scrolling when there are more than 3 lines to be scrolled
  29.  
  30. set updatecount=250                                 " switch every 250 chars, save swap
  31.  
  32. set whichwrap+=b,s,<,>,h,l,[,]                      " backspaces and cursor keys wrap to
  33.  
  34.  
  35. set autoindent smartindent                          " auto/smart indent
  36.  
  37. set autoread                                        " watch for file changes
  38.  
  39. set cmdheight=1                                     " command line two lines high
  40. set complete=.,w,b,u,U,t,i,d                        " do lots of scanning on tab completion
  41. set cursorline                                      " show the cursor line
  42. set encoding=utf-8                                  " set charset translation encoding
  43. set termencoding=utf-8                              " set terminal encoding
  44. set fileencoding=utf-8                              " set save encoding
  45. set fileencodings=utf8,koi8r,cp1251,cp866,ucs-2le   " список предполагаемых кодировок, в порядке предпочтения
  46.  
  47.  
  48. set history=3000                                    " keep 3000 lines of command line history
  49.  
  50. set keywordprg=TERM=mostlike\ man\ -s\ -Pless
  51.  
  52. set laststatus=2
  53.  
  54. set linebreak                                       " wrap at 'breakat' instead of last char
  55. set magic                                           " Enable the "magic"
  56.  
  57. set maxmem=25123                                    " 24 MB -  max mem in Kbyte to use for one buffer.  Max is 2000000
  58.  
  59. set noautowrite                                     " don't automagically write on :next
  60.  
  61. set noexpandtab                                     " no expand tabs to spaces"
  62.  
  63. set nohidden                                        " close the buffer when I close a tab (I use tabs more than buffers)
  64.  
  65. set number                                          " line numbers
  66.  
  67. set scrolloff=3                                     " keep at least 3 lines above/below
  68. set shiftwidth=3                                    " shift width
  69.  
  70. set showcmd                                         " Show us the command we're typing
  71. set showfulltag                                     " show full completion tags
  72. set showmode                                        " show the mode all the time
  73.  
  74. set sidescroll=2                                    " if wrap is off, this is fasster for horizontal scrolling
  75. set sidescrolloff=2                                 "keep at least 5 lines left/right
  76.  
  77. set noguipty
  78.  
  79. set splitright
  80. set splitbelow
  81.  
  82. set restorescreen=on                                " restore screen contents when vim exits -  disable withset t_ti= t_te=
  83.  
  84. set winheight=25
  85.  
  86. set equalalways                                     " all the windows are automatically sized same
  87. set eadirection=both                                " only equalalways for horizontally split windows
  88.  
  89. set tabstop=4
  90. set softtabstop=4
  91.  
  92. set shiftwidth=3
  93. set switchbuf=usetab
  94.  
  95. set commentstring=#%s
  96.  
  97. set tabpagemax=150
  98. set showtabline=1                                   " 2 always, 1 only if multiple tabs
  99. set smarttab                                        " tab and backspace are smart
  100.  
  101. set foldmethod=syntax
  102. set foldenable
  103. set foldcolumn=1                                    " the blank left-most bar left of the numbered lines
  104.  
  105. set sc                                              " override 'ignorecase' when pattern has upper case characters
  106. set smartcase                                       " Ignore case when searching lowercase
  107.  
  108. set showmatch                                       " show matching bracket
  109. set diffopt=filler,iwhite                           " ignore all whitespace and sync"
  110. set stal=2
  111.  
  112. set viewoptions=folds,localoptions,cursor
  113.  
  114. set ruler                                           " show the cursor position all the time
  115. set showcmd                                         " display incomplete commands
  116. set incsearch                                       " do incremental searching
  117. set hlsearch
  118.  
  119. set guiheadroom=0
  120.  
  121. map Q gq
  122.  
  123. inoremap <C-U> <C-G>u<C-U>
  124.  
  125. if has('mouse')
  126.   set mouse=a
  127. endif
  128.  
  129. if &t_Co > 2 || has("gui_running")
  130.   syntax on
  131.   set hlsearch
  132. endif
  133.  
  134. if has("autocmd")
  135.  
  136.   filetype plugin indent on
  137.  
  138.   augroup vimrcEx
  139.   au!
  140.  
  141.   autocmd FileType text setlocal textwidth=78
  142.  
  143.   autocmd BufReadPost *
  144.     \ if line("'\"") >= 1 && line("'\"") <= line("$") |
  145.     \   exe "normal! g`\"" |
  146.     \ endif
  147.  
  148.   augroup END
  149.  
  150. else
  151.  
  152.   set autoindent        " always set autoindenting on
  153.  
  154. endif " has("autocmd")
  155. .
  156. if !exists(":DiffOrig")
  157.   command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
  158.           \ | wincmd p | diffthis
  159. endif
  160.  
  161. if has('langmap') && exists('+langnoremap')
  162.   set langnoremap
  163. endif
  164.  
  165.  
  166. " настройки Vundle
  167. set rtp+=~/.vim/bundle/vundle/
  168.  
  169. call vundle#rc()
  170.  
  171. filetype plugin indent on
  172.  
  173. "репозитории на github
  174. Bundle 'tpope/vim-fugitive'
  175. Bundle 'lokaltog/vim-easymotion'
  176. Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
  177.  
  178. "репозитории vim/scripts
  179. Bundle 'L9'
  180. Bundle 'FuzzyFinder'
  181. Bundle 'rails.vim'
  182.  
  183. "плагины
  184. Plugin 'bling/vim-bufferline'
  185. Plugin 'MattesGroeger/vim-bookmarks'
  186. Plugin 'mattn/emmet-vim'
  187. Plugin 'aperezdc/vim-template'
  188. Plugin 'kana/vim-fakeclip'
  189. Plugin 'sjl/gundo.vim'
  190. Plugin 'vim-scripts/netrw.vim'
  191. Plugin 'simmel/vim-pastie'
  192. Plugin 'vim-scripts/sudo.vim'
  193. Plugin 'vim-scripts/QuickBuf'
  194.  
  195. "My settings
  196.  
  197. filetype on
  198.  
  199. set guiheadroom=0
  200. set t_Co=256
  201. set showmatch
  202. set list lcs=tab:>-,space:.
  203. set showcmd
  204.  
  205. color evening
  206.  
  207. let Tlist_Compact_Format = 1
  208. let Tlist_GainFocus_On_ToggleOpen = 1
  209. let Tlist_Close_On_Select = 1
  210. nnoremap <C-l> :TlistToggle<CR>
  211.  
  212. let g:user_emmet_mode='a'
  213.  
  214. autocmd VimLeavePre * silent mksession $HOME/.vim/lastSession.vim
  215.  
  216. if has("autocmd")
  217.         au BufNewFile,BufRead * if getline(1) =~ '^#!.*iptables-restore' ||
  218.                 \ getline(1) =~ '^# Generated by iptables-save' ||
  219.                 \ getline(1) =~ '^# Firewall configuration written by' |
  220.                 \ set ft=iptables | endif
  221. endif
  222.  
  223. "let g:bookmark_sign = '♥'
  224. let g:bookmark_sign = 'β'
  225. let g:bookmark_auto_save = 1
  226. let g:bookmark_manage_per_buffer = 1
  227. let g:bookmark_auto_save_file = '/bookmarks'
  228.  
  229. let &keywordprg=':help'
  230.  
  231. let g:gundo_width = 60
  232. let g:gundo_preview_height = 40
  233. let g:gundo_right = 1
  234.  
  235.  
  236. set backup
  237.  
  238. " сохранять умные резервные копии ежедневно
  239. function! BackupDir()
  240.     " определим каталог для сохранения резервной копии
  241.     let l:backupdir=$HOME.'/.vim/backup/'.
  242.             \substitute(expand('%:p:h'), '^'.$HOME, '~', '')
  243.  
  244.     " если каталог не существует, создадим его рекурсивно
  245.     if !isdirectory(l:backupdir)
  246.         call mkdir(l:backupdir, 'p', 0700)
  247.     endif
  248.  
  249.     " переопределим каталог для резервных копий
  250.     let &backupdir=l:backupdir
  251.  
  252.     " переопределим расширение файла резервной копии
  253.     let &backupext=strftime('~%Y-%m-%d~')
  254. endfunction
  255.  
  256. " выполним перед записью буффера на диск
  257. autocmd! bufwritepre * call BackupDir()
  258.  
  259.  
  260. "" Удалить пробелы в конце строк (frantsev)
  261. function! RemoveTrailingSpaces()
  262.    normal! mzHmy
  263.    execute '%s:\s\+$::ge'
  264.    normal! 'yzt`z
  265. endfunction
  266.  
  267. "My keybinding
  268.  
  269. "inoremap { {<CR>}<Esc>O
  270. nmap     <F2>         :qa<CR>
  271. nmap     <F3>         <Esc>:q<CR>
  272. imap     <F3>         <Esc>:wq<CR>
  273. imap     <F4>         <Esc>:w<CR>
  274. nmap     <F4>         :w<CR>
  275. nmap     <F5>         <Esc>:w<CR>:source $HOME/.vimrc<CR>
  276. imap     <F5>         <Esc>:w<CR>:source $HOME/.vimrc<CR>
  277. nmap     <F6>         :r! xclip -o<CR>
  278. imap     <F6>         <Esc>:r! xclip -o<CR><S-A>
  279. nnoremap <F7>         :GundoToggle<CR>
  280. nmap     <F8>         <Esc>:browse tabnew<CR>
  281. imap     <F8>         <Esc>:browse tabnew<CR>
  282. nmap     <F9>         <Plug>(openbrowser-open)
  283. vmap     <F9>         <Plug>(openbrowser-open)
  284. nmap     <F10>        <Plug>(openbrowser-search)
  285. vmap     <F10>        <Plug>(openbrowser-search)
  286. nmap     <F11>        :source ~/.vim/lastSession.vim<CR>
  287. nmap     <C-M>        :mksession! ~/.vim/lastSession.vim<CR>
  288. map      <S-Insert>   <MiddleMouse>
  289. map!     <S-Insert>   <MiddleMouse>
  290. nnoremap <space>       za      "открыть/закрыть спойлер
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement