我遗漏了其他文字编辑经常提供的一个有用的功能。在底部状态栏中,它们显示当前字符的ASCII和UTF代码 - 当前位置之前或之后的字符(现在不确定)。我无法找到执行此操作的程序包或执行此操作的本机功能。
感谢您的帮助。
答案 0 :(得分:11)
我为此制作了一个插件:)
在anyname.py
目录中创建Packages/User/
文件。
import sublime, sublime_plugin, textwrap, unicodedata
class utfcodeCommand(sublime_plugin.EventListener):
def on_selection_modified(self, view):
# some test chars = $ €
sublime.status_message('Copying with pretty format')
selected = view.substr(view.sel()[0].a)
char = str(selected)
view.set_status('Charcode', "ASCII: " + str(ord(selected)) + " UTF: " + str(char.encode("unicode_escape"))[2:-1])
这应该在插入符右侧的字符的状态栏中显示ASCII和Unicode代码。
告诉我这是否适合您,在Kubuntu Linux 12.04 x64上使用ST3进行测试。 由于Python版本不同,可能无法在ST2上运行。
答案 1 :(得分:3)
答案 2 :(得分:0)
我遇到了Sergey Telshevsky在ST2 / Python 2.7中发布的代码的几个问题:
由于SyntaxError: Non-ASCII character '\xe2' in file ./display_character_code.py on line 7
,我得到了# some test chars = $ €
- 删除了这个已注释掉的代码,或者在Python代码的顶部声明了一个字符编码,例如# -*- coding: UTF-8 -*-
摆脱了错误。选择样本“€”时,我也得UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac'
(因为它不是ASCII字符)。甚至在修复这些之后,从未显示过Unicode密钥;例如状态栏显示ASCII: 123 UTF:
。所以我重新设计了他的例子并想出了以下内容:
import sublime_plugin
class statusCharCodes(sublime_plugin.EventListener):
def on_selection_modified(self, view):
selected = view.substr(view.sel()[0].a)
try:
ascii = str(ord(selected.encode("ascii"))).zfill(3)
except:
ascii = "n/a"
try:
utf = "U+" + str(format(ord(selected),"x")).zfill(4).upper()
except:
utf = "n/a"
view.set_status("Charcode", "ASCII: " + ascii + " UTF: " + utf)
示例输出: