Fedora 10vim或vi的设置

Fedora 10vimvi的设置 

vim,编辑器之王。

 

一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法

 

set fileencoding=gb18030

set fileencodings=utf-8,gb18030,utf-16,big5

 

想看这样设置的原因吗?请继续。下文在网络中广泛流传

 

vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)fencs(fileencodings)

 

其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,:set fenc=gb18030:w就把文件存成gb18030的了。这个值对于打开文件的时候是否能够正确地解码没有任何关系。

 

fencs就是用来在打开文件的时候进行解码的猜测列表。文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码。比如我的vimrc里面这个的设置是

 

set fileencodings=utf-8,gb18030,utf-16,big5

 

所以我的vim每打开一个文件,先尝试用utf-8进行解码,如果用utf-8解码到了一半出错(所谓出错的意思是某个地方无法用utf-8正确地解码),那么就从头来用gb18030重新尝试解码,如果gb18030又出错(注意gb18030并不是像utf-8似的规则编码,所以所谓的出错只是说某个编码没有对应的有意义的字,比如0),就尝试用utf-16,仍然出错就尝试用big5。这一趟下来,如果中间的某次解码从头到尾都没有出错,那么 vim就认为这个文件是这个编码的,不会再进行后面的尝试了。这个时候,fenc的值就会被设为vim最后采用的编码值,可以用:set fenc?来查看具体是什么。

 

当然这个也是有可能出错的,比如你的文件是gb18030编码的,但是实际上只有一两个字符是中文,那么有可能他们正好也能被utf-8解码,那么这个文件就会被误认为是utf-8的导致错误解码。

 

至于enc,其作用基本只是显示。不管最后的文件是什么编码的,vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出来,因此enc就是干这个的。在windows下面,enc默认是cp936,这也就是中文windows的默认编码,所以enc是不需要改的。在 linux下,随着你的系统locale可能设为zh_CN.gb18030或者zh_CN.utf-8,你的enc要对应的设为gb18030或者 utf-8(或者gbk之类的)

 

最后再来说一下新建空文件的默认编码。看文档好像说会采用fencs里面的第一个编码作为新建文件的默认编码。但是这里有一个问题,就是fencs 的顺序跟解码成功率有很大关系,根据我的经验utf-8在前比gb18030在前成功率要高一些,那么如果我新建文件默认想让它是gb18030编码怎么办?一个方法是每次新建文件后都:set fenc=gb18030一下,不过我发现在vimrc里面设置fenc=gb18030也能达到这个效果。

 

另外,在ubuntu中文论坛还有人提出了这样的办法,直接就配置了

 

所有代码直接粘贴到终端运行即可!

安装程序

代码:

sudo apt-get install vim-gtk vim-doc cscope

 

创建启动项

代码:

 

cat > /usr/share/applications/gvim.desktop << "EOF"

[Desktop Entry]

Name=Gvim

Comment[zh_CN]=Gvim编辑器

Exec=gvim

Icon=/usr/share/pixmaps/gnome-word.png

Terminal=false

X-MultipleArgs=false

Type=Application

Categories=Application;Development;

Encoding=UTF-8

StartupNotify=true

EOF

 

localezh_CN.utf8的配置文件

代码:

 

cat > $HOME/.vimrc << "EOF"

"===========================================================================

" 项目: gvim 配置文件

" 作者: yonsan [QQ:82555472]

" 安装: sudo apt-get install vim-gtk

" 用法: 将本文件(.vimrc)拷贝到$HOME/

"===========================================================================

 

" 使用 murphy 调色板

colo murphy

" 设置用于GUI图形用户界面的字体列表。

set guifont=SimSun 10

"

set nocompatible

" 设定文件浏览器目录为当前目录

set bsdir=buffer

set autochdir

" 设置编码

set enc=utf-8

" 设置文件编码

set fenc=utf-8

" 设置文件编码检测类型及支持格式

set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

" 指定菜单语言

set langmenu=zh_CN.UTF-8

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

" 设置语法高亮度

set syn=cpp

"显示行号

set nu!

" 查找结果高亮度显示

set hlsearch

" tab宽度

set tabstop=4

set cindent shiftwidth=4

set autoindent shiftwidth=4

" C/C++注释

set comments=://

" 修正自动C式样注释功能 <2005/07/16>

set comments=s1:/*,mb:*,ex0:/

" 增强检索功能

set tags=./tags,./../tags,./**/tags

" 保存文件格式

set fileformats=unix,dos

" 键盘操作

map gk

map gj

" 命令行高度

set cmdheight=1

" 使用cscope

if has("cscope")

set csprg=/usr/bin/cscope

set csto=0

set cst

set nocsverb

" add any database in current directory

if filereadable("cscope.out")

cs add cscope.out

" else add database pointed to by environment

elseif $CSCOPE_DB != ""

cs add $CSCOPE_DB

endif

set csverb

endi

" 中文帮助

if version > 603

set helplang=cn

endi

EOF

 

localezh_CN.gbk的配置文件

代码:

 

cat > $HOME/.vimrc << "EOF"

"===========================================================================

" 项目: gvim 配置文件

" 作者: yonsan [QQ:82555472]

" 安装: sudo apt-get install vim-gtk

" 用法: 将本文件(.vimrc)拷贝到$HOME/

"===========================================================================

 

" 使用 murphy 调色板

colo murphy

" 设置用于GUI图形用户界面的字体列表。

set guifont=SimSun 10

"

set nocompatible

" 设定文件浏览器目录为当前目录

set bsdir=buffer

set autochdir

" 设置编码

set enc=chinese

" 设置文件编码

set fenc=chinese

" 设置文件编码检测类型及支持格式

set fencs=gbk,utf-8,ucs-bom,gb18030,gb2312,cp936

" 指定菜单语言

set langmenu=zh_CN.GBK

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

" 设置语法高亮度

set syn=cpp

"显示行号

set nu!

" 查找结果高亮度显示

set hlsearch

" tab宽度

set tabstop=4

set cindent shiftwidth=4

set autoindent shiftwidth=4

" C/C++注释

set comments=://

" 修正自动C式样注释功能 <2005/07/16>

set comments=s1:/*,mb:*,ex0:/

" 增强检索功能

set tags=./tags,./../tags,./**/tags

" 保存文件格式

set fileformats=unix,dos

" 键盘操作

map gk

map gj

" 命令行高度

set cmdheight=1

" 使用cscope

if has("cscope")

set csprg=/usr/bin/cscope

set csto=0

set cst

set nocsverb

" add any database in current directory

if filereadable("cscope.out")

cs add cscope.out

" else add database pointed to by environment

elseif $CSCOPE_DB != ""

cs add $CSCOPE_DB

endif

set csverb

endi

" 中文帮助

if version > 603

set helplang=cn

endi

EOF

 

 

修改vitab长度

Vi /etc/virc

在最后一行加set ts=4

修改vimtab长度

Vi /etc/vimrc

在最后一行加set ts=4

 

 

在终端下使用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

去除vimGUI版本中的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

如果去除注释后,一个完整的.vimrc配置信息如下所示:

set nocompatible

set nummber

filetype on

set history=1000

set background=dark

syntax on

set autoindent
set smartindent

set tabstop=4
set shiftwidth=4

set showmatch

set guioptions-=T

set vb t_vb=

set ruler

set nohls

set mouse=a

set cindent

set incsearch

if has(“vms”)

set nobackup

else

set backup

endif

以上加粗部分,可以直接拷到.vimrc文件中,放在用户目录下(root/root),其它xxx用户为/home/xxx,然后保存退出wq。以后编辑代码时就非常方便了!!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值