分页: 1 / 2
vim退出乱码
发表于 : 2006-09-20 0:09
由 if
刚装了一个gvim,结果vi不好使了,退出之后终端乱码,就是下面这个样子
vi还是vim都是这样,只有gvim不乱
大家都有这问题没?
发表于 : 2006-09-29 19:31
由 feilfly
我这里也一样
没去研究过什么问题
反正很少用gvim
所以把gvim给cut 了
发表于 : 2006-10-17 16:38
由 fyfwn
同样问题,等待解决……
发表于 : 2006-10-18 15:09
由 nobrain
在console里敲 reset 命令就好了
我也出现同样的问题
发表于 : 2007-08-01 15:35
由 zhhxie
vim 的版本是 7.0.235。
发表于 : 2007-08-03 7:16
由 mily
打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
发表于 : 2007-08-04 22:16
由 zlysoso
mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
真的可以了啊!太神了!!!!
发表于 : 2007-08-31 22:40
由 a3linux
这个算是什么问题呢?
没人知道吗?
发表于 : 2008-02-03 22:39
由 HenryHu
太感谢了! 虽然我用的是FreeBSD…… VIM是自己编译的,直接用编译好的没有问题…… 在终端两边加空格真的可以解决问题…… 是不是vim读入终端标题没处理好?(vim不是会修改终端标题的么……)
发表于 : 2008-06-17 9:32
由 pro711
mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
太感谢了,有谁知道是什么原理吗?
发表于 : 2008-08-27 16:17
由 Qeeken
还是不行,8.10的
Re: vim退出乱码
发表于 : 2008-12-06 18:31
由 bzhao
我的8.10好像可以了, 待长时间检验,我明天告诉大家。
方法但是足见背后的功力
Re:
发表于 : 2009-11-07 14:34
由 cupzhangteng
mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
9.10应该是打开终端,编辑-配置文件首选项-标题和命令-起始标题,将“终端”前后各加一个空格,解决退出乱码,可惜不知道原理
Re: vim退出乱码
发表于 : 2009-12-01 13:33
由 i_NIX
先安装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/
有点明白了——vim退出乱码
发表于 : 2009-12-02 15:38
由 lilydjwg
已经知道一点了:
当终端标题以中文结束时,会出现这种情况,系统调用如下:
代码: 全选
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
其中是Esc字符,是bell字符,ASCII分别为 27 和 7。
如果这样还是有乱码的话,可以试试同时改变 't_fs' (标题结束)的值。