Maintainer:
Version:
Last Change:
Sections:
Tip:
Example:
set nocompatible
set history=400
filetype plugin on
filetype indent on
set autoread
set mouse=a
let mapleader = ","
let g:mapleader = ","
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>
map <leader>s :source ~/vim_local/vimrc<cr>
map <leader>e :e! ~/vim_local/vimrc<cr>
autocmd! bufwritepost vimrc source ~/vim_local/vimrc
syntax enable
if MySys() == "mac"
set gfn=Bitstream/ Vera/ Sans/ Mono:h14
set nomacatsui
set termencoding=macroman
elseif MySys() == "linux"
set gfn=Monospace/ 11
endif
if has("gui_running")
set guioptions-=T
let psc_style='cool'
colorscheme ps_color
else
set background=dark
colorscheme zellner
endif
map <leader>1 :set syntax=cheetah<cr>
map <leader>2 :set syntax=xhtml<cr>
map <leader>3 :set syntax=python<cr>
map <leader>4 :set ft=javascript<cr>
map <leader>$ :syntax sync fromstart<cr>
autocmd BufEnter * :syntax sync fromstart
if has("gui_running")
set cursorline
hi cursorline guibg=#333333
hi CursorColumn guibg=#333333
endif
hi Pmenu guibg=#333333
hi PmenuSel guibg=#555555 guifg=#ffffff
set ffs=unix,dos,mac
nmap <leader>fd :se ff=dos<cr>
nmap <leader>fu :se ff=unix<cr>
set so=7
set wildmenu
set ruler
set cmdheight=2
set nu
set lz
set hid
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
set ignorecase
set incsearch
set magic
set noerrorbells
set novisualbell
set t_vb=
set showmatch
set mat=2
set hlsearch
set laststatus=2
function! CurDir()
let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
return curdir
endfunction
set statusline=/ %F%m%r%h/ %w/ / CWD:/ %r%{CurDir()}%h/ / / Line:/ %l/%L:%c
function! VisualSearch(direction) range
let l:saved_reg = @"
execute "normal! vgvy"
let l:pattern = escape(@", '///.*$^~[]')
let l:pattern = substitute(l:pattern, "/n___FCKpd___0quot;, "", "")
if a:direction == 'b'
execute "normal ?" . l:pattern . "^M"
else
execute "normal /" . l:pattern . "^M"
endif
let @/ = l:pattern
let @" = l:saved_reg
endfunction
vnoremap <silent> * :call VisualSearch('f')<CR>
vnoremap <silent> # :call VisualSearch('b')<CR>
map <space> /
map <c-space> ?
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
"Buffer related"
map <leader>bd :Bclose<cr>
map <down> <leader>bd
map <right> :bn<cr>
map <left> :bp<cr>
map <leader>tn :tabnew %<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
try
set switchbuf=usetab
set stal=2
catch
endtry
imap <m-$> <esc>$a
imap <m-0> <esc>0i
imap <D-___FCKpd___0gt; <esc>$a
imap <D-0> <esc>0i
map <leader>cd :cd %:p:h<cr>
vnoremap $1 <esc>`>a)<esc>`<i(<esc>
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $ <esc>`>a"<esc>`<i"<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $w <esc>`>a"<esc>`<i"<esc>
inoremap $1 ()<esc>:let leavechar=")"<cr>i
inoremap $2 []<esc>:let leavechar="]"<cr>i
inoremap $4 {<esc>o}<esc>:let leavechar="}"<cr>O
inoremap $3 {}<esc>:let leavechar="}"<cr>i
inoremap $q ''<esc>:let leavechar="'"<cr>i
inoremap $w ""<esc>:let leavechar='"'<cr>i
au BufNewFile,BufRead *./(vim/)/@! inoremap " ""<esc>:let leavechar='"'<cr>i
au BufNewFile,BufRead *./(txt/)/@! inoremap ' ''<esc>:let leavechar="'"<cr>i
imap <m-l> <esc>:exec "normal f" . leavechar<cr>a
imap <d-l> <esc>:exec "normal f" . leavechar<cr>a
iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
iab xname Amir Salihefendic
map 0 ^
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
if MySys() == "mac"
nmap <D-j> <M-j>
nmap <D-k> <M-k>
vmap <D-j> <M-j>
vmap <D-k> <M-k>
endif
func! DeleteTrailingWS()
exe "normal mz"
%s//s/+$//ge
exe "normal `z"
endfunc
autocmd BufWrite *.py :call DeleteTrailingWS()
set completeopt=menu
func! Cwd()
let cwd = getcwd()
return "e
endfunc
func! DeleteTillSlash()
let g:cmd = getcmdline()
if MySys() == "linux" || MySys() == "mac"
let g:cmd_edited = substitute(g:cmd, "//(.*/[//]//).*", "//1", "")
else
let g:cmd_edited = substitute(g:cmd, "//(.*/[////]//).*", "//1", "")
endif
if g:cmd == g:cmd_edited
if MySys() == "linux" || MySys() == "mac"
let g:cmd_edited = substitute(g:cmd, "//(.*/[//]//).*/", "//1", "")
else
let g:cmd_edited = substitute(g:cmd, "//(.*/[/////]//).*/[/////]", "//1", "")
endif
endif
return g:cmd_edited
endfunc
func! CurrentFileDir(cmd)
return a:cmd . " " . expand("%:p:h") . "/"
endfunc
cno $h e ~/
cno $d e ~/Desktop/
cno $j e ./
cno $q <C-/>eDeleteTillSlash()<cr>
cno $c e <C-/>eCurrentFileDir("e")<cr>
cno $tc <C-/>eCurrentFileDir("tabnew")<cr>
cno $th tabnew ~/
cno $td tabnew ~/Desktop/
cnoremap <C-A> <Home>
cnoremap <C-E> <End>
cnoremap <C-K> <C-U>
map <c-q> :sb
map <leader>q :e ~/buffer<cr>
set viminfo='10,/"100,:20,%,n~/.viminfo
au BufReadPost * if line("'/"") > 0|if line("'/"") <= line("___FCKpd___0quot;)|exe("norm '/"")|else|exe "norm ___FCKpd___0quot;|endif|endif
map <F9> ggVGg?
command! Bclose call <SID>BufcloseCloseIt()
function! <SID>BufcloseCloseIt()
let l:currentBufNum = bufnr("%")
let l:alternateBufNum = bufnr("#")
if buflisted(l:alternateBufNum)
buffer #
else
bnext
endif
if bufnr("%") == l:currentBufNum
new
endif
if buflisted(l:currentBufNum)
execute("bdelete! ".l:currentBufNum)
endif
endfunction
set nobackup
set nowb
set noswapfile
set nofen
set fdl=0
set expandtab
set shiftwidth=2
map <leader>t2 :set shiftwidth=2<cr>
map <leader>t4 :set shiftwidth=4<cr>
au FileType html,python,vim,javascript setl shiftwidth=2
au FileType html,python,vim,javascript setl tabstop=2
au FileType java setl shiftwidth=4
au FileType java setl tabstop=4
set smarttab
set lbr
set tw=500
set ai
set si
set cindent
set wrap
map <leader>sn ]s
map <leader>sp [s
map <leader>sa zg
map <leader>s? z=
let Grep_Skip_Dirs = 'RCS CVS SCCS .svn'
let Grep_Cygwin_Find = 1
map <leader>y :YRShow<cr>
let g:explVertical=1
let g:explWinSize=35
let g:explSplitLeft=1
let g:explSplitBelow=1
let g:explHideFiles='^/.,.*/.class$,.*/.swp$,.*/.pyc$,.*/.swo$,/.DS_Store let g:explDetailedHelp=0 let g:miniBufExplModSelTarget = 1 let g:miniBufExplorerMoreThanOne = 2 let g:miniBufExplModSelTarget = 0 let g:miniBufExplUseSingleClick = 1 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplVSplit = 25 let g:miniBufExplSplitBelow=1 let g:bufExplorerSortBy = "name" autocmd BufRead,BufNew :call UMiniBufExplorer "/sw/bin/ctags-exuberant" "name" set grepprg=grep/ -nH/ $* let g:Tex_DefaultTargetFormat="pdf" let g:Tex_ViewRule_pdf='xpdf' autocmd FileType tex map <silent><leader><space> :w!<cr> :silent! call Tex_RunLaTeX()<cr> autocmd FileType tex inoremap $i /indent autocmd FileType tex inoremap $* /cdot autocmd FileType tex inoremap $i /item autocmd FileType tex inoremap $m /[<cr>/]<esc>O au BufNewFile,BufRead *.todo so ~/vim_local/syntax/amido.vim autocmd FileType vim map <buffer> <leader><space> :w!<cr>:source %<cr> let xml_use_xhtml = 1 let html_use_css = 1 let html_number_lines = 0 let use_xhtml = 1 autocmd FileType ruby map <buffer> <leader><space> :w!<cr>:!ruby %<cr> autocmd FileType php compiler php autocmd FileType php map <buffer> <leader><space> <leader>cd:w<cr>:make %<cr> au FileType python so ~/vim_local/syntax/python.vim autocmd FileType python map <buffer> <leader><space> :w!<cr>:!python %<cr> autocmd FileType python so ~/vim_local/plugin/python_fold.vim autocmd FileType python set makeprg=python/ -c/ /"import/ py_compile,sys;/ sys.stderr=sys.stdout;/ py_compile.compile(r'%')/" autocmd FileType python set efm=%C/ %.%#,%A/ / File/ /"%f/"//,/ line/ %l%.%#,%Z%[%^/ ]%//@=%m au FileType python set cindent au FileType python inoremap <buffer> $r return au FileType python inoremap <buffer> $s self au FileType python inoremap <buffer> $c ##<cr>#<space><cr>#<esc>kla au FileType python inoremap <buffer> $i import au FileType python inoremap <buffer> $p print au FileType python inoremap <buffer> $d """<cr>"""<esc>O function! Python_Eval_VSplit() range let src = tempname() let dst = tempname() execute ": " . a:firstline . "," . a:lastline . "w " . src execute ":!python " . src . " > " . dst execute ":pedit! " . dst endfunction au FileType python vmap <F7> :call Python_Eval_VSplit()<cr> autocmd FileType cheetah set ft=xml autocmd FileType cheetah set syntax=cheetah autocmd FileType vim set nofen au FileType java inoremap <buffer> <C-t> System.out.println();<esc>hi autocmd FileType java source ~/vim_local/macros/jcommenter.vim autocmd FileType java let b:jcommenter_class_author='Amir Salihefendic ([email protected])' autocmd FileType java let b:jcommenter_file_author='Amir Salihefendic ([email protected])' autocmd FileType java map <buffer> <F2> :call JCommentWriter()<cr> autocmd FileType java inoremap <buffer> $pr private autocmd FileType java inoremap <buffer> $r return autocmd FileType java inoremap <buffer> $pu public autocmd FileType java inoremap <buffer> $i import autocmd FileType java inoremap <buffer> $b boolean autocmd FileType java inoremap <buffer> $v void autocmd FileType java inoremap <buffer> $s String function! JavaFold() setl foldmethod=syntax setl foldlevelstart=1 syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend syn match foldImports //(/n/?import./+;/n/)/+/ transparent fold function! FoldText() return substitute(getline(v:foldstart), '{.*', '{...}', '') endfunction setl foldtext=FoldText() endfunction au FileType java call JavaFold() au FileType java setl fen au BufEnter *.sablecc,*.scc set ft=sablecc au FileType javascript so ~/vim_local/syntax/javascript.vim function! JavaScriptFold() setl foldmethod=syntax setl foldlevelstart=1 syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend function! FoldText() return substitute(getline(v:foldstart), '{.*', '{...}', '') endfunction setl foldtext=FoldText() endfunction au FileType javascript call JavaScriptFold() au FileType javascript setl fen au FileType javascript imap <c-t> console.log();<esc>hi au FileType javascript imap <c-a> alert();<esc>hi au FileType javascript setl nocindent au FileType javascript inoremap <buffer> $r return au FileType javascript inoremap <buffer> $d //<cr>//<cr>//<esc>ka<space> au FileType javascript inoremap <buffer> $c /**<cr><space><cr>**/<esc>ka au FileType html,cheetah set ft=xml au FileType html,cheetah set syntax=html autocmd FileType c map <buffer> <leader><space> :w<cr>:!gcc %<cr> autocmd FileType sml map <silent> <buffer> <leader><space> <leader>cd:w<cr>:!sml %<cr> autocmd BufNewFile,BufRead *.scm map <buffer> <leader><space> <leader>cd:w<cr>:!petite %<cr> autocmd BufNewFile,BufRead *.scm inoremap <buffer> <C-t> (pretty-print )<esc>i autocmd BufNewFile,BufRead *.scm vnoremap <C-t> <esc>`>a)<esc>`<i(pretty-print <esc> map <F8> :new<CR>:read !svn diff<CR>:set syntax=diff buftype=nofile<CR>gg autocmd FileType python inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement("def <++>(<++>):/n<++>/nreturn <++>")<cr> autocmd FileType python inorea <buffer> cclass <c-r>=IMAP_PutTextWithMovement("class <++>:/n<++>")<cr> autocmd FileType python inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement("for <++> in <++>:/n<++>")<cr> autocmd FileType python inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement("if <++>:/n<++>")<cr> autocmd FileType python inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement("if <++>:/n<++>/nelse:/n<++>")<cr> autocmd FileType cheetah,html,javascript inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement("function <++>(<++>) {/n<++>;/nreturn <++>;/n}")<cr> autocmd filetype cheetah,html,javascript inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement("for(<++>; <++>; <++>) {/n<++>;/n}")<cr> autocmd FileType cheetah,html,javascript inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement("if(<++>) {/n<++>;/n}")<cr> autocmd FileType cheetah,html,javascript inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement("if(<++>) {/n<++>;/n}/nelse {/n<++>;/n}")<cr> autocmd FileType cheetah,html inorea <buffer> cahref <c-r>=IMAP_PutTextWithMovement('<a href="<++>"><++></a>')<cr> autocmd FileType cheetah,html