以下文字摘自TxtBrowser最新版(v1.1.7)的帮助文档(用:help txt-faqs查看详请), 谢谢
xbeta的大力帮助.
6.2 在Window下taglist不能正常处理带中文字符的文件名
问: Windows操作系统下如果路径或文件名里有中文字符, taglist不能正常显示
答: 这是taglist的问题, 最简单的解决办法是下载附件里修正的taglist.vim(基于v4.5),
替换你正在使用的taglist.vim, 如果你熟悉diff和patch命令, 也可以用后面给出的diff
自己修改你的taglist.vim文件.
Windows操作系统下不能正确显示taglist是由下面两个原因引起的, 下面是是问题分析和
用于修改的diff文件(基于taglist.vim v4.5):
1) taglist.vim在从版本4.1升级到4.2的过程中, 加了一个逻辑: Windows下, taglist不
是直接把命令传给cmd, 而是先写到一个临时文件, 再执行这个临时文件, 这是引起命令
不能正确解析的主要原因, 放心把这部分删掉就可以了, 应该不会引起什么问题(谁遇到
问题请报告给我, 谢谢).
2) 如果你用enc=utf8做为默认的编码方式, 由于Windows系统默认使用cp936编码, 所以
taglist在给ctags传送命令的时候会把中文路径名解释成乱码, 所以引起不能正确处理中
文路径名. 解决的办法为在传送命令给给Windows命令行之前加一个iconv()函数先转换一
下, 将编码方式转换成Windows可接受的cp936编码, 就可以正常工作了.
但是由于在管在Windows下, 还是在Linux下, 都是拿enc的值传给操作系统, 而操作系统
只接受fenc的编码格式, 所以要想让你的中文标题能在taglist里正确显示, 请确保文件
的enc和fenc的值是一样的. 其实可以做到不一样, 在处理前拿iconv()函数转换一下就可
以了, 只是这个我还没有来的及研究, 可能会在下一个版本研究下, 到时候再给大家发布
. 大家先忍忍吧:-)欢迎提供技术支持.
也可以直接patch下面的diff解决这个问题(基于taglist.vim v4.5):
|
|Index: taglist.vim
|===================================================================
|RCS file: /cygdrive/d/cvsroot/docu/script/vim/taglist/taglist.vim,v
|retrieving revision 1.1.1.1
|diff -u -p -r1.1.1.1 taglist.vim
|--- taglist.vim 13 Mar 2009 04:16:54 -0000 1.1.1.1
|+++ taglist.vim 19 Feb 2010 11:01:04 -0000
|@@ -2264,8 +2264,7 @@ function! s:Tlist_Process_File(filename,
| set noshellslash
| endif
|
|- if has('win32') && !has('win32unix') && !has('win95')
|- \ && (&shell =~ 'cmd.exe')
|+ if 0
| " Windows does not correctly deal with commands that have more than 1
| " set of double quotes. It will strip them all resulting in:
| " 'C:\Program' is not recognized as an internal or external command
|@@ -2285,6 +2284,11 @@ function! s:Tlist_Process_File(filename,
|
| call s:Tlist_Log_Msg('Cmd: ' . ctags_cmd)
|
|+ "win32 need pass 'cp936' characters to cmd.
|+ if has('win32') && !has('win32unix') && (&enc != 'cp936')
|+ let ctags_cmd = iconv(ctags_cmd, &enc, "cp936")
|+ endif
|+
| " Run ctags and get the tag list
| let cmd_output = system(ctags_cmd)
--
我的blog, Vim和pp:
http://guoyoooping.blog.163.com
TxtBrowser现在可以正常处理Windows下文件名带中文字符的标题标签
-
- 帖子: 23
- 注册时间: 2010-01-05 22:47
TxtBrowser现在可以正常处理Windows下文件名带中文字符的标题标签
- 附件
-
- taglist.zip
- 这是修正后的taglist.vim(基于版本v4.5), 解压后替换原来的文件. 请事先对原文件进行备份
- (31.05 KiB) 已下载 70 次