在Sublime Text 2中显示状态栏中当前字符的信息

时间:2014-02-27 08:50:32

标签: character sublimetext2

我遗漏了其他文字编辑经常提供的一个有用的功能。在底部状态栏中,它们显示当前字符的ASCII和UTF代码 - 当前位置之前或之后的字符(现在不确定)。我无法找到执行此操作的程序包或执行此操作的本机功能。

感谢您的帮助。

3 个答案:

答案 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)

这是一个这样的插件,它以十进制显示字符代码:Show Character Code

  

Simple Sublime Text插件,用于在状态栏中显示当前字符的十进制代码

虽然它只显示字符代码的十进制值

答案 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)

示例输出: