为什么终端内运行vim粘帖的中文是乱码?

Vim、Emacs配置和使用
eesher
帖子: 14
注册时间: 2009-12-10 19:00

为什么终端内运行vim粘帖的中文是乱码?

#1

帖子 eesher » 2010-04-06 13:39

网页上复制的中文用“+p粘帖到终端的vim上就是乱码 如果先粘帖到其他地方再复制过来正常
同样的内容用gvim就没问题....困惑
不过用鼠标中键倒是可以正常粘帖
这是什么原因?

~/.vimrc的编码设置
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,latin-1,prc
set fileencoding=prc
let &termencoding=&encoding
aihaozhe2
帖子: 295
注册时间: 2009-08-19 20:21

Re: 为什么终端内运行vim粘帖的中文是乱码?

#2

帖子 aihaozhe2 » 2010-04-06 19:43

第一次回答问题。。第一次遇见我会的问题。。。。 :em06 :em06

首先,我真的不会复制粘贴,不知道怎么用 :em06

然后,我的 vimrc里,关于文字编码,只有这一句:

set fencs=utf-8,chinese

到目前位置,还没有乱码过

版本:7.1.314
上次由 aihaozhe2 在 2010-04-06 22:59,总共编辑 1 次。
头像
princelai
帖子: 920
注册时间: 2007-01-06 21:00
联系:

Re: 为什么终端内运行vim粘帖的中文是乱码?

#3

帖子 princelai » 2010-04-06 20:29

vim的确有这个问题gvim没有,要是粘贴寄存器里的东西还是gvim吧
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么终端内运行vim粘帖的中文是乱码?

#4

帖子 lilydjwg » 2010-04-06 22:08

本人尝试未出现乱码。
lz 可以贴下 :ver 的结果。
我的是:

代码: 全选

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 26 2010 13:39:28)
编译者 lilydjwg@lilydjwg-desktop
巨型版本 带 GTK2-GNOME 图形界面。  可使用(+)与不可使用(-)的功能:
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +cryptv 
+cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval 
+ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer 
+fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap 
+libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname 
+mouse +mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse 
+mouse_xterm +multi_byte +multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra 
+perl +postscript +printer +profile +python +quickfix +reltime +rightleft +ruby 
+scrollbind +signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title 
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
 +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact 
+xterm_clipboard -xterm_save 
     系统 vimrc 文件: "$VIM/vimrc"
     用户 vimrc 文件: "$HOME/.vimrc"
      用户 exrc 文件: "$HOME/.exrc"
    系统 gvimrc 文件: "$VIM/gvimrc"
    用户 gvimrc 文件: "$HOME/.gvimrc"
        系统菜单文件: "$VIMRUNTIME/menu.vim"
         $VIM 预设值: "/usr/share/vim"
编译方式: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -DORBIT2=1 -pthread -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/directfb -I/usr/include/libpng12     -g    -D_REENTRANT -D_GNU_SOURCE -DDEBIAN  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/perl/5.10/CORE  -I/usr/include/python2.6 -pthread  -I/usr/lib/ruby/1.8/i486-linux 
链接方式: gcc   -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic  -Wl,-E   -L/usr/local/lib -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0     -lgnomeui-2 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgconf-2 -lgthread-2.0 -lrt -lgmodule-2.0 -lgobject-2.0 -lglib-2.0   -lXt -lncurses  -lselinux    -Wl,-E  -L/usr/local/lib  -L/usr/lib/perl/5.10/CORE -lperl -L/usr/lib/python2.6/config -lpython2.6 -L/usr/lib -lz -lutil -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions  -lruby1.8 -lrt -lm   
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#5

帖子 eesher » 2010-04-09 10:48

:ver

代码: 全选

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov  2 2009 08:04:08)
包含补丁: 1-245, 257
编译者 buildd@
巨型版本 带 GTK2 图形界面。  可使用(+)与不可使用(-)的功能:
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist
+cmdline_info +comments +cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search
 +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap
 +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm
 +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript
+printer +profile +python +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white +tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit
 +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard
-xterm_save
     系统 vimrc 文件: "$VIM/vimrc"
     用户 vimrc 文件: "$HOME/.vimrc"
      用户 exrc 文件: "$HOME/.exrc"
    系统 gvimrc 文件: "$VIM/gvimrc"
    用户 gvimrc 文件: "$HOME/.gvimrc"
        系统菜单文件: "$VIMRUNTIME/menu.vim"
         $VIM 预设值: "/usr/share/vim"
编译方式: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/a
tk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include
/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include     -Wall -g -O2    -D_REENTRANT -D_GNU_SOURCE -DDEBIAN  -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/perl/5.10/CORE  -I/usr/include/python2.6 -pthread -I/usr/include/tcl8.4  -D_REENTRANT
=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -I/usr/lib/ruby/1.8/i486-linux
链接方式: gcc   -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic  -Wl,-E  -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -la
tk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -l
glib-2.0   -lXt -lncurses -lselinux  -lacl -lgpm -Wl,-E  -L/usr/local/lib  -L/usr/lib/perl/5.10/CORE -lperl -L/usr/lib/python2.6/config -lpy
thon2.6 -L/usr/lib -lz -lutil -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -ltcl8.4 -lieee -lruby1.8 -lrt -lm
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#6

帖子 eesher » 2010-04-09 10:53

aihaozhe2 写了:第一次回答问题。。第一次遇见我会的问题。。。。 :em06 :em06

