vim退出乱码
-
- 帖子: 62
- 注册时间: 2006-09-12 1:25
- nobrain
- 帖子: 808
- 注册时间: 2005-08-25 13:58
- 来自: ustc
- 联系:
- zlysoso
- 帖子: 34
- 注册时间: 2006-03-25 22:41
- 来自: 北京
- a3linux
- 帖子: 8
- 注册时间: 2007-08-10 21:48
- 来自: Shanghai
- 联系:
-
- 帖子: 2
- 注册时间: 2008-02-03 22:35
- pro711
- 帖子: 42
- 注册时间: 2008-06-15 7:47
- 来自: 上海
- bzhao
- 帖子: 252
- 注册时间: 2008-07-05 2:15
- 系统: XUbuntu
Re: vim退出乱码
我的8.10好像可以了, 待长时间检验,我明天告诉大家。
方法但是足见背后的功力
方法但是足见背后的功力
-
- 帖子: 22
- 注册时间: 2008-04-05 8:31
- 来自: 北京昌平
Re:
9.10应该是打开终端,编辑-配置文件首选项-标题和命令-起始标题,将“终端”前后各加一个空格,解决退出乱码,可惜不知道原理mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
雪狼一样的生活
- i_NIX
- 帖子: 450
- 注册时间: 2008-02-11 15:46
Re: vim退出乱码
先安装vim: sudo apt-get install vim
然后,
sudo update-alternatives --config vi
sudo update-alternatives --config vim
都选择basic那个就可以解决vi/vim退出时乱码了。原文看下面的链接。
http://www.dirk.sh/diary/error_code_in_ ... im_exited/
然后,
sudo update-alternatives --config vi
sudo update-alternatives --config vim
都选择basic那个就可以解决vi/vim退出时乱码了。原文看下面的链接。
http://www.dirk.sh/diary/error_code_in_ ... im_exited/
Google Talk群组,请来<雨云>一番!
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
有点明白了——vim退出乱码
已经知道一点了:
当终端标题以中文结束时,会出现这种情况,系统调用如下:
其中第一行是设置终端标题的,第二行不清楚。
注意到直接将这串字符 echo 到终端时就会乱码,而如果以英文结束时就没有,因为在\33$(之后需要\33(B!
所以,解决办法是:将最后的那个\7(是选项 't_IE' 的值)前边加上\33(B就可以了。
其中是Esc字符,是bell字符,ASCII分别为 27 和 7。
如果这样还是有乱码的话,可以试试同时改变 't_fs' (标题结束)的值。
当终端标题以中文结束时,会出现这种情况,系统调用如下:
代码: 全选
write(1, "\33]2;\33$(AG?4s\33(Bhehe\33$(AVU6K\7", 28) = 28
write(1, "\33]1;\33$(AG?4s\33(Bhehe\33$(AVU6K\7", 28) = 28
write(1, "\33[38;61H\33[K\33[38;1H", 18) = 18
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
select(9, [0 6 8], NULL, [0 6], {0, 0}) = 0 (Timeout)
write(1, "\33[?1l\33>", 7) = 7
write(1, "\33[?12l\33[?25h\33[?1049l", 20) = 20
exit_group(0) = ?
注意到直接将这串字符 echo 到终端时就会乱码,而如果以英文结束时就没有,因为在\33$(之后需要\33(B!
所以,解决办法是:将最后的那个\7(是选项 't_IE' 的值)前边加上\33(B就可以了。
代码: 全选
if !has("gui_running")
set t_IE=(B
endif
如果这样还是有乱码的话,可以试试同时改变 't_fs' (标题结束)的值。