SmartMarkdown插件bug
bug描述
SmartMarkdown是Sublime Text2的一个插件,该插件提供了smart table的功能,该功能在只有ascii字符的时候很完美,但当内容中出现中文,中文标点的时候就会产生错位,这是因为中文在屏幕上的显示占了两倍的英文所占有的位置。
bug修复
由于该插件里面计算的时候是按照字符的长度来计算的,所以他把中文字符串的长度也是计算为1的。我们要做的就是把非ascii字符串替换为两个占位字符,然后计算长度。找到插件目录下的table.py
# 21行添加
NONE_ASCII_PATTERN = re.compile(r'[^\x00-\xff]')
# 124行修改为
new_row.append(col + " " * (cols_length[i] - len(NONE_ASCII_PATTERN.sub(' ',col))))
# 163行修改为
col_len = len(NONE_ASCII_PATTERN.sub(' ', col))
修改过的文件:下载
你好。我是SmartMarkdown插件的作者。可以把你的这个修复Pull Request到Github上吗?
额,我没装git,还是你改下吧。