公司开发机Linux上的Vim一直不支持多字节支持(:set fenc ,用这个命令就可以知道是否支持),导致在终端下的vim对中文的显示总是有问题(而且对于汉字,要按两次键才能移动过一个汉字)。 所以从新编译了一下,简单把编译的过程写在这里: 从www.vim.org上下载vim-7.2.tar.bz2 执行
tar zxvf vim-7.2.tar.bz2
注:后发现有误,tar zxvf 无法直接解压bz2,不过可以现在windows下用winrar或者7z解压。 进入vim72目录,执行(特别注意:所有的命令的操作用户,请保证是root权限,以免出现目录创建不了的错误)
./configure --prefix=/usr/vim --enable-multibyte --with-features=huge make && make install
对参数简单说明一下:
--enable-multibyte选项使vim可以支持使用多字节编码字符集的文件。 --with-features=huge 最大特性支持
这样vim就安装上啦,如果公司上有多个vim,而自己想用自己安装的版本的话,可以在.profile中写入:
alias vim="/usr/vim/bin/vim"
即可。 现在vim已经编译成支持多字节编码的版本,还需要在.vimrc中配置一下,参考如下文章: VIM解决中文编码问题 OK,现在vim已经支持多字节的文件啦,现在我们要让终端同时支持UTF-8编码或者gbk编码的文件,都不乱码~~听起来似乎不大可能?哈哈,那我们试试看~ 我这里是以XShell和putty来测试的,如果有朋友用secureCRT,可能需要自己测试一下。 其实设置很简单,即对两个终端的编码都设置成UTF-8,如图:
下面是效果图,可以看出同时支持了utf8和cp936两种编码的展示:
好啦,赶紧试试吧~~~ PS:如果还是有乱码的话,将下面这两句放到 .profile中,并且执行source .profile,不过我是没有用到这个配置的。
export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8"
今天在Linux下编译了一下新版Vim7.3,执行:
./configure --prefix=/usr/vim --enable-multibyte --enable-pythoninterp --with-features=huge
的时候,可能会报:
no terminal library found checking for tgetent()… configure: error: NOT FOUND! You need to install a terminal library; for example ncurses. Or specify the name of the library with --with-tlib.
这个时候安装一下 ncurses-dev 即可。
apt-get install ncurses-dev
依云 on #
这个跨平台 ssh 乱码很容易解决啊。因为 Linux 一般默认使用 UTF-8,所以把 ssh 客户端设成 UTF-8 的就好了。
你的最后一句,我都看出了三种解释了。。。。
Reply
Dante on #
主要是公司开发机默认的vim是不支持多字节的,所以一直很纠结……
今天终于狠下心给重装了,呃,最后那两句,据说是如果linux的终端编码不是utf-8的话,也会有影响~
Reply
依云 on #
不过我是没有用的。
Reply
依云 on #
囧,不知怎么回事,还没写完就发出去了。。
我是说“不过我是没有用的”这句有歧义呢。
Reply
Dante on #
呃,明白了,刚读了一下,确实会有歧义……,我改下去……
Reply
nickyan on #
set fencs=gbk,utf8
set tenc=gbk
set enc=utf8
我一般在.vimrc里加这几句。凑合使用。
Reply
Dante on #
嗯,vimrc里面是一定要有这些东西的,我在文章里没写~~
set fencs=gbk,utf8
改成
set fencs=gbk,ucs-bom,utf-8
这样就可以先检查gbk,然后检查有bom头的utf-8,然后是没有bom头的utf-8
Reply
tex on #
用HUGE也许不太必要. HUGE和BIG的主要区别是增加了调试用的profiling. Multibyte支持(FEAT_MBYTE)在BIG里就有了. 我在Win32/MinGW下编译时在Make_ming.mak里增加中文字体支持用的是
+DEFINES += -DFEAT_PROPORTIONAL_FONTS
当然还在feature.h的尾巴上关掉了一些BIG里我不需要的东西, 象韩文/波斯文之类的:
#undef FEAT_ARABIC
#undef FEAT_CSCOPE
#undef FEAT_FKMAP
#undef FEAT_RIGHTLEFT
#undef FEAT_HANGULIN
#undef FEAT_KEYMAP
#undef FEAT_LANGMAP
Reply
Dante on #
哦哦,当时因为急着用,所以就没有仔细研究每个编译选项的意义啦,等以后再重新编译一下~~~
Reply
suchasplus on #
恩,好吧....如果export了LANG='zh_CN.UTF-8'的话,screen里面就没法正常的显示GBK了,如果设定成gbk的话,缺陷就更明显了。回头试试luit
Reply
Dante on #
呃,是说vim中吗?如果是vim的话,是需要在vimrc中加入如下的配置的:
set encoding=utf-8
set fenc=cp936
set fileencodings=cp936,ucs-bom,utf-8
如果是说终端里那些目录,文件的中文名之类,我就不太清楚了……
Reply
James on #
我在vimrc里面加了
set fileencodings=gbk,ucs-bom,utf-8,cp936
但还是乱码,可知道为何?
Reply
Dante on #
你的终端有设置过不?
还有vim的版本是多少呢?有没有多语言支持?
Reply
James on #
vim是7.2.330
应该有多语言支持吧?不太清楚,便utf-8的文件没问题.
终端设置什么?在gvim上也是一样.
Reply
Dante on #
在vim里面输入命令:version
可以看到是否加入了多语言支持。
http://www.vimer.cn/2010/03/linux%e4%b8%8bvim%e7%9a%84%e7%bc%96%e8%af%91%e4%bb%a5%e5%8f%8a%e7%bb%88%e7%ab%af%e4%b9%b1%e7%a0%81%e7%9a%84%e6%9c%80%e7%bb%88%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88.html
如果不是的话,可以看一下这篇文章,里面说了如何编译多语言支持的vim
Reply
Dante on #
今天在Linux下编译了一下新版Vim7.3,执行:
./configure --prefix=/usr/vim --enable-multibyte --enable-pythoninterp --with-features=huge
的时候,可能会报:
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with --with-tlib.
这个时候安装一下 ncurses-dev 即可。
apt-get install ncurses-dev
Reply
午后奶茶 on #
编译出来没图标,不爽啊。。。
Reply
Dante on #
呃。。。我是在纯命令行下,有没有图标都无所谓的。。。
Reply
o(∩∩)o...哈哈 on #
我昨天编译的时候也遇到了和你一样的情况。解决的方法类似
Reply
o(∩∩)o...哈哈 on #
一谷歌vim linux 编译就进入了你的博客了。。。现在重新编译下vim 嘿嘿。。。
貌似ubuntu下不能直接ctrl+enter,快捷键发表评论哈
Reply
Dante on #
哈,我试试~~~
呃。。。貌似没这个快捷键。。。可能留言插件没设置。。。
Reply
Solrex on #
弱弱地说一句,解压 tar.bz2 的命令是 tar xjvf
Reply
Dante on #
哦,这样啊,多谢提醒~~~
Reply
sed2x on #
[?1049h[999;999H[6n[1;1H[J[2;1H~[3;1H~[4;1H~[5;1H~[6;1H~[7;1H~[8;1H~[9;1H~[10;1H~[11;1H~[12;1H~行号连起来了,qiuzhu ? huifu EMAIL 也可
Reply