2023年8月3日发(作者:)
" 在处理未保存或只读文件的时候,弹出确认 set confirm " 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
"Tlist 和 wm的设置
"命令模式输入wm打开Tlist和WM
set showcmd
"Taglist插件的设置
let g:Tlist_Use_Right_Window=1
let g:Tlist_Show_One_File=1
let g:Tlist_Compact_Format=1
let Tlist_Exit_OnlyWindow=1
let g:winManagerWindowLayout='FileExplorer|TagList'
"Tree explorer的设置
let g:treeExplVertical=1
let g:treeExplWinSize=30
"gvim打开以后最大化
"au GUIEnter * simalt ~x
"光标在窗口上下边界时距离边界7行即开始滚屏
set so=7
"配色
" Avoid clearing hilight definition in plugins
if !exists("g:vimrc_loaded")
" color scheme
if has("gui_running")
set guioptions-=T "隐藏工具栏
set guioptions-=m
set guioptions-=L
set guioptions-=r
color blackboard
"colorscheme professional
"set guifont=YaHeiConsolasHybrid 13
set guifont=Monaco 13
"中文字体
set guifontset=Microsoft YaHei 13
"对于html,xml文件,通过ctrl+_来closetag
if has("autocmd")
autocmd FileType text,xml,html,perl,shell,bash,python,vim,php,ruby color blackboard
autocmd FileType xml,html vmap
autocmd FileType java,c,cpp,cs color desertEx
autocmd FileType
html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal
textwidth=100
autocmd Filetype html,xml,xsl source ~/.vim/plugin/
endif " has("autocmd")
else
color desert
"colorscheme zellner
"对于html,xml文件,通过ctrl+_来closetag
if has("autocmd")
autocmd FileType xml,html vmap
autocmd FileType
html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal
textwidth=100
autocmd Filetype html,xml,xsl source ~/.vim/plugin/
endif " has("autocmd")
endif " has
endif " exists(...)
"这个是依赖终端的
"set background=dark
"显示行号
set number
"语法高亮度显示
syntax on
"检测文件的类型 开启codesnip
filetype on
filetype plugin on
filetype indent on
set completeopt=longest,menu
set runtimepath+=~/.vim/textmateOnly
set runtimepath+=/home/hunch/.vim/after
so ~/.vim/plugin/
let g:SuperTabDefaultCompletionType="
"鼠标支持
if has('mouse') set mouse=a
endif
"缩进相关
" 继承前一行的缩进方式,特别适用于多行注释
"set autoindent
" 为C程序提供自动缩进
"set smartindent
" 使用C样式的缩进
set cindent
function! GnuIndent()
setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
setlocal shiftwidth=2
setlocal tabstop=8
endfunction
au FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4
softtabstop=4
au FileType diff setlocal shiftwidth=4 tabstop=4
au FileType html setlocal autoindent indentexpr=
au FileType changelog setlocal textwidth=76
" Recognize standard C++ headers
au BufEnter /usr/include/c++/* setf cpp
au BufEnter /usr/include/g++-3/* setf cpp
" Setting for files following the GNU coding standard
au BufEnter /usr/* call GnuIndent()
function! RemoveTrailingSpace()
if $VIM_HATE_SPACE_ERRORS != '0' &&
(&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim')
normal m`
silent! :%s/s+$//e
normal ``
endif
endfunction
" Remove trailing spaces for C/C++ and Vim files
au BufWritePre * call RemoveTrailingSpace()
if &term=="xterm"
set t_Co=8 set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
"set shiftwidth=2
"set tabstop=4
"set softtabstop=4
"set expandtab
" ambiwidth 默认值为 single。在其值为 single 时,
" 若 encoding 为 utf-8,gvim 显示全角符号时就会
" 出问题,会当作半角显示。
set ambiwidth=double
set autoread " 自动重新加载外部修改内容
set autochdir " 自动切换当前目录为当前文件所在的目录
"No bell settings {{{
set noerrorbells
set visualbell
if has('autocmd')
autocmd GUIEnter * set vb t_vb=
endif
"No bell settings End }}}
"在编辑过程中,在右下角显示光标位置的状态行
set ruler
"set rulerformat=%20(%2*%<%f%= %m%r %3l %c %p%%%)
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
set nolinebreak " 在单词中间断行
" 在状态栏显示目前所执行的指令,未完成的指令片段亦
" 会显示出来
set showcmd
set wrap " 自动换行显示
"CmdLine settings {{{
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
:set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y]
[ASCII=%03.3b] [HEX=%02.2B] [POS=%04l,%04v][%p%%] [LEN=%L]
"
" 高亮字符,让其不受100列限制
":highlight OverLength ctermbg=red ctermfg=white guibg=grey guifg=white
":match OverLength '%101v.*'
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White
"显示匹配括号
set showmatch
"默认无备份
set nobackup
set nowritebackup
"在insert模式下能用删除键进行删除
set backspace=indent,eol,start
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocp
" 增强模式中的命令行自动完成操作
set wildmenu
"文字编码加入utf8
" 设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set enc=utf-8
let &termencoding=&encoding
" 使用英文菜单,工具条及消息提示
set langmenu=none
"自动缩排
set ai
"搜索不分大小写
set ic
"标识关键字
set hls
" 不要闪烁
set novisualbell
"设置语法折叠
set foldmethod=syntax
set foldcolumn=3 "设置折叠区域的宽度 set foldclose=all "设置为自动关闭折叠
" 用空格键来开关折叠
set foldenable
nnoremap
"设置帮助语言
if version >= 603
set helplang=cn
set encoding=utf-8
endif
"编辑状态保存
au BufWinLeave * mkview
au BufWinEnter * silent loadview
" Line highlight 設此標整行會標註顏色
set cursorline
" Column highlight 設此是遊標整列會標註顏色
set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
"ctags设置
set tags=/home/hunch/.vim/stltags
"set tags+=/home/hunch/.vim/sgitag
"set tags+=/home/hunch/.vim/ctags
"set tags+=/home/hunch/.vim/glibctag
"智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
let OmniCpp_DefaultNamespaces = ["std"]
let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
highlight Pmenu ctermbg=13 guibg=LightGray
highlight PmenuSel ctermbg=7 guibg=DarkBlue guifg=White
highlight PmenuSbar ctermbg=7 guibg=DarkGray
highlight PmenuThumb guibg=Black
"打开自己工程的时候自动加载的脚本
if getfsize(".vimscript")>0
source .vimscript
endif
"
runtime! macros/
augroup myfiletypes
" Clear old autocmds in group
autocmd!
" autoindent with two spaces, always expand tabs
autocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 et
augroup END
"autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
"if you want buffer/rails/global completion you must add the following:
autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1
"if you want rails support add the following in addition
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1
"if you want classes included in global completions add the following
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1
"valgrind 相关
let g:valgrind_arguments='--leak-check=yes --num-callers=5000'
"字典完成
:set dictionary-=/usr/share/dict/words
dictionary+=/usr/share/dict/words
"cscope
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set nocst
set nocsverb
" add any database in current directory
if filereadable("")
cs add
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb endif
map
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
" Using 'CTRL-spacebar' then a search type makes the vim window
" split horizontally, with search result displayed in
" the new window.
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
" Hitting CTRL-space *twice* before the search type does a vertical
" split instead of a horizontal one
nmap
:vert scs find s
nmap
:vert scs find g
nmap
:vert scs find c
nmap
:vert scs find t
nmap
:vert scs find e
nmap
:vert scs find i ^
nmap
:vert scs find d
"runtime ftplugin/
let Vimplate = "$HOME/bin/vimplate"
fun! ReadMan() " Assign current word under cursor to a script variable:
let s:man_word = expand('
" Open a new window:
:exe ":wincmd n"
" Read in the manpage for man_word (col -b is for formatting):
:exe ":r!man " . s:man_word . " | col -b"
" Goto
:exe ":goto"
" and delete it:
:exe ":delete"
endfun
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"加上日期 对应F2
:map
" bind :CD to :cd %:h, then change cwd to the dir that includes current
file
sil! com -nargs=0 CD exe 'cd %:h'
" F5编译和运行C程序,F6编译和运行C++程序
" 请注意,下述代码在windows下使用会报错
" 需要去掉./这两个字符
" C的编译和运行
map
func! CompileRunGcc()
exec "w"
exec "!gcc -Wall -g % -o %<"
exec "! ./%<"
endfunc
" C++的编译和运行
map
func! CompileRunGpp()
exec "w"
exec "!g++ -Wall -g % -o %<"
exec "! ./%<" endfunc
" 能够漂亮地显示.NFO文件
set encoding=utf-8
function! SetFileEncodings(encodings)
let b:myfileencodingsbak=&fileencodings
let &fileencodings=a:encodings
endfunction
function! RestoreFileEncodings()
let &fileencodings=b:myfileencodingsbak
unlet b:myfileencodingsbak
endfunction
au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single
au BufReadPost *.nfo call RestoreFileEncodings()
" 高亮显示普通txt文件(需要脚本)
"au BufRead,BufNewFile * setfiletype txt
" Map the M key to the ReadMan function:
map M :call ReadMan()
"csupport
let g:alternateNoDefaultAlternate = 1
"
nnoremap
nmap wm :WMToggle
" 双反斜杠即可打开bufexplorer
map
" Ctrl+Enter也可以切换buffer
map C-Enter C-Tab
nnoremap
:set cscopequickfix=s-,c-,d-,i-,t-,e-
nnoremap
":inoremap ( ()
":inoremap )
":inoremap { {}
":inoremap }
":inoremap [ []
":inoremap < <>
":inoremap >
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "
else
return a:char
endif
endf
" mapping
" 如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车;
"
" 如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。否则映射为CTRL-X
CTRL-O;
"
" 如果下拉菜单弹出,CTRL-K映射为在下拉菜单中向上翻页,否则仍映射为CTRL-K;
"
" 如果下拉菜单弹出,CTRL-U映射为CTRL-E,即停止补全,否则,仍映射为CTRL-U;
inoremap
inoremap
pumvisible()?"
inoremap
pumvisible()?"
inoremap
inoremap
inoremap
"
inoremap
"
"
" minibufexpl插件的一般设置
"let g:miniBufExplMapWindowNavArrows = 1
"let g:miniBufExplModSelTarget = 1
"实现
"let g:miniBufExplMapCTabSwitchBufs = 1
"
"let g:miniBufExplMapWindowNavVim = 1
"选中一段文字并全文搜索这段文字
:vnoremap
:vnoremap
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
:runtime! ftplugin/
set keywordprg=dicty
ab ssh #!/bin/bash
ab ppy #!/usr/bin/python
ab ppl #!/usr/bin/perl
ab rru #!/usr/bin/ruby
Ubuntu vimrc的设置适用于Ubuntu与Fedora系统,其他系统没有得到验证。
在Ubuntu中vim的配置文件存放在/etc/vim目录中,配置文件名为Ubuntu vimrc
在Fedora中vim的配置文件存放在/etc目录中,配置文件名为Ubuntu vimrc
在终端 输入以下命令来编辑Ubuntu vimrc配置文件:
sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc
在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。
在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便。
相关命令如下:
创建命令为:
$vi ~/.vimrc
设置完后
$:x 或者 $wq
进行保存退出即可。
下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料:
“双引号开始的行为注释行,下同 “去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
“显示行号
set nummber
“检测文件的类型
filetype on
“记录历史的行数
set history=1000
“背景使用黑色
set background=dark
“语法高亮度显示
syntax on
“下面两行在进行编写代码时,在格式对起上很有用;
“第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行;
“第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编
“写上很有用
set autoindent
set smartindent
“第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
“设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set showmatch
“去除vim的GUI版本中的toolbar
set guioptions-=T
“当vim进行编辑时,如果命令错误,会发出一个响声,该设置去掉响声
set vb t_vb=
“在编辑过程中,在右下角显示光标位置的状态行
set ruler
“默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示
set nohls
“查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
“个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
“次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
“时,别忘记回车
set incsearch
“修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀
if has(“vms”)
set nobackup
else
set backup
endif
如果设置完后,发现功能没有起作用,检查一下系统下是否安装了vim-enhanced包,查询命令为:
$rpm –q vim-enhanced
参考资料:
1.vim的完全翻译版在下面连接处可以找到
/
可以下栽其中的一个PDF版本,里面介绍的很详细,强烈推荐:)
2.更详细的vim信息可以访问:
/[/url]
3.一个带有英文注释的.vimrc例子
/
2023年8月3日发(作者:)
" 在处理未保存或只读文件的时候,弹出确认 set confirm " 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
"Tlist 和 wm的设置
"命令模式输入wm打开Tlist和WM
set showcmd
"Taglist插件的设置
let g:Tlist_Use_Right_Window=1
let g:Tlist_Show_One_File=1
let g:Tlist_Compact_Format=1
let Tlist_Exit_OnlyWindow=1
let g:winManagerWindowLayout='FileExplorer|TagList'
"Tree explorer的设置
let g:treeExplVertical=1
let g:treeExplWinSize=30
"gvim打开以后最大化
"au GUIEnter * simalt ~x
"光标在窗口上下边界时距离边界7行即开始滚屏
set so=7
"配色
" Avoid clearing hilight definition in plugins
if !exists("g:vimrc_loaded")
" color scheme
if has("gui_running")
set guioptions-=T "隐藏工具栏
set guioptions-=m
set guioptions-=L
set guioptions-=r
color blackboard
"colorscheme professional
"set guifont=YaHeiConsolasHybrid 13
set guifont=Monaco 13
"中文字体
set guifontset=Microsoft YaHei 13
"对于html,xml文件,通过ctrl+_来closetag
if has("autocmd")
autocmd FileType text,xml,html,perl,shell,bash,python,vim,php,ruby color blackboard
autocmd FileType xml,html vmap
autocmd FileType java,c,cpp,cs color desertEx
autocmd FileType
html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal
textwidth=100
autocmd Filetype html,xml,xsl source ~/.vim/plugin/
endif " has("autocmd")
else
color desert
"colorscheme zellner
"对于html,xml文件,通过ctrl+_来closetag
if has("autocmd")
autocmd FileType xml,html vmap
autocmd FileType
html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal
textwidth=100
autocmd Filetype html,xml,xsl source ~/.vim/plugin/
endif " has("autocmd")
endif " has
endif " exists(...)
"这个是依赖终端的
"set background=dark
"显示行号
set number
"语法高亮度显示
syntax on
"检测文件的类型 开启codesnip
filetype on
filetype plugin on
filetype indent on
set completeopt=longest,menu
set runtimepath+=~/.vim/textmateOnly
set runtimepath+=/home/hunch/.vim/after
so ~/.vim/plugin/
let g:SuperTabDefaultCompletionType="
"鼠标支持
if has('mouse') set mouse=a
endif
"缩进相关
" 继承前一行的缩进方式,特别适用于多行注释
"set autoindent
" 为C程序提供自动缩进
"set smartindent
" 使用C样式的缩进
set cindent
function! GnuIndent()
setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
setlocal shiftwidth=2
setlocal tabstop=8
endfunction
au FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4
softtabstop=4
au FileType diff setlocal shiftwidth=4 tabstop=4
au FileType html setlocal autoindent indentexpr=
au FileType changelog setlocal textwidth=76
" Recognize standard C++ headers
au BufEnter /usr/include/c++/* setf cpp
au BufEnter /usr/include/g++-3/* setf cpp
" Setting for files following the GNU coding standard
au BufEnter /usr/* call GnuIndent()
function! RemoveTrailingSpace()
if $VIM_HATE_SPACE_ERRORS != '0' &&
(&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim')
normal m`
silent! :%s/s+$//e
normal ``
endif
endfunction
" Remove trailing spaces for C/C++ and Vim files
au BufWritePre * call RemoveTrailingSpace()
if &term=="xterm"
set t_Co=8 set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
"set shiftwidth=2
"set tabstop=4
"set softtabstop=4
"set expandtab
" ambiwidth 默认值为 single。在其值为 single 时,
" 若 encoding 为 utf-8,gvim 显示全角符号时就会
" 出问题,会当作半角显示。
set ambiwidth=double
set autoread " 自动重新加载外部修改内容
set autochdir " 自动切换当前目录为当前文件所在的目录
"No bell settings {{{
set noerrorbells
set visualbell
if has('autocmd')
autocmd GUIEnter * set vb t_vb=
endif
"No bell settings End }}}
"在编辑过程中,在右下角显示光标位置的状态行
set ruler
"set rulerformat=%20(%2*%<%f%= %m%r %3l %c %p%%%)
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
set nolinebreak " 在单词中间断行
" 在状态栏显示目前所执行的指令,未完成的指令片段亦
" 会显示出来
set showcmd
set wrap " 自动换行显示
"CmdLine settings {{{
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
:set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y]
[ASCII=%03.3b] [HEX=%02.2B] [POS=%04l,%04v][%p%%] [LEN=%L]
"
" 高亮字符,让其不受100列限制
":highlight OverLength ctermbg=red ctermfg=white guibg=grey guifg=white
":match OverLength '%101v.*'
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White
"显示匹配括号
set showmatch
"默认无备份
set nobackup
set nowritebackup
"在insert模式下能用删除键进行删除
set backspace=indent,eol,start
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocp
" 增强模式中的命令行自动完成操作
set wildmenu
"文字编码加入utf8
" 设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set enc=utf-8
let &termencoding=&encoding
" 使用英文菜单,工具条及消息提示
set langmenu=none
"自动缩排
set ai
"搜索不分大小写
set ic
"标识关键字
set hls
" 不要闪烁
set novisualbell
"设置语法折叠
set foldmethod=syntax
set foldcolumn=3 "设置折叠区域的宽度 set foldclose=all "设置为自动关闭折叠
" 用空格键来开关折叠
set foldenable
nnoremap
"设置帮助语言
if version >= 603
set helplang=cn
set encoding=utf-8
endif
"编辑状态保存
au BufWinLeave * mkview
au BufWinEnter * silent loadview
" Line highlight 設此標整行會標註顏色
set cursorline
" Column highlight 設此是遊標整列會標註顏色
set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
"ctags设置
set tags=/home/hunch/.vim/stltags
"set tags+=/home/hunch/.vim/sgitag
"set tags+=/home/hunch/.vim/ctags
"set tags+=/home/hunch/.vim/glibctag
"智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
let OmniCpp_DefaultNamespaces = ["std"]
let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
highlight Pmenu ctermbg=13 guibg=LightGray
highlight PmenuSel ctermbg=7 guibg=DarkBlue guifg=White
highlight PmenuSbar ctermbg=7 guibg=DarkGray
highlight PmenuThumb guibg=Black
"打开自己工程的时候自动加载的脚本
if getfsize(".vimscript")>0
source .vimscript
endif
"
runtime! macros/
augroup myfiletypes
" Clear old autocmds in group
autocmd!
" autoindent with two spaces, always expand tabs
autocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 et
augroup END
"autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
"if you want buffer/rails/global completion you must add the following:
autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1
"if you want rails support add the following in addition
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1
"if you want classes included in global completions add the following
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1
"valgrind 相关
let g:valgrind_arguments='--leak-check=yes --num-callers=5000'
"字典完成
:set dictionary-=/usr/share/dict/words
dictionary+=/usr/share/dict/words
"cscope
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set nocst
set nocsverb
" add any database in current directory
if filereadable("")
cs add
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb endif
map
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
" Using 'CTRL-spacebar' then a search type makes the vim window
" split horizontally, with search result displayed in
" the new window.
nmap
nmap
nmap
nmap
nmap
nmap
nmap
nmap
" Hitting CTRL-space *twice* before the search type does a vertical
" split instead of a horizontal one
nmap
:vert scs find s
nmap
:vert scs find g
nmap
:vert scs find c
nmap
:vert scs find t
nmap
:vert scs find e
nmap
:vert scs find i ^
nmap
:vert scs find d
"runtime ftplugin/
let Vimplate = "$HOME/bin/vimplate"
fun! ReadMan() " Assign current word under cursor to a script variable:
let s:man_word = expand('
" Open a new window:
:exe ":wincmd n"
" Read in the manpage for man_word (col -b is for formatting):
:exe ":r!man " . s:man_word . " | col -b"
" Goto
:exe ":goto"
" and delete it:
:exe ":delete"
endfun
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"加上日期 对应F2
:map
" bind :CD to :cd %:h, then change cwd to the dir that includes current
file
sil! com -nargs=0 CD exe 'cd %:h'
" F5编译和运行C程序,F6编译和运行C++程序
" 请注意,下述代码在windows下使用会报错
" 需要去掉./这两个字符
" C的编译和运行
map
func! CompileRunGcc()
exec "w"
exec "!gcc -Wall -g % -o %<"
exec "! ./%<"
endfunc
" C++的编译和运行
map
func! CompileRunGpp()
exec "w"
exec "!g++ -Wall -g % -o %<"
exec "! ./%<" endfunc
" 能够漂亮地显示.NFO文件
set encoding=utf-8
function! SetFileEncodings(encodings)
let b:myfileencodingsbak=&fileencodings
let &fileencodings=a:encodings
endfunction
function! RestoreFileEncodings()
let &fileencodings=b:myfileencodingsbak
unlet b:myfileencodingsbak
endfunction
au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single
au BufReadPost *.nfo call RestoreFileEncodings()
" 高亮显示普通txt文件(需要脚本)
"au BufRead,BufNewFile * setfiletype txt
" Map the M key to the ReadMan function:
map M :call ReadMan()
"csupport
let g:alternateNoDefaultAlternate = 1
"
nnoremap
nmap wm :WMToggle
" 双反斜杠即可打开bufexplorer
map
" Ctrl+Enter也可以切换buffer
map C-Enter C-Tab
nnoremap
:set cscopequickfix=s-,c-,d-,i-,t-,e-
nnoremap
":inoremap ( ()
":inoremap )
":inoremap { {}
":inoremap }
":inoremap [ []
":inoremap < <>
":inoremap >
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "
else
return a:char
endif
endf
" mapping
" 如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车;
"
" 如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。否则映射为CTRL-X
CTRL-O;
"
" 如果下拉菜单弹出,CTRL-K映射为在下拉菜单中向上翻页,否则仍映射为CTRL-K;
"
" 如果下拉菜单弹出,CTRL-U映射为CTRL-E,即停止补全,否则,仍映射为CTRL-U;
inoremap
inoremap
pumvisible()?"
inoremap
pumvisible()?"
inoremap
inoremap
inoremap
"
inoremap
"
"
" minibufexpl插件的一般设置
"let g:miniBufExplMapWindowNavArrows = 1
"let g:miniBufExplModSelTarget = 1
"实现
"let g:miniBufExplMapCTabSwitchBufs = 1
"
"let g:miniBufExplMapWindowNavVim = 1
"选中一段文字并全文搜索这段文字
:vnoremap
:vnoremap
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
:runtime! ftplugin/
set keywordprg=dicty
ab ssh #!/bin/bash
ab ppy #!/usr/bin/python
ab ppl #!/usr/bin/perl
ab rru #!/usr/bin/ruby
Ubuntu vimrc的设置适用于Ubuntu与Fedora系统,其他系统没有得到验证。
在Ubuntu中vim的配置文件存放在/etc/vim目录中,配置文件名为Ubuntu vimrc
在Fedora中vim的配置文件存放在/etc目录中,配置文件名为Ubuntu vimrc
在终端 输入以下命令来编辑Ubuntu vimrc配置文件:
sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc
在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。
在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便。
相关命令如下:
创建命令为:
$vi ~/.vimrc
设置完后
$:x 或者 $wq
进行保存退出即可。
下面给出一个例子,其中列出了经常用到的设置,详细的设置信息请参照参考资料:
“双引号开始的行为注释行,下同 “去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
“显示行号
set nummber
“检测文件的类型
filetype on
“记录历史的行数
set history=1000
“背景使用黑色
set background=dark
“语法高亮度显示
syntax on
“下面两行在进行编写代码时,在格式对起上很有用;
“第一行,vim使用自动对起,也就是把当前行的对起格式应用到下一行;
“第二行,依据上面的对起格式,智能的选择对起方式,对于类似C语言编
“写上很有用
set autoindent
set smartindent
“第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
“设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set showmatch
“去除vim的GUI版本中的toolbar
set guioptions-=T
“当vim进行编辑时,如果命令错误,会发出一个响声,该设置去掉响声
set vb t_vb=
“在编辑过程中,在右下角显示光标位置的状态行
set ruler
“默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示
set nohls
“查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
“个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
“次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
“时,别忘记回车
set incsearch
“修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀
if has(“vms”)
set nobackup
else
set backup
endif
如果设置完后,发现功能没有起作用,检查一下系统下是否安装了vim-enhanced包,查询命令为:
$rpm –q vim-enhanced
参考资料:
1.vim的完全翻译版在下面连接处可以找到
/
可以下栽其中的一个PDF版本,里面介绍的很详细,强烈推荐:)
2.更详细的vim信息可以访问:
/[/url]
3.一个带有英文注释的.vimrc例子
/
发布评论