vim退出乱码

Vim、Emacs配置和使用
if
帖子: 62
注册时间: 2006-09-12 1:25
送出感谢: 0
接收感谢: 0

vim退出乱码

#1

帖子 if » 2006-09-20 0:09

刚装了一个gvim,结果vi不好使了,退出之后终端乱码,就是下面这个样子
vi还是vim都是这样,只有gvim不乱
大家都有这问题没?
附件
Screenshot.png
feilfly
帖子: 5
注册时间: 2006-09-29 19:29
送出感谢: 0
接收感谢: 0

#2

帖子 feilfly » 2006-09-29 19:31

我这里也一样
没去研究过什么问题
反正很少用gvim
所以把gvim给cut 了
fyfwn
帖子: 86
注册时间: 2006-03-03 18:07
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 fyfwn » 2006-10-17 16:38

同样问题,等待解决……
头像
nobrain
帖子: 808
注册时间: 2005-08-25 13:58
来自: ustc
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 nobrain » 2006-10-18 15:09

在console里敲 reset 命令就好了
爱喝真猪奶茶的夜鸣猪
zhhxie
帖子: 17
注册时间: 2006-03-02 10:11
送出感谢: 0
接收感谢: 0
联系:

我也出现同样的问题

#5

帖子 zhhxie » 2007-08-01 15:35

vim 的版本是 7.0.235。
附件
vim_char_unreadable_on_exit.png
不清楚是 vim 本身的问题,还是其它软件的问题。
mily
帖子: 107
注册时间: 2006-11-02 13:12
送出感谢: 0
接收感谢: 0

#6

帖子 mily » 2007-08-03 7:16

打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
头像
zlysoso
帖子: 34
注册时间: 2006-03-25 22:41
来自: 北京
送出感谢: 0
接收感谢: 0
联系:

#7

帖子 zlysoso » 2007-08-04 22:16

mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
真的可以了啊!太神了!!!!
头像
a3linux
帖子: 8
注册时间: 2007-08-10 21:48
来自: Shanghai
送出感谢: 0
接收感谢: 0
联系:

#8

帖子 a3linux » 2007-08-31 22:40

这个算是什么问题呢?
没人知道吗?
HenryHu
帖子: 2
注册时间: 2008-02-03 22:35
送出感谢: 0
接收感谢: 0

#9

帖子 HenryHu » 2008-02-03 22:39

太感谢了! 虽然我用的是FreeBSD…… VIM是自己编译的,直接用编译好的没有问题…… 在终端两边加空格真的可以解决问题…… 是不是vim读入终端标题没处理好?(vim不是会修改终端标题的么……)
头像
pro711
帖子: 42
注册时间: 2008-06-15 7:47
来自: 上海
送出感谢: 0
接收感谢: 0

#10

帖子 pro711 » 2008-06-17 9:32

mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
太感谢了,有谁知道是什么原理吗?
头像
Qeeken
帖子: 289
注册时间: 2008-03-11 23:36
来自: Guangzhou Guangdong
送出感谢: 0
接收感谢: 1 次
联系:

#11

帖子 Qeeken » 2008-08-27 16:17

还是不行,8.10的
自由万岁
头像
bzhao
帖子: 207
注册时间: 2008-07-05 2:15
送出感谢: 1 次
接收感谢: 0

Re: vim退出乱码

#12

帖子 bzhao » 2008-12-06 18:31

我的8.10好像可以了, 待长时间检验,我明天告诉大家。
方法但是足见背后的功力
cupzhangteng
帖子: 22
注册时间: 2008-04-05 8:31
来自: 北京昌平
送出感谢: 0
接收感谢: 0

Re:

#13

帖子 cupzhangteng » 2009-11-07 14:34

mily 写了:打开你的终端
编辑 - 属性 - 常规
在终端的标题 “终端” 二字前后各加上一个空格
问题应该可以解决
原理未知
9.10应该是打开终端,编辑-配置文件首选项-标题和命令-起始标题,将“终端”前后各加一个空格,解决退出乱码,可惜不知道原理
雪狼一样的生活
头像
i_NIX
帖子: 450
注册时间: 2008-02-11 15:46
送出感谢: 0
接收感谢: 0

Re: vim退出乱码

#14

帖子 i_NIX » 2009-12-01 13:33

先安装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/
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 rain-cloud@appspot.com 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

有点明白了——vim退出乱码

#15

帖子 lilydjwg » 2009-12-02 15:38

已经知道一点了:
当终端标题以中文结束时,会出现这种情况,系统调用如下:

代码: 全选

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' (标题结束)的值。
回复

回到 “Vim和Emacs”