首先,我真的不会复制粘贴,不知道怎么用 :em06

然后,我的 vimrc里,关于文字编码,只有这一句:

set fencs=utf-8,chinese

到目前位置,还没有乱码过

版本:7.1.314
问题依旧 你是什么版本的vim?
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#7

帖子 eesher » 2010-04-09 10:55

princelai 写了:vim的确有这个问题gvim没有,要是粘贴寄存器里的东西还是gvim吧
呃...这现象怎么解释?解决不了吗?
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么终端内运行vim粘帖的中文是乱码?

#8

帖子 lilydjwg » 2010-04-09 10:58

eesher 写了:
princelai 写了:vim的确有这个问题gvim没有,要是粘贴寄存器里的东西还是gvim吧
呃...这现象怎么解释?解决不了吗?
要不你把乱码时的情况贴个图?(或者用 script(1) 也行)
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#9

帖子 eesher » 2010-04-09 11:08

lilydjwg 写了:
eesher 写了:
princelai 写了:vim的确有这个问题gvim没有,要是粘贴寄存器里的东西还是gvim吧
呃...这现象怎么解释?解决不了吗?
要不你把乱码时的情况贴个图?(或者用 script(1) 也行)
另请教...script(1) 是什么?
附件
tam2.jpeg
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么终端内运行vim粘帖的中文是乱码?

#10

帖子 lilydjwg » 2010-04-09 11:27

被识别为 latin1 编码了。。。 :em20

我使用的是 gnome 版本,而你的不是。也许是因为这个。你试试 gnome 版本的?
或者我编译的版本?(32位)
eesher 写了:
另请教...script(1) 是什么?

代码: 全选

man 1 script
没安装就不行了。

它是一个截取终端字符输出的程序,也可以附加时间信息,这样就可以在其它(相同大小的)终端里再现操作过程了。
还好我一下子就猜中了编码,所以就不用截字符了 :em02
附件
vim.7z
我编译的 Vim (GTK-GNOME Huge 版本)
(656.45 KiB) 已下载 82 次
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#11

帖子 eesher » 2010-04-09 11:52

lilydjwg 写了:被识别为 latin1 编码了。。。 :em20

我使用的是 gnome 版本,而你的不是。也许是因为这个。你试试 gnome 版本的?
或者我编译的版本?(32位)

我用的是kde的桌面系统...
直接apt vim-gnome可以吗?
跟vim-gtk可以共存?
是要删一个吧 不然vim命令运行谁啊?

你编译的那个怎么玩?我用ark打不开~
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 为什么终端内运行vim粘帖的中文是乱码?

#12

帖子 lilydjwg » 2010-04-09 12:06

eesher 写了:
我用的是kde的桌面系统...
直接apt vim-gnome可以吗?
跟vim-gtk可以共存?
是要删一个吧 不然vim命令运行谁啊?

你编译的那个怎么玩?我用ark打不开~
可以共存。Vim 只是一个别名罢了。所以你需要配置一下的。

代码: 全选

>>> update-alternatives --config vim    
链接组 vim 中只有一个替换项:/usr/bin/vim.gnome
无需配置。
KDE 就不知道情况如何了。。难道这个乱码问题是 KDE 特有的?
你也可以试试无图形界面的 Vim 等等。愿意折腾的话把所有的 Vim 版本都试试?

ark 是什么?

代码: 全选

>>> man ark
没有 ark 的手册页条目
aihaozhe2
帖子: 295
注册时间: 2009-08-19 20:21

Re: 为什么终端内运行vim粘帖的中文是乱码?

#13

帖子 aihaozhe2 » 2010-04-09 13:05

eesher 写了:
aihaozhe2 写了:第一次回答问题。。第一次遇见我会的问题。。。。 :em06 :em06

首先,我真的不会复制粘贴,不知道怎么用 :em06

然后,我的 vimrc里,关于文字编码,只有这一句:

set fencs=utf-8,chinese

到目前位置,还没有乱码过

版本:7.1.314
问题依旧 你是什么版本的vim?
版本7.1..就样子的话,我现在打开中文写的文本还是没有问题的。。另外,我没有写

代码: 全选

set encoding
set fileencoding
let &termencoding
这三行
上次由 aihaozhe2 在 2010-04-09 13:14,总共编辑 1 次。
eesher
帖子: 14
注册时间: 2009-12-10 19:00

Re: 为什么终端内运行vim粘帖的中文是乱码?

#14

帖子 eesher » 2010-04-09 13:08

vim-gnome 装不上 又是依赖问题~

代码: 全选

下列的软件包有不能满足的依赖关系:
  vim-gnome: 依赖: vim-gui-common (= 2:7.2.245-2ubuntu2) 但是 2:7.2.245-2ubuntu3~jk1 正要被安装
             依赖: vim-common (= 2:7.2.245-2ubuntu2) 但是 2:7.2.245-2ubuntu3~jk1 正要被安装
             依赖: vim-runtime (= 2:7.2.245-2ubuntu2) 但是 2:7.2.245-2ubuntu3~jk1 正要被安装
E: 无法安装的软件包

ark是kde的压缩工具 我记不住许多命令 有些就用图形的了

代码: 全选

  ark                            - archive utility for KDE 4   
aihaozhe2
帖子: 295
注册时间: 2009-08-19 20:21

Re: 为什么终端内运行vim粘帖的中文是乱码?

#15

帖子 aihaozhe2 » 2010-04-09 13:12

解决依赖问题,可以

代码: 全选

apt-get build-dep xxxx
回复