vimrc 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. """"" My (demuredemeanor) .vimrc
  2. "" Uses tabstop=4; shiftwidth=4; foldmarker={{{,}}};
  3. """"""""vim: set tabstop=4 shiftwidth=4:
  4. "" Above is an attempt at a modeline, which seems to have a issue
  5. "" where long pastes get a new line...
  6. "" https://notabug.org/demure/dotfiles/
  7. "" legacy repo http://github.com/demure/dotfiles
  8. """ Commands at Start """ {{{
  9. "" This one needs to be first
  10. set nocompatible " Choose no comp with legacy vi
  11. if has("syntax")
  12. syntax on " Adds vim color based on file
  13. endif
  14. "" Enable filetype settings
  15. if has("eval")
  16. filetype on
  17. filetype plugin on
  18. filetype indent on
  19. endif
  20. """ Folds Settings """ {{{
  21. if has("folding")
  22. set foldenable " Enable folds
  23. "" These next two would save which folds are open/close, as well
  24. "" as view location, but seems to force set foldmethod=indent...
  25. "au BufWinLeave ?* mkview
  26. "au BufWinEnter ?* silent loadview
  27. set foldmethod=marker
  28. set fillchars=fold:<
  29. highlight Folded ctermfg=Grey ctermbg=Black
  30. "set foldlevelstart=99 " Effectively disable auto folding
  31. """ Foldtext """ {{{
  32. "" Inspired by http://www.gregsexton.org/2011/03/improving-the-text-displayed-in-a-fold/
  33. set foldtext=CustomFoldText()
  34. function! CustomFoldText()
  35. "" Process line
  36. let fs = v:foldstart
  37. let fLinePrep = substitute(getline(fs), '\t\| ', '+---', 'g')
  38. let fLine = substitute(fLinePrep, ' {\{3}', '', 'g')
  39. "" Process line count and fold precentage
  40. let fSize = 1 + v:foldend - v:foldstart
  41. let fSizeStr = " (" . fSize . " lines) "
  42. let fLineCount = line("$")
  43. let fPercent = printf(" [%.1f", (fSize*1.0)/fLineCount*100) . "%] "
  44. "" Process fold level
  45. let fLevel = " {".v:foldlevel."} "
  46. "" Process filler string
  47. let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
  48. let expansionString = repeat(".", w - strwidth(fSizeStr.fLine.fPercent.fLevel))
  49. "return fLine . expansionString . fSizeStr . foldPercent . foldLevel
  50. return fLine . fSizeStr . fPercent . fLevel
  51. endfunction
  52. """ End Foldtext """ }}}
  53. endif
  54. """ End Folds Settings """ }}}
  55. "" Stop auto comment on new line
  56. autocmd FileType * setlocal formatoptions-=cro
  57. set shortmess+=atIT " Stop messages at vim launch
  58. runtime macros/matchit.vim " Add '%' matching to if/elsif/else/end
  59. "" Mutt settings
  60. " Support Format-Flowed in email (mutt).
  61. " Because it is a good-ness? http://joeclark.org/ffaq.html
  62. autocmd FileType mail setlocal fo+=aw tw=72
  63. "" vimdiff settings
  64. if &diff
  65. colorscheme slate
  66. endif
  67. "" Disable cache for pass
  68. autocmd VimEnter
  69. \ /dev/shm/pass.?*/?*.txt
  70. \,$TMPDIR/pass.?*/?*.txt
  71. \,/tmp/pass.?*/?*.txt
  72. \ set nobackup nowritebackup noswapfile noundofile
  73. "" auto resize slits on window resize
  74. autocmd VimResized * wincmd =
  75. "" auto detech csv files
  76. if exists("did_load_csvfiletype")
  77. finish
  78. endif
  79. let did_load_csvfiletype=1
  80. augroup filetypedetect
  81. au! BufRead,BufNewFile *.csv,*.dat setfiletype csv
  82. augroup END
  83. """ End Commands at Start """ }}}
  84. """ Plugins """ {{{
  85. if $USER != 'mobile'
  86. """ Setting up Vundle """ {{{
  87. "" From http://www.erikzaadi.com/2012/03/19/auto-installing-vundle-from-your-vimrc/
  88. let iCanHazVundle=1
  89. let vundle_readme=expand('~/.vim/bundle/vundle/README.md')
  90. if !filereadable(vundle_readme)
  91. echo "Installing Vundle.."
  92. echo ""
  93. silent !mkdir -p ~/.vim/bundle
  94. "" Disabled for git url
  95. "silent !git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle
  96. silent !git clone git://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
  97. let iCanHazVundle=0
  98. endif
  99. set rtp+=~/.vim/bundle/vundle/
  100. """""""call vundle#rc() ""commented out for vundle version bump change??
  101. call vundle#begin()
  102. "" Use git instead of http
  103. let g:vundle_default_git_proto = 'git'
  104. "" Have vundle first...
  105. Plugin 'gmarik/vundle'
  106. """ Bundles """ {{{
  107. ""Add your bundles here
  108. """ Style """ {{{
  109. Plugin 'altercation/vim-colors-solarized' " Solarized theme
  110. Plugin 'syntax-highlighting-for-tintinttpp' " Tintin++ syntax
  111. Plugin 'bling/vim-airline' " Even better than powerline/neatstatus
  112. Plugin 'nathanaelkane/vim-indent-guides' " vim-indent-guides default binding: <Leader>ig
  113. Plugin 'kien/rainbow_parentheses.vim' " Colorize parentheses and similar chars
  114. Plugin 'myusuf3/numbers.vim' " Make num ruler auto switch absolute/rel for insert/norm
  115. Plugin 'mhinz/vim-signify' " Add git diff
  116. Plugin 'mboughaba/i3config.vim' " i3 conf syntax
  117. """ End Style """ }}}
  118. """ Added Interface """ {{{
  119. Plugin 'scrooloose/nerdtree' " File browser
  120. Plugin 'bufexplorer.zip' " buffer browser
  121. Plugin 'sjl/gundo.vim' " Undo history tree
  122. "Plugin 'szw/vim-ctrlspace' " Super buffer controlness, disabled due to never using
  123. Plugin 'haya14busa/incsearch.vim' " Improved incremental searching
  124. Plugin 'spolu/dwm.vim' " dwm like split control
  125. """ End Interface """ }}}
  126. """ Added Functionality """ {{{
  127. Plugin 'tpope/vim-repeat' " Makes '.' repeat work with plugins
  128. Plugin 'scrooloose/nerdcommenter' " Make commenting easy
  129. Plugin 'YankRing.vim' " Improves copy/paste
  130. Plugin 'tpope/vim-fugitive' " git from vim
  131. Plugin 'scrooloose/syntastic' " Code syntax checker
  132. "Plugin 'SearchComplete' " Disabled due to killing UP arrow in search
  133. Plugin 'Lokaltog/vim-easymotion' " <prefix><prefix>motion
  134. Plugin 'chrisbra/csv.vim' " Good CVS file handling
  135. Plugin 'dhruvasagar/vim-table-mode' " Make easy tables
  136. "Plugin 'vim-scripts/Smart-Tabs' " Use \t for indents, and spaces elsewhere
  137. Plugin 'jamessan/vim-gnupg' " Transparent editing of gpg encrypted files
  138. Plugin 'ConradIrwin/vim-bracketed-paste' " Auto set pastemode when a bracketed paste detected. https://cirw.in/blog/bracketed-paste
  139. """ End Functionality """ }}}
  140. """ Misc """ {{{
  141. Plugin 'uguu-org/vim-matrix-screensaver' " Add unnecessary matrix screen saver
  142. Plugin 'takac/vim-hardtime' " Plugin to break bad movement habits
  143. """ End Misc """ }}}
  144. ""...All your other bundles...
  145. """ End Bundles """ }}}
  146. call vundle#end() " required
  147. if iCanHazVundle == 0
  148. echo "Installing Bundles, please ignore key map error messages"
  149. echo ""
  150. :PluginInstall
  151. endif
  152. """ End Setting Up Vundle """ }}}
  153. """ Plugin Confs """ {{{
  154. """ NERDtree config """ {{{
  155. "" Starts NERDtree if no file is give to vim at start
  156. "autocmd vimenter * if !argc() | NERDTree | endif
  157. """ End NERDtree """ }}}
  158. """ Vim Repeat Conf """ {{{
  159. "" This is to make repeat work for plugins too
  160. silent! call repeat#set("\<Plug>MyWonderfulMap", v:count)
  161. """ End Vim Repeat """ }}}
  162. """ Better Rainbow Parentheses """ {{{
  163. "" https://github.com/kien/rainbow_parentheses.vim
  164. """ Auto Rainbow """ {{{
  165. au VimEnter * RainbowParenthesesToggle
  166. au Syntax * RainbowParenthesesLoadRound
  167. au Syntax * RainbowParenthesesLoadSquare
  168. au Syntax * RainbowParenthesesLoadBraces
  169. """ End Auto """ }}}
  170. nmap <leader>[ :RainbowParenthesesToggle <CR>
  171. """ End Rainbow Parenthesis """ }}}
  172. """ YankRing Conf """ {{{
  173. "" :h yankring-tutorial
  174. nnoremap <silent> <F3> :YRShow<CR>
  175. inoremap <silent> <F3> <ESC>:YRShow<CR>
  176. map <silent> <prefix>y :YRShow<CR>
  177. let g:yankring_history_dir = '~/.vim'
  178. """ End YankRing """ }}}
  179. """ Solarized Theme """ {{{
  180. "call togglebg#map("<F6>")
  181. if has('gui_running')
  182. set background=light
  183. colorscheme solarized
  184. endif
  185. """ End Solarized """ }}}
  186. """ Gundo Conf """ {{{
  187. "" http://sjl.bitbucket.org/gundo.vim/
  188. nnoremap <F4> :GundoToggle<CR>
  189. """ End Gundo """ }}}
  190. """ Numbers.vim Conf""" {{{
  191. "" https://github.com/myusuf3/numbers.vim
  192. nnoremap <leader>n :NumbersToggle<CR>
  193. """ End Nunmbers.vim """ }}}
  194. """ Vim Indent Guides """ {{{
  195. "" https://github.com/nathanaelkane/vim-indent-guides
  196. "" <Leader>ig
  197. let g:indent_guides_auto_colors = 0
  198. "autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=236
  199. autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=240
  200. autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=244
  201. let g:indent_guides_enable_on_vim_startup = 1
  202. "let g:indent_guides_guide_size = 2
  203. let g:indent_guides_start_level = 2
  204. """ End Indent Guides """ }}}
  205. """ Airline Conf """ {{{
  206. "" Added to fix airline (forces status visibility)
  207. set laststatus=2
  208. "" Disable auto echo?
  209. let g:bufferline_echo = 0
  210. "" Remove default mode indicator
  211. set noshowmode
  212. "" Populate powerline symols
  213. let g:airline_powerline_fonts = 1
  214. """ End Airline Conf """ }}}
  215. """ Hardtime Conf """ {{{
  216. let g:hardtime_default_on = 0
  217. let g:hardtime_ignore_buffer_patterns = [ "CustomPatt[ae]rn", "NERD.*", "Task.*" ]
  218. nmap <leader>n :HardTimeToggle<CR>
  219. """ End Hardtime """ }}}
  220. """ Syntastic Conf """ {{{
  221. let g:syntastic_auto_loc_list=1
  222. """ End Syntastic """ }}}
  223. """ Vim-CtrlSpace Conf """ {{{
  224. "" https://github.com/szw/vim-ctrlspace
  225. "" Make work with airline
  226. let g:airline_exclude_preview = 1
  227. """ End Vim-CtrlSpace """ }}}
  228. """ Incsearch.vim Conf """ {{{
  229. "" https://github.com/haya14busa/incsearch.vim
  230. let g:incsearch#magic = '\v'
  231. map / <Plug>(incsearch-forward)
  232. map ? <Plug>(incsearch-backward)
  233. map g/ <Plug>(incsearch-stay)
  234. """ End Incsearch.vim """ }}}
  235. """ DWM.vim Conf """ {{{
  236. nnoremap <silent> <C-b> :call DWM_New()<CR>
  237. """ End DWM.vim Conf """ }}}
  238. """ End Plugin Confs """ }}}
  239. endif
  240. """ End Plugins """ }}}
  241. """ Theming """ {{{
  242. if has('gui_running')
  243. set background=light
  244. colorscheme solarized
  245. else
  246. colorscheme torte
  247. endif
  248. "" fix transparency
  249. hi! Normal ctermbg=NONE guibg=NONE
  250. """ End Theming """ }}}
  251. """ Options """ {{{
  252. """ Assorted """ {{{
  253. set autoread " Reload files changed outside vim
  254. set encoding=utf8 " Sets encoding View
  255. set scrolloff=3 " Show next three lines scrolling
  256. set sidescrolloff=2 " Show next two columns scrolling
  257. set ttyfast " Indicates a fast terminal connection
  258. set splitbelow " New horizontal splits are below
  259. set splitright " New vertical splits are to the right
  260. set history=1000 " Increase command/search history
  261. set confirm " Vim prompts for :q/:qa/:w issues
  262. """ End Assorted """ }}}
  263. """ HUD """ {{{
  264. set number " Adds line numbers
  265. set showcmd " Show incomplete cmds down the bottom
  266. "" Disabled for air-line
  267. "set showmode " Shows input or replace mode at bottom
  268. set ruler " Show position in bottom right
  269. """ End HUD """ }}}
  270. """ Input """ {{{
  271. set virtualedit=block,onemore " Cursor can move one past EOL, and free in Visual mode
  272. " set virtualedit=all " Allow virtual editing, all modes.
  273. set mouse=a " Enable mouse, all modes
  274. set backspace=indent,eol,start " Allow backspace in insert mode
  275. """ End Input """ }}}
  276. """ Mac kill damn bold """ {{{
  277. if has('mac')
  278. set t_Co=256 " FORCE 256 colors in vim
  279. endif
  280. """ End Mac """ }}}
  281. """ Wild Stuffs... """ {{{
  282. set wildmenu " Show list instead of just completing
  283. set wildmode=list:longest,full " Command <Tab> completion, list matches, then longest common part, then all.
  284. "" From http://blog.sanctum.geek.nz/lazier-tab-completion/
  285. if exists("&wildignorecase")
  286. set wildignorecase " Ignore case in file name completion
  287. endif
  288. "" From http://bitbucket.org/sjl/dotfiles/overview
  289. set wildignore+=.hg,.git,.svn " Version control
  290. set wildignore+=*.aux,*.out,*.toc " LaTeX intermediate files
  291. set wildignore+=*.jpg,*.bmp,*.gif,*.png,*.jpeg " binary images
  292. set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest " compiled object files
  293. set wildignore+=*.spl " compiled spelling word lists
  294. set wildignore+=*.sw? " Vim swap files
  295. set wildignore+=*.DS_Store " OSX bullshit
  296. set wildignore+=*.luac " Lua byte code
  297. set wildignore+=migrations " Django migrations
  298. set wildignore+=*.pyc " Python byte code
  299. set wildignore+=*.orig " Merge resolution files
  300. "" Clojure/Leiningen
  301. set wildignore+=classes
  302. set wildignore+=lib
  303. """ End Wild """ }}}
  304. """ Show Hidden Chars """ {{{
  305. set list " Shows certain hidden chars
  306. set listchars=eol:¬,tab:▶-,trail:~,extends:>,precedes:<,nbsp:·
  307. hi NonText ctermfg=darkgray " Makes trailing darkgray
  308. hi SpecialKey ctermfg=darkgray " Makes Leading darkgray
  309. """ End Hidden Chars """ }}}
  310. """ Spelling """ {{{
  311. set spell " Spelling hilight on
  312. " highlight SpellBad cterm=underline ctermfg=red
  313. hi SpellBad cterm=underline ctermbg=NONE
  314. hi SpellCap cterm=underline ctermbg=NONE
  315. """ End Spelling """ }}}
  316. """ Tab Windows """ {{{
  317. set hidden " Hides buffers, instead of closing, or forcing save
  318. set showtabline=2 " shows the tab bar at all times
  319. set tabpagemax=100 " max num of tabs to open on startup
  320. hi TabLineSel ctermbg=Yellow " Current Tab
  321. hi TabLine ctermfg=Grey ctermbg=DarkGrey " Other Tabs
  322. hi TabLineFill ctermfg=Black " Rest of line
  323. hi Title ctermfg=DarkBlue ctermbg=None " Windows in Tab
  324. """ End Tab Windows """ }}}
  325. """ Tab Key Settings """ {{{
  326. "" prefer tabs now...
  327. set expandtab "" use spaces, not tabs
  328. set tabstop=4 " Set Tab length
  329. set shiftwidth=4 " Affects when you press >>, << or ==. And auto indent.
  330. set shiftround " Uses multiple of shiftwidth when indenting with '<' and '>'
  331. set softtabstop=4 " With space indenting, lets vim delete multiple spaces at once
  332. "" disabled per https://stackoverflow.com/questions/234564/tab-key-4-spaces-and-auto-indent-after-curly-braces-in-vim
  333. " set smarttab " Insert Tabs at ^ per shiftwidth, not tabstop
  334. set autoindent " Always set auto indenting on
  335. set copyindent " Copy prior indentation on autoindent
  336. """ End Tab Key """ }}}
  337. """ Searching """ {{{
  338. " Use real regex search
  339. nnoremap / /\v
  340. vnoremap / /\vi
  341. set hlsearch " Highlight matches
  342. set incsearch " Incremental searching
  343. set ignorecase " Searches are case insensitive...
  344. "" Disabled as was annoying with command completion
  345. "set smartcase " ...unless contains oneplus Cap letter
  346. set showmatch " Show matching brackets/parenthesis
  347. set gdefault " Applies substitutions globally on lines. Append 'g' to invert back.
  348. set synmaxcol=800 " Don't highlight lines longer than 800 chars
  349. set wrapscan " Scan wraps around the file
  350. """ End Searching """ }}}
  351. """ Backup Settings """ {{{
  352. """ Dir Validation """ {{{
  353. if !isdirectory(expand("~/.vim/back/"))
  354. call mkdir(expand("~/.vim/back/"), "p")
  355. endif
  356. if !isdirectory(expand("~/.vim/swap/"))
  357. call mkdir(expand("~/.vim/swap/"), "p")
  358. endif
  359. if !isdirectory(expand("~/.vim/undo/"))
  360. call mkdir(expand("~/.vim/undo/"), "p")
  361. endif
  362. """ End Dir """ }}}
  363. set backup " Enable backups
  364. set undofile " Enable undo file
  365. set undoreload=10000
  366. set backupdir=~/.vim/back// " back files, // for full path
  367. set directory=~/.vim/swap// " swap files, // for full path
  368. set undodir=~/.vim/undo// " undo files, // for full path
  369. """ End Backup Settings """ }}}
  370. """ Timeout Settings """ {{{
  371. set timeout " :mapping time out
  372. set timeoutlen=1000 " :mapping time out length
  373. set ttimeout " Key code time out
  374. set ttimeoutlen=50 " key code time out length
  375. """ End Timeout """ }}}
  376. """ End Options """ }}}
  377. """ Aliases """ {{{
  378. command! BI BundleInstall
  379. """ End Aliases """ }}}
  380. """ Functions """ {{{
  381. """ DiffSaved """ {{{
  382. "" To compare current vs saved version
  383. "" http://vim.wikia.com/wiki/Diff_current_buffer_and_the_original_file
  384. "" To get out of diff view you can use the :diffoff command.
  385. function! s:DiffWithSaved()
  386. let filetype=&ft
  387. diffthis
  388. vnew | r # | normal! 1Gdd
  389. diffthis
  390. exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
  391. endfunction
  392. com! DiffSaved call s:DiffWithSaved()
  393. """End DiffSaved """ }}}
  394. """ HighlightRepeats """ {{{
  395. "" from https://stackoverflow.com/questions/1268032/how-can-i-mark-highlight-duplicate-lines-in-vi-editor
  396. function! HighlightRepeats() range
  397. let lineCounts = {}
  398. let lineNum = a:firstline
  399. while lineNum <= a:lastline
  400. let lineText = getline(lineNum)
  401. if lineText != ""
  402. let lineCounts[lineText] = (has_key(lineCounts, lineText) ? lineCounts[lineText] : 0) + 1
  403. endif
  404. let lineNum = lineNum + 1
  405. endwhile
  406. exe 'syn clear Repeat'
  407. for lineText in keys(lineCounts)
  408. if lineCounts[lineText] >= 2
  409. exe 'syn match Repeat "^' . escape(lineText, '".\^$*[]') . '$"'
  410. endif
  411. endfor
  412. endfunction
  413. command! -range=% HighlightRepeats <line1>,<line2>call HighlightRepeats()<F29>
  414. """ End HighlightRepeats """ }}}
  415. """ End Functions """ }}}
  416. """ Key Bindings """ {{{
  417. let mapleader="," " Change the mapleader from '\' to ','
  418. map <leader>/ :noh<return> " <leader>/ will clear search hilights!
  419. """ Quickly edit/reload the vimrc file """ {{{
  420. "" maps the ,ev and ,sv keys to edit/reload .vimrc.
  421. nmap <silent> <leader>ev :tabedit $MYVIMRC<CR>
  422. nmap <silent> <leader>sv :so $MYVIMRC<CR>
  423. """ End reload """ }}}
  424. """ Paste Toggle, for stopping formating of pastes """ {{{
  425. nnoremap <F2> :set invpaste paste?<CR>
  426. set pastetoggle=<F2>
  427. nmap <leader>p :set invpaste paste?<CR>
  428. """ End Paste Toggle """ }}}
  429. """ Vim Tab Window Keysbindings """ {{{
  430. " nnoremap <C-Left> :tabprevious<CR>
  431. " nnoremap <C-Right> :tabnext<CR>
  432. " nnoremap <silent> <A-Left> :execute 'silent! tabmove ' . (tabpagenr()-2)<CR>
  433. " nnoremap <silent> <A-Right> :execute 'silent! tabmove ' . tabpagenr()<CR>
  434. """ End Tab Window Keys """ }}}
  435. """ Navigate Splits """ {{{
  436. "" uses ',' key first
  437. map <leader>h :wincmd h<CR>
  438. map <leader>j :wincmd j<CR>
  439. map <leader>k :wincmd k<CR>
  440. map <leader>l :wincmd l<CR>
  441. map <leader> <Left> :wincmd h<CR>
  442. map <leader> <Down> :wincmd j<CR>
  443. map <leader> <Up> :wincmd k<CR>
  444. map <leader> <Right> :wincmd l<CR>
  445. """ End Navigate Splits """ }}}
  446. """ Toggle colorcolumn """ {{{
  447. highlight ColorColumn ctermbg=Brown
  448. function! g:ToggleColorColumn()
  449. if &colorcolumn != ''
  450. setlocal colorcolumn&
  451. else
  452. setlocal colorcolumn=77
  453. endif
  454. endfunction
  455. nnoremap <silent> <leader>L :call g:ToggleColorColumn()<CR>
  456. """ End Toggle colorcolumn """ }}}
  457. """ Cross Hairs """ {{{
  458. hi CursorLine cterm=NONE ctermbg=darkgrey ctermfg=white guibg=darkred guifg=white
  459. hi CursorColumn cterm=NONE ctermbg=darkgrey ctermfg=white guibg=darkred guifg=white
  460. nnoremap <Leader>+ :set cursorline! cursorcolumn!<CR>
  461. """ End Cross Hair """ }}}
  462. """ DiffOrig """ {{{
  463. "command DiffOrig let g:diffline = line('.') | vert new | set bt=nofile | r # | 0d_ | diffthis | :exe "norm! ".g:diffline."G" | wincmd p | diffthis | wincmd p
  464. command! DiffOrig let g:diffline = line('.') | vert new | set bt=nofile | r # | 0d_ | diffthis | :exe 'norm! '.g:diffline.'G' | wincmd p | diffthis | wincmd p
  465. nnoremap <Leader>do :DiffOrig<cr>
  466. nnoremap <leader>dc :q<cr>:diffoff<cr>:exe "norm! ".g:diffline."G"<cr>
  467. """ End DiffOrig """ }}}
  468. """ Sudo Save Edit """ {{{
  469. "" Use :W to sudo save, may mess with permissions
  470. command! WW w !sudo tee % > /dev/null
  471. """ End Sudo Save """ }}}
  472. """ Typo Commands """ {{{
  473. "" http://blog.sanctum.geek.nz/vim-command-typos/
  474. if has("user_commands")
  475. command! -bang -nargs=? -complete=file E e<bang> <args>
  476. command! -bang -nargs=? -complete=file W w<bang> <args>
  477. command! -bang -nargs=? -complete=file Wq wq<bang> <args>
  478. command! -bang -nargs=? -complete=file WQ wq<bang> <args>
  479. command! -bang Wa wa<bang>
  480. command! -bang WA wa<bang>
  481. command! -bang Q q<bang>
  482. command! -bang QA qa<bang>
  483. command! -bang Qa qa<bang>
  484. endif
  485. """ End Typo """ }}}
  486. """ End Key Bindings """ }}}
  487. """ Notes To Self """ {{{
  488. "" Consider:
  489. " set foldopen=
  490. """ End Notes """ }}}