我不知道为什么,但是这个话题似乎被logging得很差,而且有争议,因为没有人知道真正的答案(除了也许很less有人回答的穆勒纳尔先生之外)。
所以基本上我在这里提出了一个讨论,并且很快就死了,可能是因为在Windows上没有太多人在terminal模式下使用Vim。
我的编码设置如下所示:
if has('multi_byte') if empty(&termencoding) let &termencoding = &encoding endif let &encoding = 'utf-8' let &fileencoding = 'utf-8' endif
当然,我在GVim下运行也没有问题:可以input任何字符,我修补的Powerline的Consolas工作得很好。 当我尝试在terminal模式下运行Vim时,问题就开始了。 我使用ConEmu ,一个function丰富的Windowsterminal模拟器。 它声称正式支持Unicode的开箱即用。 例如,我可以运行以下testing脚本:
Linuxterminal:如何捕获或观看其他terminal会话
在Runtime.exec()+ linux中不能使用&&运算符
在Putty中使用可变宽度的字体
在Windows上同时监控多个日志文件(通过ssh)?
chcp 65001 & (cmd /c type "%~dpn0.cmd") & pause & goto :EOF English: texts,web pages and documents Graves,etc: à á â ã ä å æ ç è é ê ë ì í î ï Greek: ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο arabic: ڠ ڡ ڢ ڣ ڤ ڥ ڦ ڧ ڨ ک ڪ ګ ڬ ڭ ڮ گ Full width: @ A B C D E F G H I J K L M N O Romanian: texte,pagini Web şi a documentelor Vietnamese: văn bản,các trang web và các tài liệu Russian: тексты,веб-страницы и документы Japanese: テキスト、Webページや文書Yiddish: טעקסץ,וועב זייַטלעך און דאָקומענטן hindi: पाठ,वेब पृष्ठों और दस्तावेज Thai: ข้อความ หน้า เว็บ และ เอกสาร Korean: 텍스트,웹 페이지 및 문서 Chinese: 文本,網頁和文件
我可以在ConEmu中正确地看到所有的符号。 是的,testing脚本打开65001代码页。 我已经发现Vim无法使用65001代码页,所以这似乎不是一个选项。 在terminal的默认代码页是437,我也可以用Conemu在这个默认代码页中input类似俄文的东西,并且显示正确。
通过阅读:h termencoding ,我发现Windows默认使用Unicode来传递符号。 那么,我不明白为什么当我在terminalVim中input任何非ANSI的东西时,我看到了? 符号? 航空公司也没有显示来自补丁Consolas奇特符号。 如何在Windows上为terminalVimconfiguration真正的Unicode? 顺便说一下, &termencoding报告也是437。
请有人,一劳永逸,向我解释是否支持WindowsterminalVim的Unicode支持(以及如何configuration)?
如何在Linuxterminal中创build电子邮件帐户/地址?
从eclipse启动terminal
编写一个Linuxterminal模拟器
/ dev / random极慢?
多个linuxterminal同时向所有窗口发送命令
我自己也想知道这个,过去曾经尝试过ConEmu,但为了获得256色的控制台vim和花哨的字体而苦苦挣扎。
所以今天我又试了一次,惊喜,惊喜 – 事情似乎在奏效。 鉴于对版本的所有极端敏感,我将尝试列出所有的版本
VIM - Vi IMproved 7.4 (2013 Aug 10,compiled Aug 1 2014 09:38:34) MS-Windows 32-bit console version Included patches: 1-389 Compiled by raghuramanr@ADITI
ConEmu
140723 Alpha
Windows:Win 7×64
.vimrc中的ConEmu设置:
" ConEmu if !empty($CONEMUBUILD) echom "Running in conemu" set termencoding=utf8 set term=xterm set t_Co=256 let &t_AB="e[48;5;%dm" let &t_AF="e[38;5;%dm" " termcap codes for cursor shape changes on entry and exit to " /from insert mode " doesn't work "let &t_ti="e[1 q" "let &t_SI="e[5 q" "let &t_EI="e[1 q" "let &t_te="e[0 q" endif
脚步:
chcp 65001 vim.exe
在vim中,我仍然无法获得一个闪烁的光标。 还是比以前更好的东西会搞砸了。
最近有一个针对“Vim console中的Windows 8 IME”的补丁 。 它被清理了mattn并张贴在这里: https ://gist.github.com/mattn/8312677
它包含在7.4.142中。 这个版本是否解决了你的问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。