2008年7月11日星期五

Vim:用ScreenShot将code转html时中文被转成16进制码的问题

ScreenShot常用的两个命令:

  1. ScreenShot:把当前屏幕内容转成HTML
  2. Text2Html:把整个文件转成HTML

我这边用ScreenShot将code转html时存在中文被转成16进制码的问题。

需要改掉ScreenShot.vim中的两行中文才正常, ScreenShot.Chinese.patch内容如下:

--- ScreenShot.vim 2008-07-11 20:54:41.454722328 +0000
+++ ScreenShot.vim.orig 2008-06-29 01:55:32.000000000 +0000
@@ -890,8 +890,8 @@
let diff = &tabstop - xx%&tabstop
let char = strpart(listChars.tab,0,1).repeat(strpart(listChars.tab,1),
diff-1)
else
+ let id = s:synIDSpec(y,x,hlID('SpecialKey'))
if char2nr(char) < 0x100
- let id = s:synIDSpec(y,x,hlID('SpecialKey'))
if uhex
let diff = 4
let char = char == "\n"?'<00>':printf('<%02x>',char2nr(char))
@@ -914,7 +914,7 @@
endif
else
let diff = 6
- "let char = printf('<%04x>',char2nr(char))
+ let char = printf('<%04x>',char2nr(char))
endif
endif
else


说明:

  • let id = s:synIDSpec(y,x,hlID('SpecialKey'))这行会把中文内容搞成特殊关键字高亮,看着一块一块的,超不爽。
  • let char = printf('<%04x>',char2nr(char))这行会把中文换成16进制码,第一次转出来当场无语。

没有评论:

发表评论