Created
March 25, 2012 00:10
-
-
Save vishwassharma/2189823 to your computer and use it in GitHub Desktop.
Biggest vimfile ever
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" ========================= | |
" _ __(_)__ _ ________ | |
" _| |/ / // ' \/ __/ __/ | |
" (_)___/_//_/_/_/_/ \__/ | |
" ========================= | |
" Author: stardiviner ( numbchild at gmail dot com ) | |
" [[ vim Settings ]] {{{2 | |
" :echo $MYVIMRC | |
set nocompatible " not vim compatible. must be first one, will affect other options. | |
set ttyfast " for tmux, screen. when TERM=screen, rxvt etc. | |
" [ updating vimrc file on the fly ] {{{ | |
"if has("autocmd") | |
"autocmd bufwritepost .vimrc source $MYVIMRC | |
"endif | |
nnoremap <Leader>ev :vsplit $MYVIMRC<CR> | |
" Edit my Vimrc file. | |
nnoremap <Leader>sv :source $MYVIMRC<CR> | |
" }}} | |
" [ system detection ] {{{ | |
"if system('uname -v') =~ 'Ubuntu' | |
"endif | |
" }}} | |
" [ GUI ] {{{ | |
" :help gui.txt :help gui_x11.txt | |
if has("gui") | |
set t_Co=256 | |
colorscheme molokai | |
set guifont=Monospace\ 9,DejaVu\ Sans\ 9,Ubuntu\ 9,Monaco\ 9 | |
set guioptions-=mTrRlLb | |
" m - Display a menu bar. | |
" T - Display a toolbar. | |
" r - Always display the right-hand scrollbar. | |
" R - Display the right-hand scrollbar if the window is split vertically. | |
" l - Always display left-hand scrollbar. | |
" L - Display the left-hand scrollbar if the window is split vertically. | |
" b - Display the horizontal scrollbar. | |
endif | |
" }}} | |
" [ mouse ] {{{ In many terminal emulators the mouse works just fine, thus enable it. | |
set mouse="" " disable mouse | |
"if has('mouse') | |
"set mouse=a | |
"endif | |
" }}} | |
" [ help ] {{{ vim internal HELP | |
" nnoremap K <ESC>:exec "help".expand("<cWORD>")<CR> | |
" nnoremap K <ESC>:exec "help" expand("<cword>")<CR> | |
" autocmd FileType tex nnoremap <buffer> K :exec "help" expand("<cword>")<CR> | |
autocmd FileType sh,vimwiki,config,none | |
\ setlocal keywordprg="man" | |
autocmd FileType vim,help | |
\ let &keywordprg=":help" | |
" }}} | |
" [ history ] {{{ | |
set history=256 " history lines | |
" undo | |
set undolevels=1000 | |
" }}} | |
" [ command line ] {{{ :help cmdline-completion | |
set wildmenu " show matches above the command line, ( overwriting status line. ) | |
set wildchar=<Tab> " <Tab> to complete in cmdline. | |
set wildignorecase " ignore case when completing file names and directories. | |
set wildmode=list:full " or use list,longest | |
" }}} | |
" [ encode ] {{{ | |
set encoding=utf-8 | |
set fileencoding=utf-8 | |
set fileencodings=utf-8,ucs-bom,enc-cn,cp936,gbk,latin1 | |
" "set isfname+=32 " let vim support filename with white spaces when using "gf". | |
" }}} | |
" [ register ] {{{ | |
" you can use ["+p and "+y] to paste and yank | |
set clipboard+=unnamed " "* is the clipboard register, | |
" set pastetoggle=<F8> " toggle between paste and normal: for 'safer' pasting from keyboard | |
" }}} | |
" [ modeline ] {{{ | |
set modeline " =/* vim: set ai ft=config: */ | |
set modelines=2 " the number of lines that is checked for set commands. | |
set colorcolumn=80 " highlight column after 'textwidth', a red line. | |
" set cc=+1,+2,+3 " highlight three columns after 'textwidth' | |
" set colorcolumn=4,+1 | |
" add bellowing to colorscheme file. | |
" hi ColorColumn ctermfg=000 ctermbg=220 | |
" }}} | |
" [ buffer ] {{{ | |
set autowrite " auto write when changed | |
set autoread " auto read changed files | |
set updatetime=4000 " Bundle showmarks need lower updatetime to refresh marks. | |
set confirm " confirm current buffer. | |
set backup " keep a backup file | |
set backupdir=$HOME/backup-vim/ " backup dir | |
set backupcopy=auto | |
set dir=.,~/.tmp,/var/tmp,/tmp " swap file dir | |
" }}} | |
" [ tags ] {{{ | |
set tags=./.tags " walk directory tree upto $HOME looking for tags | |
set backspace=2 " more powerful backspace | |
" }}} | |
" [ search ] {{{ | |
set incsearch hlsearch wrapscan " do incremental searching, wrapscan used for ]s and [s spelling mistake. | |
set ignorecase smartcase " smartcase will override ignorecase when type with upper case characters. | |
set showmatch | |
" }}} | |
" [ spell check ] {{{ C-X,C-N,C-P ]s [s zg zw zuw zug z= :help spell.txt | |
set nospell | |
autocmd FileType mail,tex,markdown,org,tpp setlocal spell " vim default spellcheck | |
" FIXME it will check vim help file. | |
autocmd FileType help setlocal nospell | |
set spelllang=en_us | |
set spellcapcheck="[.?!]\_[\])\" \t]\+" | |
set spellsuggest=best " default and fast list. | |
set spellfile=~/.vim/spell/en.utf-8.add " 'zg' add to this file. | |
nnoremap <silent> <Leader>sc :set spell!<CR> | |
" }}} | |
" [ completion ] {{{ AutoPop Tab Ctrl-Y Ctrl-E | |
set mousemodel=extend | |
" TODO set mouseshape= | |
set cmdheight=1 " command line height | |
set autochdir " auto change dir | |
set dictionary=~/.vim/misc/words " dictionary for "k", '/usr/share/dict/words' | |
set complete=".,w,b,t,i,u,kspell" " completion buffers | |
" set complete=.,w,b,u,k,t,i " completion buffers | |
" | | | | | | | | |
" | | | | | | `-current and included files | |
" | | | | | `-tags completion | |
" | | | | `-dict | |
" | | | `-unloaded buffers | |
" | | `-other loaded buffers | |
" | `-buffers in other windows | |
" `-the current buffer | |
" set file path completion. | |
set path+=.,/usr/local/include,/usr/include,, | |
set showcmd " show (partial) command in the last line of screen. | |
" ignore those files when completion. | |
set wildignore+=*.swp,*.svn,*.git,cvs,*.o,*.obj,*.pyc,*.pyo,*.png,*.gif,*.jpg,*.jpeg,*.bmp,*.tiff | |
set report=0 " always report changed lines | |
" new-omni-completion ( internal ) Ctrl-X,Ctrl-* | |
set completeopt=menu,preview | |
" set pumheight= " set popup menu height. | |
" set completefunc " actually find the matches. | |
" [ omni ] {{{ complete things with "<C-X><C-O>" | |
set omnifunc=syntaxcomplete#Complete " for other languages | |
" inoremap <C-space> <C-x><C-o> | |
" SuperCleverTab() for omni-completion or insert <Tab> {{{ | |
function! SuperCleverTab() | |
if strpart(getline('.'), 0, col('.') - 1) =~ '^\s*$' | |
return "\" | |
else | |
if &omnifunc != '' | |
return "\\" | |
elseif &dictionary != '' | |
return "\" | |
else | |
return "\" | |
endif | |
endif | |
endfunction | |
inoremap <Tab> <C-R>=SuperCleverTab()<cr> | |
" }}} | |
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete | |
autocmd FileType c setlocal omnifunc=ccomplete#Complete | |
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags | |
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS | |
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS | |
autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete | |
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags | |
autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP | |
autocmd FileType sql setlocal omnifunc=sqlcomplete#Map('sqlKeyword') " FIXME sqlcomplete#??? | |
let g:ftplugin_sql_omni_key = '<C-c>' | |
" <C-c>[akfoTsvclLR] | |
" (All items, Keyword, Function, Option, Type, Statement, View, columns, list, list, Regenerate.) | |
" }}} | |
" }}} | |
" [ session ] {{{ | |
" set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize " for :mksession | |
au BufReadPost * | |
\if line("'\"") > 1 && line("'\"") <= line("$") | |
\| exe "normal! g`\"" | |
\| endif | |
set viminfo='10,\"100,:20,%,n~/.viminfo " help :viminfo , notice permission is wrong on viminfo | |
" }}} | |
" [ bell ] {{{ | |
set errorbells " error bells | |
set visualbell " visual bells | |
" }}} | |
" }}} | |
" [[ looks ]] {{{2 | |
" [ basic looks ] {{{ | |
set number " show number | |
" set relativenumber | |
set numberwidth=3 " minimal number of columns for line number. | |
set wrap " how text displayed. | |
set sidescroll=1 | |
set scrolloff=10 " show some lines up and down of cursor, 999 will let cursor always in middle. | |
set magic " to avoid portability problems with using patterns. always keep this option on. | |
" }}} | |
" [ colorscheme ] {{{ | |
" if $COLORTERM == 'gnome-terminal' | |
if $TERM == "rxvt-unicode-256color" || $TERM == "screen-256color" || $TERM == "xterm-256color" | |
set t_Co=256 | |
"colorscheme molokai | |
else | |
colorscheme wombat256mod | |
endif | |
" }}} | |
" [ cursor ] {{{ :help terminal-options | |
" color from /etc/x11/rgb.txt | |
" [ cursor color ] | |
"if &term =~ "rxvt-unicode-256color\\|rxvt-unicode" | |
" set ttyfast | |
"let &t_EI = "\<Esc>]12;RoyalBlue1\x9c" | |
"let &t_SI = "\<Esc>]12;IndianRed1\x9c" | |
"silent !echo -e "\e]12;orange\x9c" | |
"elseif &term =~ "screen" " screen in urxvt or xterm | |
":silent !echo -ne "\eP\e]12;IndianRed2\007\e\\" | |
"let &t_SI = "\eP\e]12;RoyalBlue1\007\e\\" | |
"let &t_EI = "\eP\e]12;IndianRed2\007\e\\" | |
"autocmd VimLeave * :!echo -ne "\eP\e]12;green\007\e\\" | |
"elseif &term =~ "xterm" | |
":silent !echo -ne "\e]12;IndianRed2\007" | |
"let &t_SI = "\e]12;RoyalBlue1\007" | |
"let &t_EI = "\e]12;IndianRed2\007" | |
"autocmd VimLeave * :!echo -ne "\e]12;green\007" | |
"elseif &term =~ "xterm\\|rxvt" | |
"let &t_SI = "\<Esc>]12;orange\x7" | |
"let &t_EI = "\<Esc>]12;red\x7" | |
"silent !echo -ne "\033]12;red\007" | |
"" reset cursor when vim exits | |
"autocmd VimLeave * silent !echo -ne "\033]112\007" | |
"" use \003]12;gray\007 for gnome-terminal | |
" endif | |
" [ cursor shape ] | |
" = '\<Esc>[1 q' . 1 or 0 > blinking block, 2 > solid block, 3 > blinking underscore, 4 > " solid underscore. | |
"if &term =~ 'rxvt-unicode-256color\\|rxvt-unicode' | |
"let &t_SI = "\<Esc>[1 q" | |
"let &t_EI = "\<Esc>[3 q" | |
"elseif &term =~ '^xterm' | |
"let &t_SI .= "\<Esc>[4 q" | |
"let &t_EI .= "\<Esc>[2 q" | |
"" =~ "^xterm" | |
"" let &t_SI = "\<Esc>]12;purple\x7" | |
"" let &t_EI = "\<Esc>]12;blue\x7" | |
"else | |
"let &t_SI = "\<Esc>]50;CursorShape=2\x7" | |
"let &t_EI = "\<Esc>]50;CursorShape=4\x7" | |
"endif | |
" }}} | |
" hilight current line {{{ | |
autocmd InsertLeave * set cursorline | |
autocmd InsertEnter * set cursorline | |
" only highlight column in current window. | |
au WinLeave * set nocursorline nocursorcolumn | |
au WinEnter * set cursorline cursorcolumn | |
set cursorline | |
set cursorcolumn " set uplight cursorline | |
" }}} | |
" [ fold ] {{{3 | |
set foldenable " enable fold | |
set foldmethod=indent " indent, syntax, manual, expr, diff, marker | |
set foldnestmax=3 " maximum nesting of fold | |
set foldlevel=2 " fold start from which level | |
set foldlevelstart=1 " default which foldlevel to start fold. | |
set foldmarker={{{,}}} " fold marker | |
set foldminlines=3 " fold minlines | |
set foldcolumn=0 " 3 colums ahead of line number. | |
nnoremap <SPACE> za | |
"set foldtext=VimrcFoldText() " {{{ | |
"function! VimrcFoldText() | |
"let line = foldtext() | |
"let foldSize = 1 + v:foldend - v:foldstart | |
"let lineCount = line("$") | |
"let foldPercentage = printf("%4.1f", (foldSize*1.0)/lineCount*100) | |
"" Show fold Percentage along with # of lines | |
"return substitute(line, '^\([-+]\+\)\(\s\+\)\(\d\+\) lines', '\1 '.foldPercentage.'%\2(\3 lines)', 'g') | |
"endfunction " }}} | |
set foldtext=VimrcFoldText() " {{{ | |
function! VimrcFoldText() | |
" get first non-blank line | |
let fs = v:foldstart | |
while getline(fs) =~ '^\s*$' | |
let fs = nextnonblank(fs + 1) | |
endwhile | |
if fs > v:foldend | |
let line = getline(v:foldstart) | |
else | |
let line = getline(fs) | |
endif | |
let line = substitute(line, '/\*\|\*/\|{'.'{{\d\=', '', 'g')." " | |
let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0) | |
let foldSize = 1 + v:foldend - v:foldstart | |
let foldSizeStr = " " . foldSize . " lines " | |
let foldLevelStr = repeat("+--", v:foldlevel) | |
let lineCount = line("$") | |
let foldPercentage = "[" . printf("%4.1f", (foldSize*1.0)/lineCount*100) . "%] " | |
" let expansionString = repeat("-", w - strlen(foldSizeStr) - strlen(line) - strlen(foldLevelStr) - strlen(foldPercentage)) | |
let expansionString = repeat(" ", w - strlen(foldSizeStr) - strlen(line) - strlen(foldLevelStr) - strlen(foldPercentage)) | |
return line . foldSizeStr . foldLevelStr . expansionString . foldPercentage | |
endfunction | |
" }}} | |
" }}} | |
" [ syntax ] {{{ | |
syntax enable " enable syntax highlighting | |
syntax on " follows colorscheme to highlight. | |
" }}} | |
" [ indent ] {{{ | |
set autoindent " smartindent is stupid cause 'cindent' | |
" set whichwrap=b,s,h,l,<,>,~,[,] " everything wraps | |
" | | | | | | | | | | |
" | | | | | | | | +-- "]" Insert and Replace | |
" | | | | | | | +-- "[" Insert and Replace | |
" | | | | | | +-- "~" Normal | |
" | | | | | +-- <Right> Normal and Visual | |
" | | | | +-- <Left> Normal and Visual | |
" | | | +-- "l" Normal and Visual (not recommended) | |
" | | +-- "h" Normal and Visual (not recommended) | |
" | +-- <Space> Normal and Visual | |
" +-- <BS> Normal and Visual | |
" }}} | |
" [ filetype ] {{{ | |
filetype plugin indent on " combine three into one. | |
" filetype on " enables filetype detection | |
" filetype plugin on " enables filetype specific plugins | |
" filetype indent on " | |
" }}} | |
" [ tab ] {{{ | |
set tabstop=4 | |
set expandtab | |
set softtabstop=4 | |
set shiftwidth=4 | |
set smarttab | |
" }}} | |
" [ text ] {{{ | |
set textwidth=100 " =0:unlimited, limit textwidth to prevent your from nesting more code blocks. | |
set formatprg="" " default is "" | |
set formatoptions=tcq " vim default is "tcq". | |
set commentstring=/*%s*/ " OR #%s | |
" set listchars=tab:>-,trail:·,eol:$ | |
" nnoremap <silent> <Leader>s :set nolist!<CR> | |
" }}} | |
" [ conceal ] {{{ | |
set conceallevel=2 " 0,1,2,3 | |
set concealcursor="nc" " n: normal, v: visual, i: insert, c: command line editing. | |
" }}} | |
" [ title ] {{{ | |
" set title " dynamic title | |
set notitle " for tmux session can set window name. | |
set titleold="Hack Opened Vim" | |
set titlestring=%F\ -\ Vim | |
" set titlelen=95 | |
" }}} | |
" [ statusline ] {{{ | |
set laststatus=2 " show a nicer status bar. | |
" item form: %-0{minwid}.{maxwid}{item} --> minwid: min-width, | |
" %4 width, %-4 padding on the right instead of the left. %= switch to right side. | |
" %04l pad with zeros instead of spaces. like 0012. | |
" %.20F change the maximum width. The path will be truncated if necessary: <hapters/17.markdown. | |
set statusline=\%#StatusSeparator#\|\%#StatusBufferNumber#\b\:%n\%#StatusSeparator#\| | |
\\%#StatusReadOnly#\ \%r\ \%#StatusModFlag#\%m\ \%#StatusList#\%q | |
\\ \%#StatusChar#\♪\ \»\ \%#StatusFileType#\%y | |
\\ \%#StatusFugitive#\%{fugitive#statusline()} | |
\\ \%#StatusFilePath#\%<%F\ \%#StatusHELP#\%H | |
\\ %=\ %<%-15(\%#StatusNormal#\%{&ff}\%#StatusChar#\•\%#StatusNormal#\%{&fenc}%) | |
\\ \%#StatusChar#\⌘\ \%#StatusLineNumber#\%-(L:%l/%L\ C:%c%V%)\ \%#StatusPercent#\%P | |
set shortmess="lnxtT" " short on status line message : default is "filnxtToO" | |
set ruler " show the cursor position all the time in status line. | |
set showmode " show editing mode. | |
" }}} | |
" }}} | |
" [[ key bindings ]] {{{2 | |
" NOTICE use nonrecursive mapping. | |
" Each of the *map commands has a *noremap counterpart that ignores other mappings: | |
" nnoremap, vnoremap, and inoremap. onoremap(operator). | |
" mapping a sequence of multiple keys. like: nnoremap jk dd | |
" buffer-local options and mapping. like: inoremap <buffer> <leader>d dd | |
" Operator-Pending mapping, like dw (d: Operator, w: movement), | |
" [ key prefix -> Leader ] {{{ | |
let mapleader = '\' | |
"let g:mapleader="," | |
" local leader <LocalLeader> for (specific buffers) certain types of files like Python or HTML. | |
let maplocalleader = '\' | |
" }}} | |
" speed up pressing | |
" inoremap jk <esc> | |
" inoremap <esc> <nop> " (no operation) | |
" F1~12 {{{ | |
" TODO write a function to display this list in a window or prompt. use FunctionKeyToggle. | |
" F1 -- pyref | |
" F2 -- vim internal help. | |
" F6 -- VimRoom | |
" F7 -- Gundo Toggle | |
" F8 -- TagmaBufMgr (buffers) | |
" F9 -- SingleCompile | |
" F10 -- :make / SingleCompileRun | |
" F11 -- NERDTree Toggle | |
" F12 -- Taglist | |
" }}} | |
" [ ins-completion ] {{{ CTRL-E: stop, CTRL-Y: accept. | |
" i_CTRL-X_CTRL-L -- whole lines | |
" i_CTRL-X_CTRL-N -- keywords in current file | |
" i_CTRL-X_CTRL-K -- keywords in dictionary | |
" i_CTRL-X_CTRL-T -- keywords in thesaurus, thesaurus-style | |
" i_CTRL-X_CTRL-I -- keywords in the current and included files | |
" i_CTRL-X_CTRL-] -- tags | |
" i_CTRL-X_CTRL-F -- file names | |
" i_CTRL-X_CTRL-D -- definitions or macros | |
" i_CTRL-X_CTRL-V -- vim command-line | |
" i_CTRL-X_CTRL-U -- user defined completion | |
" i_CTRL-X_CTRL-O -- omni completion | |
" i_CTRL-X_s -- spelling suggestions | |
" i_CTRL-N -- keyword in 'complete' | |
" }}} | |
" TODO add an if condition to detect cwindow or lwindow, and bind this function into one key. | |
" so that you can use same <A-n/p> for next and previous. | |
"if (empty(getloclist(0))=='1') | |
"" command: :copen QuickFix window. | |
" nnoremap <F3> :botright cwindow<CR> | |
"help eval.txt | |
"elseif (empty(getqflist() | |
"" command: :lopen LocationList window. | |
" nnoremap <F4> :botright lwindow<CR> | |
"endif | |
"nnoremap <expr> <A-n> (&buftype=='quickfix'?':cn':':lnext')."\n" | |
"nnoremap <expr> <A-p> (&buftype=='quickfix'?':cp':':lprev')."\n" | |
" }}} | |
" [[ functions ]] {{{2 | |
" Vimscript functions must start with a capital letter if they are unscoped! | |
" you can call function with ":source file.vim" then ":call" | |
" [ complete dictionary words ] {{{ <Tab> OR <c-j> to complete words. | |
"function! Tab_Or_Complete() | |
"if col('.')>1 && strpart( getline('.'), col('.')-2, 3 ) =~ '^\w' | |
"return "\<c-j>" | |
"else | |
"return "\<Tab>" | |
"endif | |
"endfunction | |
"inoremap <Tab> <C-R>=Tab_Or_Complete()<CR> | |
"autocmd FileType text,mail,vimwiki,markdown,none | |
"\ inoremap <Tab> <C-R>=Tab_Or_Complete()<CR> | |
" }}} | |
" auto remove any extra whitespaces from the ends of lines | |
" autocmd BufWritePre *.py normal m`:%s/\s\+$//e`` | |
" NOTICE autocmd group to avoid many times of autocmd when source file again. | |
"augroup testgroup | |
"autocmd! " used to clean augroup, because vim will combine many augroups. | |
"autocmd BufWrite * :echom "Foo" | |
"autocmd BufWrite * :echom "Bar" | |
"augroup END | |
" execute mode {{{ | |
"function! ScriptExecute() | |
":!chmod u+x % | |
":w | |
"endfunction | |
"autocmd BufWritePost *.sh :call ScriptExecute() | |
"autocmd BufWritePost *.pl :call ScriptExecute() | |
" }}} | |
" auto remove any extra whitespaces from the ends of lines, to do it when | |
" autocmd BufWritePre *.py normal m`:%s/\s\+$//e`` | |
" {{{ Visual OR :10,50TOhtml :TOhtml | |
" convert code to HTML used for website or paste | |
" let g:html_no_progress = 1 " disable progress. | |
let g:html_number_lines = 1 " 1: enable linenumber, 0: no linenumber. (default: unlet g:html_number_lines) | |
let g:html_use_css = 1 " generate CSS file. | |
let g:html_ignore_folding = 0 " does not ignore fold. | |
let g:html_dynamic_folds = 1 " mouse over will expand fold on html | |
let g:html_no_foldcolumn = 0 " show foldcolumn too for dynamic_folds. | |
let g:html_hover_unfold = 1 " unfold when mouse hover. | |
" let g:html_no_pre = 1 " do not use <pre> | |
let g:html_expand_tabs = 1 | |
" let g:html_diff_one_file = 1 " disable diff when in diff mode. | |
" let g:html_whole_filler = 1 | |
let g:html_use_encoding = "UTF-8" | |
" let g:html_use_xhtml = 1 " use XHTML instead of HTML. | |
" script: | |
" for f in *.[ch]; do gvim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" $f; done | |
" command :MyToHtml | |
" Now you can select a range of lines, type :MyToHtml and use the result to post your code | |
" to an HTML-enabled web forum. | |
function! MyToHtml(line1, line2) | |
" make sure to generate in the correct format | |
let old_css = 1 | |
if exists('g:html_use_css') | |
let old_css = g:html_use_css | |
endif | |
let g:html_use_css = 0 | |
" generate and delete unneeded lines | |
exec a:line1.','.a:line2.'TOhtml' | |
%g/<body/normal k$dgg | |
" convert body to a table | |
%s/<body\s*\(bgcolor="[^"]*"\)\s*text=\("[^"]*"\)\s*>/<table \1 cellPadding=0><tr><td><font color=\2>/ | |
%s#</body>\(.\|\n\)*</html>#\='</font></td></tr></table>'#i | |
" restore old setting | |
let g:html_use_css = old_css | |
endfunction | |
command! -range=% MyToHtml :call MyToHtml(<line1>,<line2>) | |
" }}} | |
" Insert Time | |
" strftime("%Y-%m-%d") | |
" [ matchit ] {{{ | |
" configure % to match more than just " single characters. | |
" You can match words and even regular expressions. | |
" :help matchit-install. help matchit.txt | |
" or :runtime macros/matchit.vim to load it. | |
" }}} | |
" }}} | |
" [[ Misc ]] {{{2 | |
" [ abbreviations ] {{{ | |
source ~/.vim/sources/abbreviations.vim | |
" }}} | |
au FileType vim,conf,muttrc,fvwm | |
\ setlocal foldmethod=marker | |
" FIXME write large file options, you can autocmd file... set ro " readonly mode | |
" [ large file ] | |
" for Awesome Mod4-d sdcv ( OR replace viw with "vaw" ) | |
" }}} | |
" [[ vundle ]] {{{1 | |
" [ vundle settings ] {{{2 | |
" :BundleInstall! ( notice bang(!), to update all vundles ) :BundleClean | |
" [ advanced way ] {{{ | |
" let root = '/tmp/vundle_bundles/' | |
" let src = 'http://github.com/gmarik/vundle.git' | |
" let src = '~/.vim/bundle/vundle/.git' | |
"if !isdirectory(expand(root).'/vundle') | |
"exec '!git clone '.src.' '.root.'/vundle' | |
"endif | |
"filetype off | |
"syntax on | |
"runtime macros/matchit.vim | |
"exec 'set rtp+='.root.'/vundle' | |
"call vundle#rc(root) | |
"Bundle "gmarik/vundle" | |
" }}} | |
" [ simple way ] {{{ | |
syntax on | |
filetype off | |
set runtimepath+=~/.vim/bundle/vundle/ | |
call vundle#rc() | |
" let Vundle manage Vundle | |
Bundle 'gmarik/vundle' | |
" }}} | |
" [ vundle examples ] {{{ | |
" Example: github username with dashes. | |
" https://github.com/trapd00r/x11colors.vim.git | |
" Bundle 'trapd00r/x11colors.vim' | |
" Example: vim-scripts name | |
" Bundle 'minibufexplorerpp' | |
" Example: full uri. | |
" Bundle 'git://git.wincent.com/command-t.git' | |
" Bundle 'https://github.com/vim-scripts/vim-game-of-life' | |
" Example: short uri | |
" Bundle 'gh:gmarik/snipmate.vim.git' | |
" Bundle 'github:mattn/gist-vim.git' | |
" Example: local uri stuff | |
" Bundle '~/Dropbox/.gitrepos/utilz.vim.git' | |
" Bundle 'file://Dropbox/.gitrepos/utilz.vim.git' | |
" Example: with options | |
" Bundle 'rstacruz/sparkup.git', {'rtp': 'vim/'} | |
" Example: Camel case | |
" Bundle 'vim-scripts/RubySinatra' | |
" }}} | |
" }}} | |
" [ Program ] {{{ | |
" [ Completion ] {{{ | |
" TODO better combine SuperTab-continued. with AutoComplPop into one. | |
" [ auto popup ] {{{ | |
" Bundle 'AutoComplPop' | |
" FIXME most places AutoComplPop can not complete like <Tab> | |
" {{{ Ctrl-y: yes. NOT ENTER !!! ( enter will jump to next line. ) | |
let g:acp_enableAtStartup = 1 " disable run at startup for NeoCompleCache.vim | |
" let g:acp_mappingDriven = 0 " non-zero: triggered by key mappings instead of CursorMovedI event | |
" TODO add snipMate into g:acp_completeOption popup menu list. | |
let g:acp_completeOption = '.,w,b,t,i,u' " set to 'complete'. | |
"| | | | | | `-dictionary. | |
"| | | | | `-unloaded buffers. | |
"| | | | `-current and included files. | |
"| | | `-tag completion. | |
"| | `-other loaded buffers that are in buffer list. | |
"| `-buffers from other widnows. | |
"`-current buffer. | |
autocmd FileType mail,tex,markdown,org,tpp,cvs,none | |
\ let g:acp_completeOption = '.,kspell' | |
let g:acp_completeoptPreview = 0 " python etc show preview window when completion. | |
" let g:acp_behaviorKeywordCommand = "\<C-p>" " command for keyword completion. | |
let g:acp_behaviorKeywordLength = 2 " NOTE: if this value <= other length, will not complete. | |
let g:acp_behaviorFileLength = 1 " file | |
let g:acp_behaviorPythonOmniLength = 0 " Python. disable acp_behaviorKeywordLength if you want to enable this. | |
let g:acp_behaviorPerlOmniLength = 0 " Perl | |
let g:acp_behaviorXmlOmniLength = 0 " XML | |
let g:acp_behaviorHtmlOmniLength = 1 " HTML | |
let g:acp_behaviorCssOmniPropertyLength = 1 " CSS | |
let g:acp_behaviorCssOmniValueLength = 0 " CSS | |
" let g:acp_behavior = {} " for advanced users. | |
" let g:acp_behaviorSnipmateLength = 1 " =0 will ONLY popup complete snipMate. | |
" for snipMate.vim {{{ " add following to plugin/snipMate.vim | |
"fun! GetSnipsInCurrentScope() | |
"let snips = {} | |
"for scope in [bufnr('%')] + split(&ft, '\.') + ['_'] | |
"call extend(snips, get(s:snippets, scope, {}), 'keep') | |
"call extend(snips, get(s:multi_snips, scope, {}), 'keep') | |
"endfor | |
"return snips | |
"endf | |
"There is the restriction on this auto-popup, that the word before cursor must | |
"consist only of uppercase characters. | |
"}}} | |
" }}} | |
Bundle 'Shougo/neocomplcache.git' | |
" {{{ <C-y>, <Tab>, <C-[n/p|j/k]>, <C-e>, <C-g>, <C-h>, | |
let g:acp_enableAtStartup = 0 " disable AutoComplPop | |
let g:neocomplcache_enable_at_startup = 1 " use neocomplcache | |
let g:neocomplcache_max_list = 20 | |
let g:neocomplcache_max_keyword_width = 50 | |
let g:neocomplcache_max_menu_width = 15 | |
let g:neocomplcache_auto_completion_start_length = 2 " auto completion word length. | |
let g:neocomplcache_manual_completion_start_length = 2 " manual completion word length. | |
let g:neocomplcache_min_keyword_length = 3 | |
let g:neocomplcache_min_syntax_length = 3 | |
let g:neocomplcache_enable_ignore_case = 1 " use ignorecase | |
let g:neocomplcache_enable_smart_case = 1 " use Smartcase | |
let g:neocomplcache_disable_auto_complete = 0 " if 1 to disable, can manual completion by <C-x><C-u> | |
let g:neocomplcache_enable_wildcard = 1 " enable wildcard like * | |
let g:neocomplcache_enable_cursor_hold_i = 1 " relative with updatetime event | |
let g:neocomplcache_enable_auto_select = 0 " =1 -> AutoComplPop like behavior. | |
let g:neocomplcache_enable_auto_delimiter = 0 | |
let g:neocomplcache_cursor_hold_i_time = 100 " completion time | |
" ambiguous searching match | |
let g:neocomplcache_enable_camel_case_completion = 0 " disable camel case completion. | |
let g:neocomplcache_enable_underbar_completion = 0 | |
let g:neocomplcache_enable_fuzzy_completion = 0 | |
let g:neocomplcache_enable_caching_message = 1 | |
let g:neocomplcache_caching_limit_file_size = 500000 | |
let g:neocomplcache_disable_caching_file_path_pattern = '' | |
" let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*' | |
let g:neocomplcache_compare_function = 'neocomplcache#compare_rank' | |
let g:neocomplcache_enable_prefetch = 1 | |
let g:neocomplcache_snippets_dir = '~/.vim/bundle/snipmate.vim/snippets/' | |
let g:neocomplcache_temporary_dir = '.neocon' | |
" Define keyword. | |
if !exists('g:neocomplcache_keyword_patterns') | |
let g:neocomplcache_keyword_patterns = {} | |
endif | |
let g:neocomplcache_keyword_patterns['default'] = '\h\w*' | |
" let g:neocomplcache_next_keyword_patterns = | |
" let g:neocomplcache_omni_patterns = | |
" let g:neocomplcache_tags_filter_patterns | |
" let g:neocomplcache_same_filetype_lists | |
" Define dictionary. | |
let g:neocomplcache_dictionary_filetype_lists = { | |
\ 'default' : '', | |
\ 'vimshell' : $HOME.'/.vimshell_hist', | |
\ 'scheme' : $HOME.'/.gosh_completions' | |
\ } | |
" let g:neocomplcache_dictionary_patterns | |
" let g:neocomplcache_filetype_include_lists | |
" let g:neocomplcache_text_mode_filetypes | |
let g:neocomplcache_disable_select_mode_mappings = 1 | |
let g:neocomplcache_ctags_program = "ctags" | |
" let g:neocomplcache_ctags_arguments_list | |
" let g:neocomplcache_include_paths | |
" let g:neocomplcache_include_exprs | |
" let g:neocomplcache_include_patterns | |
" let g:g:neocomplcache_include_functions | |
" let g:neocomplcache_include_max_processes = 20 | |
" let g:neocomplcache_filename_include_exprs | |
" let g:neocomplcache_filename_include_exts | |
" let g:neocomplcache_member_prefix_patterns | |
" let g:neocomplcache_member_patterns | |
" let g:neocomplcache_delimiter_patterns | |
" let g:neocomplcache_omni_functions | |
" let g:neocomplcache_vim_completefuncs | |
" let g:neocomplcache_plugin_disable | |
" let g:neocomplcache_plugin_completion_length | |
" let g:neocomplcache_plugin_rank | |
" let g:neocomplcache_force_overwrite_completefunc | |
let g:neocomplcache_snippets_disable_runtime_snippets = 0 " =1 avoid conflicting snippets. | |
"autocmd FileType python setlocal omnifunc=pythoncomplete#Complete | |
"autocmd FileType c setlocal omnifunc=ccomplete#Complete | |
"autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags | |
"autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS | |
"autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS | |
"autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags | |
"autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP | |
" Enable heavy omni completion. | |
if !exists('g:neocomplcache_omni_patterns') | |
let g:neocomplcache_omni_patterns = {} | |
endif | |
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\h\w*\|\h\w*::' | |
let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::' | |
let g:neocomplcache_omni_patterns.c = '\%(\.\|->\)\h\w*' | |
let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::' | |
" For snippet_complete marker. | |
if has('conceal') | |
set conceallevel=2 concealcursor=i | |
endif | |
" Plugin key-mappings. | |
" <CR>: close popup and save indent. | |
inoremap <expr><CR> neocomplcache#close_popup() . "\<CR>" | |
" <TAB>: completion. | |
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" | |
" <C-h>, <BS>: close popup and delete backword char. | |
inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>" | |
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>" | |
inoremap <expr><C-y> neocomplcache#close_popup() | |
inoremap <expr><C-e> neocomplcache#cancel_popup() | |
inoremap <expr><C-g> neocomplcache#undo_completion() | |
" FIXME use <C-n>, <C-p> or <C-j>, <C-k> to select from popup on HTML filetype. | |
inoremap <expr><C-j> pumvisible()? "\<C-n>" : "\<C-j>" | |
inoremap <expr><C-k> pumvisible()? "\<C-p>" : "\<C-k>" | |
inoremap <expr><C-x><C-f> neocomplcache#manual_filename_complete() | |
inoremap <expr><C-j> neocomplcache#manual_omni_complete() | |
" inoremap <expr><C-n> pumvisible() ? "\<C-n>" : neocomplcache#manual_keyword_complete() | |
inoremap <expr><C-l> neocomplcache#complete_common_string() | |
imap <expr><C-s> neocomplcache#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : "\<C-n>" | |
" inoremap <expr><Tab> neocomplcache#start_manual_complete() | |
" SuperTab like snippets behavior. | |
" imap <expr><TAB> neocomplcache#sources#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : pumvisible() ? "\<C-n>" : "\<TAB>" | |
" imap <C-k> <Plug>(neocomplcache_snippets_expand) | |
" smap <C-k> <Plug>(neocomplcache_snippets_expand) | |
" [ plugins ] {{{ autoload/neocomplcache/sources/ | |
" }}} | |
" Require: | |
Bundle 'Shougo/vimproc.git' | |
" $ make -f make_gcc.mak (make proc.so) | |
" }}} | |
" Bundle 'neco-look' | |
" A neocomplcache plugin for `/usr/bin/look` for completing words in English. | |
" }}} | |
" [ Tab ] {{{ | |
" Bundle 'SuperTab-continued.' | |
" {{{ <Tab> | |
" perform all your insert completion using the "Tab" key. | |
" let SuperTab decide which completion mode to use and should play with OmniCompletion | |
let g:SuperTabMappingTabLiteral = '<c-tab>' " insert true TAB | |
let g:SuperTabDefaultCompletionType = "context" " | |
let g:SuperTabContextDefaultCompletionType = "<c-x><c-o>" | |
" let g:SuperTabCompletionContexts = ['s:ContextText', 's:ContextDiscover'] | |
" let g:SuperTabContextTextOmniPrecedence = ['&omnifunc', '&completefunc'] | |
" let g:SuperTabContextDiscoverDiscovery = | |
" \ ["&completefunc:<c-x><c-u>", "&omnifunc:<c-x><c-o>"] | |
" let g:SuperTabMappingForword = '<c-space>' " replace default <Tab> | |
let g:SuperTabLongestEnhanced = 1 " when you have 'longest' in completeopt, enhanced longest. | |
let g:SuperTabLongestHighlight = 0 " highlight first one in popup menu let you hit <enter>. | |
let g:SuperTabCrMapping = 1 " <Enter> will not jump to next line. | |
" }}} | |
" }}} | |
" [ Omni ] {{{ | |
" }}} | |
" }}} | |
" [ snippets ] {{{ | |
Bundle 'msanders/snipmate.vim' | |
" {{{ snipMate -> Tab, C-j / C-k to complete. <c-r><tab> to pop available list. | |
let g:snips_author = 'stardiviner' | |
" { change default <Tab> complete into <C-J> in /after/plugin/snipMate.vim | |
"ino <c-j> <c-r>=TriggerSnippet()<cr> | |
"snor <c-j> <esc>i<right><c-r>=TriggerSnippet()<cr> | |
" } | |
" }}} | |
" Bundle 'UltiSnips' | |
" {{{ Tab, Ctrl-h(remove forward one step), | |
" UltiSnips is an implementation that is developed with in the philosophy of TDD (Test driven development). | |
" g:UltiSnipsExpandTrigger <tab> | |
" g:UltiSnipsListSnippets <c-tab> | |
" g:UltiSnipsJumpForwardTrigger <c-j> | |
" g:UltiSnipsJumpBackwardTrigger <c-k> | |
" FIXME whether add this line under vundle. | |
" set runtimepath+=~/.vim/UltiSnips/ | |
" }}} | |
" Bundle 'snippetsEmu' | |
" Bundle 'snippets.vim' | |
" manage snippets | |
" }}} | |
" [ tags ] {{{ F12 | |
" Bundle 'taglist.vim' | |
" {{{ <F12> | |
" let Tlist_Ctags_Cmd='/usr/bin/ctags' | |
" let g:ctags_statusline = 1 " Display function name in status bar: | |
" let generate_tags = 1 " Automatically start script | |
" let Tlist_Show_One_File = 1 " only show tags about current file. not all files. | |
" let Tlist_Use_Horiz_Window = 0 " Displays taglist results in a vertical window: | |
" let Tlist_WinWidth = 20 " window width | |
" let Tlist_Inc_Winwidth = 0 " for console/terminal vim. | |
" let Tlist_Compact_Format = 1 " empty lines are used to separate different tag types. | |
" let Tlist_GainFocus_On_ToggleOpen = 1 " move cursor to taglist window when you open taglist window. | |
" let Tlist_File_Fold_Auto_Close = 1 " open tags tree for current buffer, close others. | |
" let Tlist_Process_File_Always = 1 " use these commands without opening the taglist window. | |
" let Tlist_Enable_Fold_Column = 0 " not display vim fold column in the taglist window. | |
" " let Tlist_Display_Prototype = 1 " display tag prototypees instead of the tag name. | |
" " let Tlist_Display_Tag_Scope = 0 " not display the scope of the tags next to the tag names | |
" " let Tlist_Use_Right_Window = 1 " window will appear on the right hand side. | |
" " let Tlist_Exit_OnlyWindow = 1 " only taglist window opend, and you want to close vim. | |
" nnoremap <F12> :TlistToggle<CR> | |
" " }}} | |
Bundle 'vim-scripts/Tagbar.git' | |
" {{{ <F12> | |
let g:tagbar_ctags_bin = '/usr/bin/ctags' " default empty | '/usr/bin/ctags'. | |
let g:tagbar_width = 20 | |
let g:tagbar_compact = 1 " omitting blank lines. | |
let g:tagbar_left = 0 | |
let g:tagbar_autoshowtag = 1 " auto open folds when tag in folds. | |
let g:tagbar_autofocus = 1 " autofocus to tagbar window when opened. | |
let g:tagbar_autoclose = 0 " auto close tagbar when you jump to tag | |
let g:tagbar_sort = 1 " sort according to their name. | |
let g:tagbar_expand = 0 " vim window will be expanded by the width of tagbar window if using GUI vim. | |
let g:tagbar_foldlevel = 99 " initial foldlevel for folds in tagbar. | |
let g:tagbar_usearrows = 0 " { Windows only } | |
" let g:tagbar_systemenc = "utf-8" " value of 'encoding'. | |
nnoremap <F12> :TagbarToggle<CR> | |
" autocmd VimEnter * nested TagbarOpen | |
" change tagbar color. | |
" highlight TagbarScope guifg=Green ctermfg=Green | |
" }}} | |
" Bundle 'indexer.tar.gz' | |
Bundle 'AutoTag' | |
Bundle 'xolox/vim-easytags.git' | |
" :UpdateTags [-R /path], :HighlightTags | |
" }}} | |
" [ template ] {{{ | |
" }}} | |
" [ buffers ] {{{ | |
" Bundle 'fholgado/minibufexpl.vim' | |
" {{{ buffers navigation, h/l, s/v splitv/h | |
" let g:miniBufExplMinSize = 1 " enable min height | |
let g:miniBufExplForceSyntaxEnable = 1 " enable syntax | |
let g:miniBufExplMapWindowNavVim = 1 " enable C-h/j/k/l to Navi windows. | |
let g:miniBufExplModSelTarget = 1 " if you use other explorer like taglist | |
" let g:miniBufExplCloseOnSelect = 1 " close after you selected one buffer. | |
" MiniBufExpl Color Examples, [ load before colorscheme ] | |
hi link MBEVisibleChanged Error | |
hi MBEVisibleNormal guifg=#5DC2D6 ctermfg=081 ctermbg=081 | |
hi MBEVisibleActive guifg=#A6DB29 ctermfg=154 ctermbg=154 | |
hi MBEVisibleChanged guifg=#F1266F ctermfg=203 ctermbg=203 | |
hi MBEVisibleChangedActive guifg=#F1266F ctermfg=203 ctermbg=203 | |
" }}} | |
Bundle 'LStinson/TagmaBufMgr.git' | |
" {{{ <F8> h/<Tab> , l/<S-Tab>. <Cr>/o S/s V/v Ctrl-[hjkl] :MgrToggle :help TagmaBufMgr | |
let g:TagmaBufMgrAutoDisplay = 1 " =0 to disable autodisplay. | |
let g:TagmaBufMgrBufferNumbers = 1 " buffer number | |
let g:TagmaBufMgrCloseSelect = 0 " close buffer when selected. | |
let g:TagmaBufMgrLastWindow = 1 " default =0. | |
let g:TagmaBufMgrLocation = 'T' " Top, Bottom, Left, Right, Float | |
let g:TagmaBufMgrMapCArrow = 1 " Ctrl-Arrow | |
let g:TagmaBufMgrMapChjkl = 1 " Ctrl-[hjkl] to nav buffers. | |
let g:TagmaBufMgrPrefix = '<Leader>tb' " prefix for all commands. empty to disable keymaps. | |
let g:TagmaBufMgrPopUp = 1 " Right-Click PopUp menu | |
let g:TagmaBufMgrWidth = 25 " when at the Left or Right. | |
nnoremap <silent> <F8> :MgrToggle<CR> | |
"nnoremap <C-h> <C-w>h | |
"nnoremap <C-j> <C-w>j | |
"nnoremap <C-k> <C-w>k | |
"nnoremap <C-l> <C-w>l | |
" }}} | |
" }}} | |
" [ Navigation ] {{{ F11 | |
" Bundle 'Command-T' | |
Bundle 'The-NERD-tree' | |
" {{{ <F11> :NERDTree [dir|bookmark-name] | |
" let loaded_nerd_tree=1 " let vim can not load NERDTree. | |
let NERDChristmasTree = 1 " colourful. =0 for more vanilla looking tree. | |
let NERDTreeAutoCenter = 1 " default = 1. | |
let NERDTreeAutoCenterThreshold = 3 " default = 3. | |
let NERDTreeCaseSensitiveSort = 0 " default = 0. | |
let NERDTreeChDirMode = 1 " 0/1/2 | |
let NERDTreeHighlightCursorline = 1 " highlight cursorline. | |
let NERDTreeHijackNetrw = 1 " for :edit <dir> open 'secondary' NERD tree. | |
let NERDTreeIgnore = ['\~$', '\.log', '\.pyo', '\.pyc', '\.swp', '\.bak', '\.git', '\.hg'] | |
let NERDTreeBookmarksFile="$HOME/.vim/NERDTreeBookmarks" " where Bookmarks are saved. | |
let NERDTreeQuitOnOpen = 0 " does not close after open. default=0. | |
let NERDTreeShowBookmarks = 1 " show Bookmarks when open NERD-tree. | |
let NERDTreeShowHidden = 0 " does not show hidden files. | |
let NERDTreeShowLineNumbers = 0 " do not show line numbers, default=0 | |
let NERDTreeWinPos = "left" " NERD-tree window position. | |
let NERDTreeWinSize = 20 " window size, default=31. | |
nnoremap <silent> <F11> :NERDTreeToggle<CR> | |
" }}} | |
" Bundle 'project.tar.gz' | |
" }}} | |
" [ Compiler ] {{{ | |
" set different make and compiler for different FileType | |
" set makeprg= | |
" nnoremap <F10> :make | |
Bundle 'SingleCompile' | |
" {{{ F9 compile F10 compile&run, :SCChooseCompiler, :SCViewResult, :SCCompileRunAsync | |
" nnoremap <F9> :SCCompile<cr> | |
nnoremap <F10> :SCCompileRun<cr> | |
let g:SingleCompile_alwayscompile = 1 " =0 to disable it. | |
let g:SingleCompile_asyncrunmode = 'auto' " mode: auto, none, python, | |
let g:SingleCompile_autowrite = 1 " save file when compile. | |
let g:SingleCompile_usequickfix = 1 " use QuickFix. | |
let g:SingleCompile_menumode = 1 " 0: don't show menus. 1: sub menu, 2: menu bar. | |
" let g:SingleCompile_resultheight = a_number | |
let g:SingleCompile_showquickfixiferror = 1 " auto show error. | |
" let g:SingleCompile_showresultafterrun = 1 " vim error when no error return. | |
let g:SingleCompile_usedialog = 1 " show dialog | |
call SingleCompile#ChooseCompiler('python', 'python3') | |
" }}} | |
" }}} | |
" [ debug ] {{{ | |
" Bundle 'AndrewRadev/linediff.vim.git' | |
" :Linediff | |
" nnoremap <silent> <Leader>ld :Linediff<CR> | |
" }}} | |
" [ test ] {{{ | |
" Bundle 'runVimTests' | |
" }}} | |
" [ VCS ] {{{ | |
" [ Git ] {{{ | |
Bundle 'fugitive.vim' | |
" :Git [args] :Gedit HEAD <CR> :Gdiff :Gread :Gstatus :Gcommit | |
Bundle 'tpope/vim-git' | |
" syntax, indent, filetype plugin for git, gitcommit, gitconfig, gitrebase, and gitsendemail. | |
" Bundle 'Gist.vim' | |
" :Gist, :'<,'>Gist, :Gist-p, :Gits-a, :Gits-m, ... for gist (http://gist.github.com) | |
let g:gist_clip_command = 'xclip -selection clipboard' " Linux | |
let g:gist_clip_command = 'pbcopy' " Mac | |
let g:gist_detect_filetype = 1 " detect file type from filename | |
" let g:gist_browser_command = 'w3m %URL%' " change browser | |
let g:gist_browser_command = 'opera %URL% &' " change browser | |
let g:gist_open_browser_after_post = 1 " open browser after post | |
" }}} | |
" Bundle 'vcscommand.vim' | |
" }}} | |
" [ projects ] {{{ | |
Bundle 'TaskList.vim' | |
" {{{ \t | |
let g:tlWindowPosition = 1 " 1: bottom, 0: top. | |
let g:tlRememberPosition = 1 | |
" let g:tlTokenList = ["FIXME", "TODO", "XXX", "FUCK"] | |
" }}} | |
" }}} | |
" [ search ] {{{ | |
" Bundle 'kien/ctrlp.vim' | |
" {{{ :CtrlP to full path fuzzy(regex grep) file buffer and MRU. :help ctrlp.txt | |
" let g:ctrl_map = '<c-p>' " for normal mode press Ctrl-P. | |
" let g:loaded_ctrlp = 1 " disable plug completely. | |
" let g:ctrlp_by_filename = 0 " set =1 will search by filename (not full path), default. | |
let g:ctrlp_regexp_search = 1 " =1 to set full regexp search as default mode. | |
let g:ctrlp_persistent_input = 2 " remember the last input string and position of selection in window. | |
" let g:ctrlp_match_window_reversed = 1 " reverse matching window. | |
let g:ctrlp_split_window = 2 " how the file is to be opened. | |
let g:ctrlp_ignore_space = 1 " =1 to ignore whitespaces in filenames and directory. | |
" let g:ctrlp_working_path_mode = 1 " parent directory of current file. | |
" let g:ctrlp_root_markers = [''] " | |
" let g:ctrlp_max_height = 10 " max height. | |
let g:ctrlp_use_caching = 1 " =0 to disable pre-session caching. | |
" Note: you can quickly purge the cache by pressing <F5>. | |
let g:ctrlp_clear_cache_on_exit = 0 " =0 to enable cross-sessions caching. | |
" let g:ctrlp_cache_dir = $HOME " set the parent dir for '.ctrlp_cache' dir. | |
" let g:ctrlp_prompt_mappings = { | |
let g:ctrlp_mru_files = 1 " =0 to disable Most Recently Used files. | |
" let g:ctrlp_mruf_max = 50 | |
" let g:ctrlp_mruf_exclude = '/tmp/.*\|/temp/.*' " MacOSX/Linux | |
" let g:ctrlp_mruf_include = '\.py$\|\.rb$' " let MRU only remember some files. | |
" let g:ctrlp_dotfiles = 1 " =0 to disable search dotfiles and dotfirs. | |
" set wildignore+=*/.git/*,*/.hg/*,*/.svn/* " Linux/MacOSX | |
" let g:ctrlp_highlight_match = [1, 'Function'] " highlight of matched patterns and group. | |
" let g:ctrlp_max_files = 20000 " max number of files to scan. =0 for no limit. | |
" let g:ctrlp_max_depth = 40 " maximum depth of a directory tree to recurse into. | |
let g:ctrlp_live_update = 1 | |
" let g:ctrlp_user_command = '' | |
let g:ctrlp_open_new_file = 3 | |
" let g:ctrlp_max_history = &history " from set history=50 | |
" }}} | |
" Bundle 'grep.vim' | |
" Bundle 'EasyGrep' | |
" }}} | |
" [ comment ] {{{ | |
Bundle 'The-NERD-Commenter' | |
" \cc: Comment, \cu: Uncomment, | |
" \cn: Nested, \c<space>: Toggle, \cm: Minimal, \ci: Invert, \cs: Sexy, | |
" \c$: EOL, \cy: "y", \cA: "A", \cI: "I", \ca: Alternative delimiters, | |
" let loaded_nerd_comments=1 " turn off this script. | |
" }}} | |
" [ doc ] {{{ | |
" An extensible help system ( K ) | |
" Bundle 'Manuals' | |
" let g:vxlib_manuals_directory="~/.vim/manual" | |
" }}} | |
" [ syntax ] {{{ | |
" [ check syntax ] {{{ | |
" TODO | |
" Bundle 'tomtom/checksyntax_vim.git' | |
" check syntax for error like lua, php, python, tex, latex etc. | |
" }}} | |
" }}} | |
" [ conceal ] {{{ | |
" TODO | |
" Bundle 'MnO2/vim-ocaml-conceal.git' | |
" }}} | |
" [ Python ] {{{ | |
" au FileType python setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 | |
" FIXME use which one python syntax file in ~/.vim/syntax/ | |
" [ debug ] {{{ | |
" Bundle 'pyflakes.vim' | |
" let g:pyflakes_use_quickfix = 1 " default=1. | |
" Bundle 'jbking/vim-pep8.git' | |
" Bundle 'nvie/vim-pyunit.git' | |
" {{{ pyflakes & pylint -- check when saving file. | |
"function! Pyflakes() | |
"let tmpfile = tempname() | |
"execute "w" tmpfile | |
"execute "set makeprg=(pyflakes\\ " . tmpfile . "\\\\\\|sed\\ s@" . tmpfile ."@%@)" | |
"make | |
"cw | |
"endfunction | |
"autocmd BufWrite *.{py} :call Pyflakes() | |
"function! Pylint() | |
"setlocal makeprg=(echo\ '[%]';\ pylint\ %) | |
"setlocal efm=%+P[%f],%t:\ %#%l:%m | |
"silent make | |
"cwindow | |
"endfunction | |
"autocmd BufWrite *.{py} :call Pylint() | |
" }}} | |
" }}} | |
" [ IDE ] {{{ | |
Bundle 'klen/python-mode.git' | |
" {{{ K: doc <C-space>: Rope autocomp <Leader>r: run <Leader>b: set/unset breakpoint. | |
" pylint, rope, pydoc :help Python-mode-contents | |
" Show documentation | |
let g:pymode_doc = 1 " Load show documentation plugin | |
let g:pymode_doc_key = 'K' " Key for show python documentation | |
let g:pydoc = 'pydoc' " Executable command for documentation search | |
" Run python code | |
let g:pymode_run = 1 " Load run code plugin | |
let g:pymode_run_key = '<Leader>r' " Key for run python code | |
" Pylint checking | |
let g:pymode_lint = 1 " Load pylint code plugin | |
let g:pymode_lint_checker = "pylint" " pylint or pyflakes | |
let g:pymode_lint_config = "$HOME/.pylintrc" " Pylint configuration file | |
let g:pymode_lint_write = 1 " Check code every save | |
let g:pymode_lint_cwindow = 1 " Auto open cwindow if errors be finded | |
let g:pymode_lint_jump = 1 " Auto jump on first error | |
let g:pymode_lint_signs = 1 " Place error signs | |
let g:pymode_lint_minheight = 3 " Minimal height of pylint error window | |
let g:pymode_lint_maxheight = 6 " Maximal height of pylint error window | |
" Rope refactoring library | |
let g:pymode_rope = 1 " Load rope plugin | |
let g:pymode_rope_auto_project = 1 " Auto create and open ropeproject | |
let g:pymode_rope_enable_autoimport = 1 " Enable autoimport | |
let g:pymode_rope_autoimport_generate = 1 " Auto generate global cache | |
let g:pymode_rope_autoimport_underlineds = 0 | |
let g:pymode_rope_codeassist_maxfixes = 10 | |
let g:pymode_rope_sorted_completions = 1 | |
let g:pymode_rope_extended_complete = 1 | |
let g:pymode_rope_autoimport_modules = ["os","shutil","datetime"] | |
let g:pymode_rope_confirm_saving = 1 | |
let g:pymode_rope_global_prefix = "<C-x>p" | |
let g:pymode_rope_local_prefix = "<C-c>r" | |
let g:pymode_rope_vim_completion = 1 | |
let g:pymode_rope_guess_project = 0 " scan project will slow down completion speed. | |
let g:pymode_rope_goto_def_newwin = 1 | |
let g:pymode_rope_always_show_complete_menu = 1 " default=0 | |
" Other stuff | |
let g:pymode_breakpoint = 1 " Load breakpoints plugin | |
let g:pymode_breakpoint_key = '<Leader>b' " Key for set/unset breakpoint | |
let g:pymode_utils_whitespaces = 1 " Autoremove unused whitespaces | |
let g:pymode_virtualenv = 1 " Auto fix vim python paths if virtualenv enabled | |
let g:pymode_options_indent = 1 " Set default pymode python indent options | |
let g:pymode_options_fold = 1 " Set default pymode python fold options | |
let g:pymode_options_other = 1 " Set default pymode python other options | |
" utils | |
let g:pymode_utils = 1 " utils script | |
let g:pymode_utils_whitespaces = 1 " autoremove unused whitespaces | |
" virtualenv | |
let g:pymode_virtualenv = 1 " virtualenv support | |
" syntax | |
let g:pymode_syntax = 1 " use custom syntax highlighting | |
let g:pymode_syntax_builtin_objs = 0 | |
let g:pymode_syntax_builtin_funcs = 0 | |
" indent | |
let g:pymode_options_indent = 1 | |
" fold | |
let g:pymode_options_fold = 1 | |
" others | |
let g:pymode_options_other = 1 | |
" }}} | |
" }}} | |
" [ completion ] {{{ | |
" Bundle 'pythoncomplete' | |
" omni-completion script shipped with vim 7. | |
" TODO if SuperTab or AutoComplPop can work Completion too. remove this. | |
" }}} | |
" [ indent & fold ] {{{ TODO whether remove this, because setted in python-mode.vim | |
" Bundle 'indentpython.vim--nianyang' | |
" This indentation script for python tries to match more closely what is suggested in PEP 8. | |
" autocmd FileType python set foldmethod=indent | |
" Bundle 'tmhedberg/SimpylFold.git' | |
" correct fold for python class/function indent. | |
" }}} | |
" [ help ] {{{ | |
" Bundle 'xolox/vim-pyref.git' | |
" {{{ python and lib refence, django document, "F1" only work in python buffer. | |
" let g:pyref_mapping = 'K' | |
"let g:pyref_python = '/usr/share/doc/python2.7/html/' | |
"let g:pyref_django = '/usr/share/doc/python-django-doc/html/' | |
" }}} | |
" }}} | |
" Bundle 'python.vim' | |
" {{{ select function/class/block, comment selection, shift a block. jump to next same indent. etc. | |
" put file to $VIMFILES/ftplugin/python | |
" A set of menus/shortcuts to work with Python files | |
"let g:py_select_leading_comments=1 | |
"let g:py_select_trailing_comments=1 | |
" Shortcuts: | |
" ]t -- Jump to beginning of block | |
" ]e -- Jump to end of block | |
" ]v -- Select (Visual Line Mode) block | |
" ]< -- Shift block to left | |
" ]> -- Shift block to right | |
" ]# -- Comment selection | |
" ]u -- Uncomment selection | |
" ]c -- Select current/previous class | |
" ]d -- Select current/previous function | |
" ]<up> -- Jump to previous line with the same/lower indentation | |
" ]<down> -- Jump to next line with the same/lower indentation | |
" }}} | |
" }}} | |
" [ shell ] {{{ | |
" Bundle 'bash-support.vim' | |
" }}} | |
" [ Web ] {{{ | |
" Bundle 'ZenCoding.vim' | |
" Bundle 'othree/html5.vim' | |
" html5 OmniCompletion and syntax. | |
" ~/.vim/syntax/css3.vim | |
autocmd BufRead,BufNewFile *.css set ft=css syntax=css3 | |
autocmd FileType html runtime ~/.vim/ftplugin/html.vim " match HTML tag | |
autocmd FileType xhtml,xml runtime ~/.vim/ftplugin/html_autoclosetag.vim " auto close html tag. | |
" FIXME can not work with Bundle 'auto-pairs.vim' | |
" }}} | |
" [ C & C++ Dev Env ] {{{ | |
autocmd FileType c,cpp setlocal cindent " use correct indent for C. | |
au BufNewFile,BufRead,BufEnter *.cpp,*.hpp set omnifunc=omni#cpp#complete#Main | |
" Bundle 'c' | |
" }}} | |
" [ Perl ] {{{ | |
" Bundle 'perl-support.vim' | |
" Bundle 'c9s/perlomni.vim' | |
" }}} | |
" [ Lua ] {{{ | |
" Bundle 'xolox/vim-lua-ftplugin.git' | |
" Bundle 'xolox/vim-lua-inspect.git' | |
" :help luainspect.txt | |
" }}} | |
" [ Dart ] {{{ | |
" Bundle 'bartekd/vim-dart.git' | |
" }}} | |
" [ Lisp ] {{{ | |
" Bundle 'mattn/lisper-vim.git' | |
" }}} | |
" [ SQL ] {{{ :h sql.txt, :h sql-completion.txt, :h sql-dialects, :h omni-sql-completion. | |
Bundle 'dbext.vim' | |
" TODO | |
" {{{ :'<,'>DBExecSQL OR \se, :h dbext-tutorial, :h dbext.txt | |
" Object completion: i_Ctrl-X_Ctrl-K, Result buffer, History, Mappings, Parsing Statements, | |
" Modeline support, Viewing List of Objects, FileType support(python, lang etc), | |
" Provides database access to many dbms (Oracle, Sybase, Microsoft, MySQL, DBI, ...) | |
" connection profile {{{ | |
" }}} | |
" }}} | |
" }}} | |
" }}} | |
" [ tools ] {{{ | |
" [ bookmark & mark ] {{{ | |
" Bundle 'Bookmarking' | |
" F3 toggle bookmark, F4 next bookmark, " | |
"nnoremap <silent> <F3> :ToggleBookmark<CR> | |
"nnoremap <silent> <F4> :NextBookmark<CR> | |
"nnoremap <silent> <F4> :PreviousBookmark<CR> | |
" Bundle 'ShowMarks7' | |
" XXX works good for Gvim | |
" this is a bug fixed from ShowMarks.vim | |
" Bundle 'ShowMarks' | |
" Bundle 'showmarks--Politz' | |
" display marks before line number column. XXX works good for vim(terminal) | |
" Bundle 'Visual-Mark' | |
" mm, F2 highlight marked line. | |
" Bundle 'Mark' | |
" Bundle 'SaveSigns' | |
" }}} | |
" [ markup ] {{{ | |
Bundle 'greyblake/vim-preview.git' | |
" [ :Preview ] preview markup files like *.markdown *.rdoc *.textile *.html | |
" :help preview.txt | |
let g:PreviewBrowsers='firefox,chromium-browser' | |
" FIXME preview can not load style.css file automatic. | |
let g:PreviewCSSPath='/home/chris/Git/website/style.css' | |
" [ Tex ] {{{ | |
Bundle 'AutomaticLaTexPlugin' | |
" {{{ <Tab>, :SyncTex :MakeLatex, Debug, :LatexTags :help atp ... | |
" }}} | |
" Bundle 'LaTeX-Suite-aka-Vim-LaTeX' | |
Bundle 'LaTeX-Help' | |
" press K to get help :help \kill or :help kill | |
autocmd FileType tex nnoremap <buffer> K :exec "help" expand("<cword>")<CR> | |
" This is LaTeX Help info files `translated' as vim help file' | |
" Bundle 'latextags' | |
" generate tags for vim for LaTex | |
" [ compile ] | |
" :compiler tex | |
" }}} | |
" Bundle 'vim-pandoc/vim-pandoc.git' | |
" {{{ :!markdown2pdf % | |
" convert markdown to pdf, html, latex, epub, context, odt, rst, docbook, org-mode, | |
" If you use snipMate, support some snipmate, in snippets/pandoc.snippets | |
" setlocal linebreak | |
" setlocal breakat-=* | |
" setlocal display=lastline | |
" setlocal nojoinspaces " for Shift-J to join next line to current line. | |
" setlocal commentstring=<!--%s--> | |
" setlocal comments=s:<!--,m:\ \ \ \ ,e:--> | |
" setlocal formatoptions=1 | |
" let g:pandoc_auto_format = 1 | |
" let g:pandoc_no_folding = 1 " disable section folding. | |
" let g:pandoc_use_bibtool = 1 " for snipMate tab. | |
" let g:pandoc_bibfiles = ['/the/path/to/your/bibtex/file.bib'] | |
" }}} | |
" }}} | |
" [ wiki & note ] {{{ | |
Bundle 'vim-scripts/vimwiki.git' | |
" {{{ \ww: open vimwiki, \w\w: open today diary, \wi: open diary index. | |
" TODO use Txtfmt, and utl.vim to enhance vimwiki. | |
let wiki = {} | |
let wiki.path = '~/.vim/vimwiki/' | |
let wiki.path_html = '~/.vim/vimwiki-wiki/output/' | |
let wiki.html_header = '~/.vim/vimwiki-wiki/header.tpl' | |
" let wiki.html_footer = '~/.vim/vimwiki/template/footer.tpl' | |
let wiki.nested_syntaxes = {'py': 'python', 'rb': 'ruby', 'pl': 'perl', 'c': 'c', | |
\ 'html': 'html', 'js': 'javascript', 'css': 'css', 'xml': 'xml', | |
\ 'sh': 'sh', 'zsh': 'zsh', | |
\ 'sed': 'sed', 'awk': 'awk', 'lex': 'lex', | |
\ 'markdown': 'markdown', 'tex': 'tex', | |
\ 'man': 'man', 'help': 'help', 'vim': 'vim', 'conf': 'config'} | |
let wiki.auto_export = 0 " auto convert into HTML when saving. | |
" {{{ vimwiki-2 | |
" let wiki_2 = {} | |
" used for 2\ww | |
" ln -s vimwiki_public/ /var/www/wiki/ | |
"let wiki_2.path = '~/.vim/vimwiki-blog/' | |
"let wiki_2.path_html = '~/.vim/vimwiki_blog/output/' | |
"let wiki_2.html_header = '~/.vim/vimwiki-blog/header.tpl' | |
" let wiki_2.html_footer = '~/.vim/vimwiki-blog/footer.tpl' | |
" let wiki_2.auto_export = 1 | |
" let wiki_2.ext = '.pub' " default is .wiki | |
" }}} | |
let g:vimwiki_list = [wiki] " use wiki2 ??? [wiki, wiki_2] | |
" ----------------------------------------------------- | |
" let g:vimwiki_list = [{'path': '~/.vim/vimwiki/', | |
" \ 'path_html': '~/.vim/vimwiki-wiki/output/', | |
" \ 'auto_export': 1, | |
" \ 'index': 'main', | |
" \ 'css_name': 'css/style.css', | |
" \ 'syntax': 'media', | |
" \ 'ext': '.wiki', | |
" \ 'template_path': '~/.vim/vimwiki-wiki/template/' " apply template with adding %template person | |
" \ 'template_default': 'def_template', | |
" \ 'template_ext': '.html'}, | |
" \ {'path': '~/.vim/vimwiki2/', | |
" }] | |
" TODO http://www.fanhe.org/blog/2011/01/push-vimwiki-to-github/ push vimwiki to github, bind a domain. | |
" let g:vimwiki_dir_link = 'index' " to directory. OR = '' -> use netrw. | |
let g:vimwiki_camel_case = 0 " if you do not want WikiWord to be a link. prefer use [[]]. | |
let g:vimwiki_use_mouse=0 " disable mouse. | |
let g:vimwiki_hl_headers = 1 " use VimwikiHeader1-6 | |
let g:vimwiki_folding = 1 " disable folding. speed up file. | |
let g:vimwiki_fold_lists = 1 | |
let g:vimwiki_fold_trailing_empty_lines = 0 " Fold only one empty line. | |
let g:vimwiki_browsers = ['/usr/bin/luakit'] | |
let g:vimwiki_table_auto_fmt = 1 " auto format table. | |
let g:vimwiki_html_header_numbering = 1 | |
let g:vimwiki_html_header_numbering_sym = '.' | |
let g:vimwiki_hl_cb_checked = 1 " Checked list items can be highlighted with a color. | |
let g:vimwiki_auto_checkbox = 1 " if no, creat checkbox when toggle list item. | |
" let g:vimwiki_listsyms = '.oOX' " todo list: check/uncheck. | |
let g:vimwiki_stripsym = '_' " filename can not use /*?<>: | |
" let g:vimwiki_badsyms = ' ' " filename treat space as bad. | |
let g:vimwiki_file_exts = 'pdf,txt,doc,xls,php,zip,rar,7z,html,gz,tar.gz,tar.bz2,jpg,png,py,sh' | |
" let g:vimwiki_valid_html_tags = 'b,i,s,u,sub,sup,kbd,br,hr' | |
" let g:vimwiki_user_htmls = | |
let g:vimwiki_list_ignore_newline = 1 " ignore newlines in list items. | |
let g:vimwiki_use_calendar = 1 | |
Bundle 'vim-scripts/calendar.vim--Matsumoto.git' | |
let g:calendar_focus_today = 1 | |
let g:calendar_mark = 'right' | |
let g:calendar_navi = 'bottom' " top, bottom, both | |
let g:calendar_datetime = 'statusline' " show current date and time. OR 'statusline' , '' | |
" [ extra ] {{{ | |
autocmd FileType vimwiki source ~/.vim/sources/vimwiki-abbr.vim | |
" make it into command line by pressing <leader>cl | |
autocmd FileType vimwiki nnoremap <buffer> <leader>cl :normal! I`<Esc>A`<Esc> | |
" use <lt> to replace < because of this ` so need to escape in other way. | |
" autocmd FileType vimwiki nnoremap <buffer> <leader>cl :exec "normal! I`\<lt>Esc>A`\<lt>Esc>"<CR> | |
" make word under cursor into color with \\ | |
autocmd FileType vimwiki nnoremap <buffer> <Bslash><Bslash> :normal! viwo<esc><esc>i~~<Esc>ea~~<Esc> | |
" bold word | |
autocmd FileType vimwiki nnoremap <buffer> <Leader>bo llbi*<esc>ea*<esc> | |
" }}} | |
" }}} | |
" Bundle 'fmoralesc/vim-pad.git' | |
" {{{ :help vim-pad :ListPads :OpenPad | |
"let g:pad_dir = "~/notes/" | |
"let g:pad_format = "markdown" | |
" }}} | |
" Bundle 'xolox/vim-notes.git' | |
" :help notes.txt | |
" Bundle 'sjl/vim-orgmode.git' | |
" {{{ Text outlining and task management for Vim based on Emacs' Org-Mode. http://orgmode.org/ | |
let g:org_heading_highlight_colors = ['Title', 'Constant', 'Identifier', | |
\ 'Statement', 'PreProc', 'Type', 'Special'] | |
let g:org_heading_highlight_levels = len(g:org_heading_highlight_colors) | |
let g:org_heading_shade_leading_stars = 1 | |
" let g:org_todo_keywords = ['TODO', '|', 'DONE'] | |
" let g:org_todo_keyword_faces = [] | |
let g:org_todo_keywords = [['TODO', 'WAITING', '|', 'DONE'], | |
\ ['|', 'CANCELED']] | |
let g:org_todo_keyword_faces = [['WAITING', 'cyan'], ['CANCELED', | |
\ [':foreground red', ':background black', ':weight bold', | |
\ ':slant italic', ':decoration underline']]] | |
" Required: (utl.vim), speeddating.vim | |
" {{{ Univeral Text Linking | |
" Bundle 'speeddating.vim' | |
" <C-A> <C-X> | |
" Bundle 'utl.vim' | |
" Univeral Text Linking - Execute URLs, footnotes, open emails, organize ideas | |
let g:utl_opt_verbose=0 " does not verbose mode. | |
" Bundle 'repeat.vim' | |
" Bundle 'narrow_region' | |
" }}} | |
" }}} | |
" }}} | |
" [ write ] {{{ | |
" Bundle 'mikewest/vimroom.git' | |
" {{{ <F6> <Leader>V :VimroomToggle | |
" http://projects.mikewest.org/vimroom/ | |
nnoremap <silent> <F6> :VimroomToggle<CR> | |
" let g:vimroom_background="black" | |
let g:vimroom_min_sidebar_width=5 | |
let g:vimroom_width=80 " width of your workspace. | |
let g:vimroom_sidebar_height=2 " if you do not want vertical padding. | |
" let g:vimroom_navigational_keys=1 " j,k to navigation, 1= on. | |
" let g:vimroom_scrolloff=999 " cursor in center of screen. | |
" }}} | |
" }}} | |
" [ blog ] {{{ | |
" Bundle 'Vim-Blog' | |
" Bundle 'VimRepress' | |
" {{{ :BlogNew [post|page] :BlogSave [draft|publish] :BlogUpload <file> :BlogCode [python] | |
" if you need Markdown support, run `$ sudo apt-get install python-markdown` | |
let VIMPRESS = [{'username':'stardiviner', | |
\ 'password':'chrisM.sprite324', | |
\ 'blog_url':'http://stardiviner.wordpress.com/' | |
\}, | |
\{'username':'numbchild', | |
\ 'password':'numbchild324', | |
\ 'blog_url':'http://numbchild.wordpress.com/' | |
\}] | |
" }}} | |
" Bundle 'TwitVim' | |
" {{{ vim twitter client. | |
let twitvim_login = "numbchild:numbchild324" | |
let twitvim_proxy = "127.0.0.1:4444" | |
let twitvim_api_root = "https://api.twitter.com/1" " use ssl. | |
" let g:twitvim_enable_python = 1 " used for windows to replace curl. | |
" }}} | |
" }}} | |
" [ Color ] {{{ | |
Bundle 'colorizer' | |
" :ColorHighlight | |
" display #rgb or #rrggbb color | |
" Bundle 'trapd00r/x11colors.vim' | |
" display X11 color name with color | |
" Bundle 'css_color.vim' | |
" display css colors | |
" Bundle 'ColorV' | |
" :ColorVlist | choose and display color | |
" Bundle 'colorsel.vim' | |
" visual color selector | |
" Bundle 'godlygeek/csapprox.git' | |
" This plugin makes GVim-only colorschemes Just Work in terminal Vim. | |
" :help csapprox.vim | |
" Bundle 'gui2term.py' | |
" $ python3 gui2term.py sourcefile newfile | |
" convert GUI colorscheme to terminal colorscheme. | |
" Bundle 'ScrollColors' | |
" :SCROLLCOLOR <nagtive with arrow> | |
" -------- colorschemes ------------ | |
" Bundle 'Sorcerer' | |
" }}} | |
" [ mail ] {{{ | |
" Bundle 'chrisbra/CheckAttach.git' | |
" {{{ Attach file: <Tab> to complete. :AttachFile ~/pictures/*.jpg. | |
" check attactment for mutt in present mail content keyword. | |
" need to set muttrc *edit_header = yes*. | |
let g:attach_check_keywords = ',attachment,attach,attached' | |
" let g:checkattach_filebrowser='ranger' | |
let g:checkattach_filebrowser = 'ranger --choosefiles=%s' " choose many files. | |
" }}} | |
" }}} | |
" [ outline ] {{{ | |
" Bundle 'VOoM' | |
" {{{ Two-pane outliner and related utility. | |
" to test code snippet one one node. like "python". | |
" let g:voom_tree_width = 30 | |
" let g:voom_log_height = 10 | |
" }}} | |
" Bundle 'TVO--The-Vim-Outliner' | |
" Bundle 'VimOutliner' | |
" Bundle 'DotOutlineTree' | |
" :help ~/.vim/bundle/DotOutlineTree/plugin/dot.vim | |
" Bundle 'VimOutliner' | |
" Bundle 'vimoutliner/vimoutliner.git' | |
" :help vo :help vo_cheatsheet | |
" Bundle 'vimoutliner-colorscheme-fix' | |
" }}} | |
" [ format ] {{{ | |
" Bundle 'Tabular' | |
" let g:taburl_loaded = 1 " avoid loaded. | |
" Bundle 'DrawIt' | |
" }}} | |
" [ session ] {{{ | |
" Bundle 'xolox/vim-session.git' | |
" {{{ :SaveSession [name], :OpenSession [name], :CloseSession, :DeleteSession, :ViewSession. | |
" in ~/.vim/sessions/ | |
" "$ vim --servername session-plugin" | |
" let g:loaded_session = 1 " avoid loading session.vim plugin. | |
" If you only want to save the current tab page: | |
" set sessionoptions-=tabpages | |
" If you don't want help windows to be restored: | |
" set sessionoptions-=help | |
let g:session_directory="~/.vim/sessions/" | |
let g:session_autoload='prompt' " default='prompt', / 'yes' / 'no'. | |
let g:session_autosave='prompt' " default='prompt', / 'yes' / 'no'. | |
let g:session_default_to_last=0 " if =1, plugin will not use default session, instead of use last session. | |
" }}} | |
" }}} | |
" [ statusline ] {{{ | |
" Bundle 'millermedeiros/vim-statline.git' | |
" more info statusline | |
" Bundle 'avakarev/vim-watchdog.git' | |
" show u as much good info in statusline . | |
" }}} | |
" [ command line ] {{{ | |
Bundle 'CmdlineComplete' | |
" complete for (:/etc), <C-n>/<C-p> | |
" }}} | |
" [ paste ] {{{ | |
" Bundle 'tpope/vim-pastie.git' | |
" :1,10Pastie :%Pastie (paste current file), :Pastie a (paste register a) | |
" :Pastie @ (paste selection/clipboard) :0Pastie (load newest paste) | |
" :Pastie to paste buffer,line,file,selection,registers etc. | |
" ( the parser used is derived from the vim filetype ) | |
" :help pastie.txt | |
" publish code | |
Bundle 'xolox/vim-publish.git' | |
" TODO how to publish code ? | |
" Bundle 'publish.vim' " use 2html.vim | |
" }}} | |
" [ undo history ] {{{ | |
" Bundle 'Gundo' | |
" {{{ F8 | |
" let g:gundo_width = 60 | |
let g:gundo_preview_height = 15 | |
let g:gundo_right = 1 | |
nnoremap <silent> <F7> :GundoToggle<CR> | |
" }}} | |
" }}} | |
" [ speech ] {{{ | |
" Bundle 'Speech' | |
" use Google API to record and speech. | |
" }}} | |
" [ encrypt ] {{{ | |
" Bundle 'gnupg.vim' | |
" }}} | |
" [ InputMehod ] {{{ | |
" Bundle 'VimIM' | |
" Vim chinese InputMehod | |
" }}} | |
" [ vim FAQ ] {{{ | |
" Bundle 'vim_faq' | |
" {{{ :help vim_faq.txt | |
" }}} | |
" Bundle 'vim_faq.vim' | |
" }}} | |
" [ vim colorscheme ] {{{ | |
" Bundle 'djjcast/mirodark.git' | |
" }}} | |
" [ vim tools ] {{{ | |
" Bundle 'xolox/vim-reload.git' | |
" :ReloadScript /path/to/file.vim to reload script. | |
let g:reload_on_write = 0 " avoid slow vim down. | |
" }}} | |
" [ shell ] {{{ | |
" Bundle 'xolox/vim-shell.git' | |
" }}} | |
" [ misc ] {{{ | |
" [ text-object ] {{{ | |
Bundle 'jiangmiao/auto-pairs.git' | |
let g:AutoPairs={'(':')', '[':']', '{':'}',"'":"'",'"':'"','<':'>'} | |
let g:AutoPairsShortcutToggle='<M-p>' | |
let g:AutoPairsShortcutFastWrap='<M-e>' | |
let g:AutoPairsShortcuts=1 | |
Bundle 'tpope/vim-surround.git' | |
" {{{ cs, ds, ys[(text object)|iw|W|t(<p>)], (Visual)S | |
" cs"', cs'<q>, cst", ds", ysiw], yss(, ds{ds), Visual(V): S<p class="important"> | |
" :help surround.txt | |
" }}} | |
" Bundle 'CountJump' | |
" Bundle 'camelcasemotion' | |
" Bundle 'Txtfmt-The-Vim-Highlighter' | |
" learn ":help txtfmt" | |
" try Align.vim | |
" }}} | |
" [ key map ] | |
" TODO install this. Bundle is not available yet. | |
" Bundle 'mappingmanager' | |
" http://www.vim.org/scripts/script.php?script_id=3768#1.0 | |
" }}} | |
" }}} | |
" [ vundle end ] {{{ | |
filetype plugin on | |
filetype plugin indent on " required! | |
set wildignore+=doc,.git " should not break helptags and clone. | |
" }}} | |
" }}} | |
" [[ pathogen ]] {{{2 | |
" [ add bundle ] {{{ | |
" ~/.vim/autoload/pathogen.vim | |
" ~/.vim/bundle | |
" | |
" cd ~/.vim/bundle | |
" git clone git://github.com/tpope/vim-fugitive.git | |
" :helptags | |
" }}} | |
"call pathogen#infect('stuff') | |
"call pathogen#infect() | |
"syntax on | |
"filetype plugin indent on | |
" }}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment