VIM 中可供用户定制的选项非常非常多, 作为初学者, 我们没有必要了解这么多东西。下面, 滇狐简单列出了一些最常用的配置项, 大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。
// :0 // // switch 语句之下的 case 语句缩进 0 个空格,也就是说不缩进,与 switch 块平 // 齐,使用这样风格: switch (x) { case 1: a = b; break; default: } // g0 // // class、struct 等之下的访问权限控制语句,如 public、protected、private 等, // 相对 class、struct 等所在的块缩进 0 个空格,与 class 等块平齐,使用这样的 // 风格: class foo { public: int a; private: int b; }; // t0 // // 如果函数返回值与函数名不在同一行,则返回值缩进 0 个空格,也就是说不缩进,如 // 下所示: // set cino=t4 int func1() { } // set cino=t0 int func() { } // (sus // // 当一对括号跨越多行时,其后的行缩进前面 sw 指定的距离,效果如下: int a = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8) * 9;
同一个配色方案, 在 gvim 下和字符界面的 vim 下效果大相径庭, 滇狐个人的习惯是,在 gvim 下使用 torte 配色方案, 在 vim 下使用 ron 配色方案。 因此我们有必要针对 gvim 和 vim 进行不同的设置。
另外, 前面我们在 gvim 下不使用折行, 开启水平滚动条, 但在 vim 下,是没有滚动条可用的, 因此还是有必要为 vim 保留自动折行。
条件选择设置的格式如下:
if (has("gui_running")) " 图形界面下的设置 set nowrap set guioptions+=b colo torte else " 字符界面下的设置 set wrap colo ron endif
gvim的配置收集
linux_23 发表于 2006-6-20 20:22:02有的时候要找找不到,太痛苦了,所以收集一下放在这里
http://edyfox.codecarver.org/html/_vimrc_for_beginners.html
http://python.cn/pipermail/python-chinese/2005-August/014449.html
http://419labs.googlepages.com/vimsmth.html
python的mode
http://www.vim.org/scripts/script.php?script_id=30
拷贝到ftplugins文件夹下(有可能覆盖原文件,不过原文件好像没太大用)
自动保存文件问题
gvim编辑文件时,会自动生成带~的备份文件,如果不想每个文件都生成备份文件的话,可以这么作:gvim安装目录下有一个_vimrc文件,里面有这么一句“source $VIMRUNTIME/vimrc_example.vim”,因此找到vimrc_example.vim并打开,将其中
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
set backup " 下面是我的~/.vim/ftplugin/python.vim,你可以参考一下
>
> setlocal textwidth=75
> setlocal autoindent
> setlocal smartindent
> setlocal tabstop=4
> setlocal expandtab
> setlocal shiftwidth=4
> setlocal smarttab
> "compiler pylint
> compiler pycheker
>
> 把它放在ftplugin里就只能对python文件起作用。如果你想对所有类型的文件都使
> 用4个空格作缩进,把相关部分copy到~/.vimrc就可以了。不过不建议这样做:如
> 果你要写Makefile文件的话,是必须使用tab的。
在~/.vimrc里要把setlocal改为set,不然不起作用的。
_vimrc里面的设置:
"绑定f12作为python的运行快捷键
map:!J:\Python24\python.exe %
"编码设定,可以在locale和文件编码不同时自动选择正确编码
" Encoding settings
if has("multi_byte")
" Set fileencoding priority
if getfsize(expand("%")) > 0
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
else
set fileencodings=cp936,big5,euc-jp,euc-kr,latin1
endif
" CJK environment detection and corresponding setting
if v:lang =~ "^zh_CN"
" Use cp936 to support GBK, euc-cn == gb2312
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ "^zh_TW"
" cp950, big5 or euc-tw
" Are they equal to each other?
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ "^ko"
" Copied from someone's dotfile, untested
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ "^ja_JP"
" Copied from someone's dotfile, unteste
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
" Detect UTF-8 locale, and replace CJK setting if needed
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"
endif
"中文帮助(首先安装中文帮助)
if version >= 603
set helplang=cn
endif
"打开行号
set nu
"自动高亮
:syn on
"设置代码折叠
set fdm=indent
"设置代码折叠宽度为4个字符
set fdc=4
"安装Tlist后设置ctags路径
let Tlist_Ctags_Cmd="d:\\ctags\\ctags.exe"
"设置配色
colo desert
"设置折行
if (has("gui_running"))
" 图形界面下的设置
set nowrap
set guioptions+=b
else
" 字符界面下的设置
set wrap
endif
"标签切换
map th :tabnext
map tl :tabprev
map tn :tabnew
map td :tabclose
"tab宽度
set tabstop=4
"tab自动缩进宽度
set shiftwidth=4
"设置自动缩进
:set ai
"自动补全
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
"autocmd FileType c set omnifunc=ccomplete#Complete
"上面的字符编码可能有问题,下面这样设置简单易行。encoding设置成locale的编码,
"fileencodings可以不变
set encoding=cp936
set fileencodings=ucs-bom,utf-8,chinese
"调整^x ^p时弹出的框框的颜色
highlight Pmenu guifg=Yellow guibg=DarkBlue
"在每个tab上显示编号
set guitablabel=%{tabpagenr()}.%t\ %m
-------------------------------------------------------------------
下面是进入界面后的命令收集
设置自动折行
:set wrap
取消自动折行
:set wrap!
gvim的配置收集
linux_23 发表于 2006-6-20 20:22:02有的时候要找找不到,太痛苦了,所以收集一下放在这里
http://edyfox.codecarver.org/html/_vimrc_for_beginners.html
http://python.cn/pipermail/python-chinese/2005-August/014449.html
http://419labs.googlepages.com/vimsmth.html
python的mode
http://www.vim.org/scripts/script.php?script_id=30
拷贝到ftplugins文件夹下(有可能覆盖原文件,不过原文件好像没太大用)
自动保存文件问题
gvim编辑文件时,会自动生成带~的备份文件,如果不想每个文件都生成备份文件的话,可以这么作:gvim安装目录下有一个_vimrc文件,里面有这么一句“source $VIMRUNTIME/vimrc_example.vim”,因此找到vimrc_example.vim并打开,将其中
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
set backup " 下面是我的~/.vim/ftplugin/python.vim,你可以参考一下
>
> setlocal textwidth=75
> setlocal autoindent
> setlocal smartindent
> setlocal tabstop=4
> setlocal expandtab
> setlocal shiftwidth=4
> setlocal smarttab
> "compiler pylint
> compiler pycheker
>
> 把它放在ftplugin里就只能对python文件起作用。如果你想对所有类型的文件都使
> 用4个空格作缩进,把相关部分copy到~/.vimrc就可以了。不过不建议这样做:如
> 果你要写Makefile文件的话,是必须使用tab的。
在~/.vimrc里要把setlocal改为set,不然不起作用的。
_vimrc里面的设置:
"绑定f12作为python的运行快捷键
map:!J:\Python24\python.exe %
"编码设定,可以在locale和文件编码不同时自动选择正确编码
" Encoding settings
if has("multi_byte")
" Set fileencoding priority
if getfsize(expand("%")) > 0
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
else
set fileencodings=cp936,big5,euc-jp,euc-kr,latin1
endif
" CJK environment detection and corresponding setting
if v:lang =~ "^zh_CN"
" Use cp936 to support GBK, euc-cn == gb2312
set encoding=cp936
set termencoding=cp936
set fileencoding=cp936
elseif v:lang =~ "^zh_TW"
" cp950, big5 or euc-tw
" Are they equal to each other?
set encoding=big5
set termencoding=big5
set fileencoding=big5
elseif v:lang =~ "^ko"
" Copied from someone's dotfile, untested
set encoding=euc-kr
set termencoding=euc-kr
set fileencoding=euc-kr
elseif v:lang =~ "^ja_JP"
" Copied from someone's dotfile, unteste
set encoding=euc-jp
set termencoding=euc-jp
set fileencoding=euc-jp
endif
" Detect UTF-8 locale, and replace CJK setting if needed
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"
endif
"中文帮助(首先安装中文帮助)
if version >= 603
set helplang=cn
endif
"打开行号
set nu
"自动高亮
:syn on
"设置代码折叠
set fdm=indent
"设置代码折叠宽度为4个字符
set fdc=4
"安装Tlist后设置ctags路径
let Tlist_Ctags_Cmd="d:\\ctags\\ctags.exe"
"设置配色
colo desert
"设置折行
if (has("gui_running"))
" 图形界面下的设置
set nowrap
set guioptions+=b
else
" 字符界面下的设置
set wrap
endif
"标签切换
map th :tabnext
map tl :tabprev
map tn :tabnew
map td :tabclose
"tab宽度
set tabstop=4
"tab自动缩进宽度
set shiftwidth=4
"设置自动缩进
:set ai
"自动补全
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
"autocmd FileType c set omnifunc=ccomplete#Complete
"上面的字符编码可能有问题,下面这样设置简单易行。encoding设置成locale的编码,
"fileencodings可以不变
set encoding=cp936
set fileencodings=ucs-bom,utf-8,chinese
"调整^x ^p时弹出的框框的颜色
highlight Pmenu guifg=Yellow guibg=DarkBlue
"在每个tab上显示编号
set guitablabel=%{tabpagenr()}.%t\ %m
-------------------------------------------------------------------
下面是进入界面后的命令收集
设置自动折行
:set wrap
取消自动折行
:set wrap!
转发至微博
转发至微博
评论