`
isiqi
  • 浏览: 15949217 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Vim个人配置文件

阅读更多

这几天一直在配置自己的Vim工作环境,主要是对~/.vimrc的配置。

以《史上最牛的Vim配置文件》为基础,形成自己的Vim环境,不过看了几天,整个.vimrc还是只看明白了20%

.vimrc内容如下:

——————————————————————————————————————

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" _
" __ |
" / | /
" __ |
" by Amix - http://amix.dk/
"
" Maintainer: Amir Salihefendic
" Version: 2.0
" Last Change: 12/08/06 13:39:28
" Fixed (win32 compatible) by: redguardtoo
" This vimrc file is tested on platforms like win32,linux, cygwin,mingw
" and vim7.0, vim6.4, vim6.1, vim5.8.9 by redguardtoo
"
" Tip:
" If you find anything that you can't understand than do this:
" help keyword OR helpgrep keyword
" Example:
" Go into command-line mode and type helpgrep nocompatible, ie.
" :helpgrep nocompatible
" then press c to see the results, or :botright cw
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Get out of VI's compatible mode..
set nocompatible

function! MySys()
return "linux"
endfunction

"Set shell to be bash
if MySys() == "linux"
set shell=bash
else
"I have to run win32 python without cygwin
"set shell=E:cygwininsh
endif

"Sets how many lines of history VIM har to remember
set history=400

"Enable filetype plugin
filetype on
if has("eval") && v:version>=600
filetype plugin on
filetype indent on
endif

"Set to auto read when a file is changed from the outside
if exists("&autoread")
set autoread
endif

"Audo complete
set completeopt=longest,menu

"Have the mouse enabled all the time:
"set mouse=a

"Set mapleader
let mapleader = ","
let g:mapleader = ","

"Fast saving
nmap w :w!
"imap :wai
"nmap :wa

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => QuickFix
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap :cn
nmap :cp

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Grep
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap :Rgrep

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Colors and Font
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Enable syntax hl
if MySys()=="linux"
if v:version<600
if filereadable(expand("$VIM/syntax/syntax.vim"))
syntax on
endif
else
syntax on
endif
else
syntax on
endif

"Set chinese help doc
set helplang=cn

"internationalization
"I only work in Win2k Chinese version
if has("multi_byte")
set termencoding=chinese
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese
endif

"if you use vim in tty,
"'uxterm -cjk' or putty with option 'Treat CJK ambiguous characters as wide' on
if exists("&ambiwidth")
set ambiwidth=double
endif

if has("gui_running")
set guioptions-=m
set guioptions-=T
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R

if MySys()=="win32"
"start gvim maximized
if has("autocmd")
au GUIEnter * simalt ~x
endif
endif
"let psc_style='cool'
"colorscheme ps_color
"colorscheme default
else
"set background=dark
"colorscheme default
endif

"Some nice mapping to switch syntax (useful if one mixes different languages in one file)
map 1 :set syntax=cheetah
map 2 :set syntax=xhtml
map 3 :set syntax=python
map 4 :set ft=javascript
map $ :syntax sync fromstart

"Highlight current
if has("gui_running")
if exists("&cursorline")
set cursorline
endif
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Fileformat
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Favorite filetype
set ffs=unix,dos,mac

nmap fd :se ff=dos
nmap fu :se ff=unix

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Set 7 lines to the curors - when moving vertical..
set so=7

"Turn on WiLd menu
set wildmenu

"Always show current position
set ruler

"The commandbar is 1 high
set cmdheight=1

"Show line number
set nu!

"Do not redraw, when running macros.. lazyredraw
set lz

"Change buffer - without saving
set hid

"Set backspace
set backspace=eol,start,indent

"Set paste
set paste

"Bbackspace and cursor keys wrap to
set whichwrap+=<,>,h,l

"Ignore case when searching
"set ignorecase
set incsearch

"Set magic on
set magic

"No sound on errors.
set noerrorbells
set novisualbell
set t_vb=

"show matching bracet
set showmatch

"How many tenths of a second to blink
set mat=4

"Highlight search thing
set hlsearch

"Word newline
set linebreak

"Auto set working dir
set autochdir

""""""""""""""""""""""""""""""
" => Statusline
""""""""""""""""""""""""""""""
"Format the statusline
" Nice statusbar
set laststatus=2
set statusline=
set statusline+=%2*%-3.3n%0*\ " buffer number
set statusline+=%f\ " file name
set statusline+=%h%1*%m%r%w%0* " flag
set statusline+=[
if v:version >= 600
set statusline+=%{strlen(&ft)?&ft:'none'}, " filetype
set statusline+=%{&encoding}, " encoding
endif
set statusline+=%{&fileformat}] " file format
if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
set statusline+=\ %{VimBuddy()} " vim buddy
endif
set statusline+=%= " right align
set statusline+=%2*0x%-8B\ " current char
set statusline+=%-14.(%l,%c%V%)\ %<%P " offset

" special statusbar for special window
if has("autocmd")
au FileType qf
\ if &buftype == "quickfix" |
\ setlocal statusline=%2*%-3.3n%0* |
\ setlocal statusline+=\ \[Compiler\ Messages\] |
\ setlocal statusline+=%=%2*\ %<%P |
\ endif

fun! FixMiniBufExplorerTitle()
if "-MiniBufExplorer-" == bufname("%")
setlocal statusline=%2*%-3.3n%0*
setlocal statusline+=\[Buffers\]
setlocal statusline+=%=%2*\ %<%P
endif
endfun

if v:version>=600
au BufWinEnter *
\ let oldwinnr=winnr() |
\ windo call FixMiniBufExplorerTitle() |
\ exec oldwinnr . " wincmd w"
endif
endif

" Nice window title
if has('title') && (has('gui_running') || &title)
set titlestring=
set titlestring+=%f\ " file name
set titlestring+=%h%m%r%w " flag
set titlestring+=\ -\ %{v:progname} " program name
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Current window option
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap wv v
nmap wc c
nmap ws s

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Moving around and tab
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Map space to / and c-space to ?
map /

"Smart way to move btw. window
map j
map k
map h
map l

""Actually, the tab does not switch buffers, but my arrow
""Bclose function ca be found in "Buffer related" section
"map bd :Bclose
"map bd
""Use the arrows to something usefull
"map :bn
"map :bp

"Tab configuration
map tn :tabnew %
map tc :tabclose
map tm :tabmove

if v:version>=700
set switchbuf=usetab
endif

if exists("&showtabline")
set stal=2
endif

"Moving fast to front, back and 2 sides ;)
imap $a
imap 0i
imap $a
imap 0i

"Moving cursor in insert mode
imap ja
imap ha
imap ka
imap la

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General Autocommand
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map cd :cd %:p:h

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Parenthesis/bracket expanding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vnoremap $1 `>a)`
vnoremap $2 `>a]`
vnoremap $3 `>a}`
vnoremap $4 `>a*/`
vnoremap $$ `>a"`
vnoremap $q `>a'`

"Map auto complete of (, ", ', [
"http://www.vim.org/tips/tip.php?tip_id=153
"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General Abbrev
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Comment for C like language
if has("autocmd")
au BufNewFile,BufRead *.js,*.htc,*.c,*.tmpl,*.css ino $c /** **/O
endif

"My information
ia xdate =strftime("%d/%m/%y %H:%M:%S")
"iab xname Amir Salihefendic

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Editing mappings etc.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Remap VIM 0
map 0 $
map 9 ^

"Move a line of text using control
nmap mz:m+`z
nmap mz:m-2`z
vmap :m'>+`mzgv`yo`z
vmap :m'<-2`>my`

if MySys() == "mac"
nmap
nmap
vmap
vmap
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Command-line config
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
func! Cwd()
let cwd = getcwd()
return "e " . cwd
endfunc

func! DeleteTillSlash()
let g:cmd = getcmdline()
if MySys() == "linux" || MySys() == "mac"
let g:cmd_edited = substitute(g:cmd, "(.*[/]).*", "", "")
else
let g:cmd_edited = substitute(g:cmd, "(.*[\]).*", "", "")
endif
if g:cmd == g:cmd_edited
if MySys() == "linux" || MySys() == "mac"
let g:cmd_edited = substitute(g:cmd, "(.*[/]).*/", "", "")
else
let g:cmd_edited = substitute(g:cmd, "(.*[\]).*[\]", "", "")
endif
endif
return g:cmd_edited
endfunc

func! CurrentFileDir(cmd)
return a:cmd . " " . expand("%:p:h") . "/"
endfunc

"cno $q eDeleteTillSlash()
"cno $c e eCurrentFileDir("e")
"cno $tc eCurrentFileDir("tabnew")
cno $th tabnew ~/
cno $td tabnew ~/Desktop/

"Bash like
cno
cno
cno

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Buffer realted
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Fast open a buffer by search for a name
"map :sb

"Open a dummy buffer for paste
"map q :e ~/buffer

"Restore cursor to file position in previous editing session
set viminfo='10,"100,:20,%,n~/.viminfo

" Buffer - reverse everything ... :)
map ggVGg?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Files and backup
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Turn backup off
set nobackup
set nowb
"set noswapfile

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Folding
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Enable folding, I find it very useful
if exists("&foldenable")
set fen
endif

if exists("&foldlevel")
set fdl=0
endif

"set foldmethod=sytnax
"set foldlevel=100

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Text option
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" python script
"set expandtab
set shiftwidth=2
set softtabstop=2
set tabstop=2
set backspace=2
set smarttab
set lbr
"set tw=500

""""""""""""""""""""""""""""""
" => Indent
""""""""""""""""""""""""""""""
"Auto indent
set ai!

"Smart indet
set si

"C-style indenting
set cindent

"Wrap line
set wrap

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Spell checking
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map sn ]
map sp [
map sa zg
map s? z=

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""
" => Yank Ring
""""""""""""""""""""""""""""""
map y :YRShow

""""""""""""""""""""""""""""""
" => File explorer
""""""""""""""""""""""""""""""
"Split vertically
let g:explVertical=1

"Window size
let g:explWinSize=35

let g:explSplitLeft=1
let g:explSplitBelow=1

"Hide some file
let g:explHideFiles='^.,.*.class$,.*.swp$,.*.pyc$,.*.swo$,.DS_Store$'

"Hide the help thing..
let g:explDetailedHelp=0

""""""""""""""""""""""""""""""
" => Minibuffer
""""""""""""""""""""""""""""""
let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne = 0
let g:miniBufExplModSelTarget = 0
let g:miniBufExplUseSingleClick = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplVSplit = 25
let g:miniBufExplSplitBelow=1

"WindowZ
map :WMToggle

let g:bufExplorerSortBy = "name"

""""""""""""""""""""""""""""""
" => Tag list (ctags) - not used
""""""""""""""""""""""""""""""
"let Tlist_Ctags_Cmd = "/sw/bin/ctags-exuberant"
"let Tlist_Sort_Type = "name"
"let Tlist_Show_Menu = 1
"map t :Tlist
map :Tlist
set tags=/home/sunyubo/pH1sLDM_prot/sample/STF_LDM/tags

""""""""""""""""""""""""""""""
" => Cscope setting
""""""""""""""""""""""""""""""
"cs add /home/sunyubo/pH1sLDM_prot/sample/STF_LDM/cscope.out /home/sunyubo/pH1sLDM_prot/sample/STF_LDM/

""""""""""""""""""""""""""""""
" => LaTeX Suite thing
""""""""""""""""""""""""""""""
"set grepprg=grep -r -s -n
let g:Tex_DefaultTargetFormat="pdf"
let g:Tex_ViewRule_pdf='xpdf'

if has("autocmd")
"Binding
au BufRead *.tex map :w! :silent! call Tex_RunLaTeX()

"Auto complete some things ;)
au BufRead *.tex ino $i indent
au BufRead *.tex ino $* cdot
au BufRead *.tex ino $i item
au BufRead *.tex ino $m []O
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Filetype generic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Todo
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"au BufNewFile,BufRead *.todo so ~/vim_local/syntax/amido.vim

""""""""""""""""""""""""""""""
" => VIM
""""""""""""""""""""""""""""""
if has("autocmd") && v:version>600
au BufRead,BufNew *.vim map :w!:source %
endif

""""""""""""""""""""""""""""""
" => HTML related
""""""""""""""""""""""""""""""
" HTML entities - used by xml edit plugin
let xml_use_xhtml = 1
"let xml_no_auto_nesting = 1

"To HTML
let html_use_css = 0
let html_number_lines = 0
let use_xhtml = 1

""""""""""""""""""""""""""""""
" => Ruby & PHP section
""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""
" => Python section
""""""""""""""""""""""""""""""
""Run the current buffer in python - ie. on leader+space
"au BufNewFile,BufRead *.py so ~/vim_local/syntax/python.vim
"au BufNewFile,BufRead *.py map :w!:!python %
"au BufNewFile,BufRead *.py so ~/vim_local/plugin/python_fold.vim

""Set some bindings up for 'compile' of python
"au BufNewFile,BufRead *.py set makeprg=python -c "import py_compile,sys; sys.stderr=sys.stdout; py_compile.compile(r'%')"
"au BufNewFile,BufRead *.py set efm=%C %.%#,%A File "%f", line %l%.%#,%Z%[%^ ]%@=%m
"au BufNewFile,BufRead *.py nmap :w!:make

""Python iMap
"au BufNewFile,BufRead *.py set cindent
"au BufNewFile,BufRead *.py ino $r return
"au BufNewFile,BufRead *.py ino $s self
"au BufNewFile,BufRead *.py ino $c ####kla
"au BufNewFile,BufRead *.py ino $i import
"au BufNewFile,BufRead *.py ino $p print
"au BufNewFile,BufRead *.py ino $d """"""O

""Run in the Python interpreter
"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 BufNewFile,BufRead *.py vmap :call Python_Eval_VSplit()

""""""""""""""""""""""""""""""
" => Cheetah section
"""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""
" => Java section
"""""""""""""""""""""""""""""""

""""""""""""""""""""""""""""""
" => JavaScript section
"""""""""""""""""""""""""""""""
"au BufNewFile,BufRead *.js so ~/vim_local/syntax/javascript.vim
"function! JavaScriptFold()
" set foldmethod=marker
" set foldmarker={,}
" set foldtext=getline(v:foldstart)
"endfunction
"au BufNewFile,BufRead *.js call JavaScriptFold()
"au BufNewFile,BufRead *.js imap console.log();hi
"au BufNewFile,BufRead *.js imap alert();hi
"au BufNewFile,BufRead *.js set nocindent
"au BufNewFile,BufRead *.js ino $r return

"au BufNewFile,BufRead *.js ino $d //////ka
"au BufNewFile,BufRead *.js ino $c /****/ka

if has("eval") && has("autocmd")
"vim 5.8.9 on mingw donot know what is , so I avoid to use function
"c/cpp
fun! Abbrev_cpp()
ia cci const_iterator
ia ccl cla
ia cco const
ia cdb bug
ia cde throw
ia cdf /** file/
ia cdg ingroup
ia cdn /** Namespace /
ia cdp param
ia cdt test
ia cdx /**/
ia cit iterator
ia cns Namespace ianamespace
ia cpr protected
ia cpu public
ia cpv private
ia csl std::list
ia csm std::map
ia css std::string
ia csv std::vector
ia cty typedef
ia cun using Namespace ianamespace
ia cvi virtual
ia #i #include
ia #d #define
endfunction

fun! Abbrev_java()
ia #i import
ia #p System.out.println
ia #m public static void main(String[] args)
endfunction

fun! Abbrev_python()
ia #i import
ia #p print
ia #m if __name__=="__main":
endfunction
augroup abbreviation
au!
au FileType cpp,c :call Abbrev_cpp()
au FileType java :call Abbrev_java()
au FileType python :call Abbrev_python()
augroup END
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => MISC
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Remove the Windows ^M
noremap m :%s/r//g

"Paste toggle - when pasting something in, don't indent.
"set pastetoggle=

"Remove indenting on empty line
"map :%s/\s*$//g:noh''

"Super paste
ino :set pastemui+mv'uV'v=:set nopaste

——————————————————————————————————————

在运行过程发生过backspace不能删除前一个字符,但可以向前移动的问题,经过多次查找努力尝试,最后在.vimrc中加入了set paste,最终OK。不过现在在插入模式时会提示Insert (paste),不知其中有蹊跷。

分享到:
评论

相关推荐

    vim的配置文件主要是c c++的配置

    配置vim编写c c++ java 等程序,个人的一个vim配置,挺好用的,一直用

    ubuntu下vim配置文件

    本文档主要对ubuntu下的vim进行了一些配置,在创建文件可以自动将个人信息和头文件加上。需要的朋友可以下载试试

    个人vim配置文件.vimrc

    个人的vim配置文件,进行了很多个性化的配置,供大家参考。

    个人vim配置包,字体,主题,plug管理器,和配置文件

    个人vim配置使用的配置文件,字体,主题,方便快速配置

    Vim/Gvim配置文件+配色方案_By Marslo

    ,v: 打开配置文件 ,te: 打开俄罗斯方块(熟悉HJKL键) tv: 在gvim中打开bash命令行(是的,你没看错!!) pyli: python静态代码测试 (保持代码规范,远离砍手砍脚) -----------------------------------------...

    vim个人配置好的开发环境,支持macosx/linux/windows

    个人常用vim的IDE开发环境2015最新版。。 vim的快捷键和常用插件都已配好。。 支持cscope ctag,扩展工具栏,支持各类代码跳转查看。可以完全替代sourceinsight 支持自动编译输出窗口 支持代码符号定义快速预览...

    my_vimrc:个人vim的配置文件

    用于备份我的.vimrc文件,防止丢失重新配置

    vim配置文件插件打包下载

    个人vim配置包,常用插件和宏定义均已包含在内,快捷键一应俱全,可以完全作为C/C++/PYTHON/PERL的开发调试环境。

    system-config:tmux,i3,vim和配置文件的个人配置文件

    个人Vim配置文件 它使用Vim-Plug作为PluginManager,如果Vim-Plug需要任何帮助,可以在找到它。 要正确设置,您需要在~克隆仓库,然后运行: ln -s system-config/.config/vim ~/.vimrc :PlugInstall ln -s system...

    Vim个人配置

    我个人的vim配置文件,按照自己的喜好做了修改,解压后直接覆盖就可以了。

    vimrc vim配置文件

    漂亮的vimrc 个人配置 工具具体学习修改文件头

    vim配置文件

    vim配置文件,个人配置,仅供参考。 含cscope的快捷键。

    Vim 配置文件

    自己的配置文件,为python和perl打造。 开启最大化 (win32用户直接就可以最大化,但是linux用户则需要安装wmctrl,详情参见:http://download.csdn.net/detail/jiaoxiaogu/4317843) 配置了MiniBuffer 添加了...

    vim(win7)配置文件

    这样配置很爽,我个人感觉很不错,很适合使用,大家可以互相学习一下

    vim 配置文件

    个人觉得完全够用的vim配置文件。自己添加了一个taglist。方便看代码。

    ubuntu vim配置

    个人习惯的vim配置 比如能保存上次的编辑的位置 解决windowx文件打开乱码问题 高亮等等

    linux 下 vim 配置

    vim 是和很好的编辑工具,通过简单的配置,可以很好的适应C/C++ 的编码习惯,只需将 该配置文件 替换到 linux 跟目录下 :/etc/vimrc 替换成该文件即可,很好用的,完全个人实践,,,

    vim配置,包含自己写的说明,很全,很好用

    vimrc, gvimrc 是我个人使用的 vim 配置文件, 主要是绑定了一些快捷键, 比如打开新的 tab, 或是打开函数列表 cp vimrc ~/.vimrc cp gvimrc ~/.gvimrc taglist.vim 是用于在 vim 中显示函数列表的插件 mkdir -p ~/....

    vim:个人Vim个人资料

    vim个人Vim配置,不一定适合每个人,选择你需要的整合到自己配置中:配置入口是init.vim,主要配置集中在init目录下。 (本文档严重滞后后功能,懒得更新了)安装Linux:新建~/.vim目录,把项目克隆到~/.vim/vim下面...

    vim-config:我的个人Vim配置文件

    vim-config:我的个人Vim配置文件

Global site tag (gtag.js) - Google Analytics