ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

JapanWordStop

woodmix ST3 WinLinux

Sublime Text插件,提供日语的词汇跳转功能

详情

  • 1.1.4
  • github.com
  • github.com
  • 1年前
  • 2小时前
  • 4年前

安装

  • 总计 426
  • Win 404
  • Mac 0
  • Linux 22
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Readme

源代码
raw.githubusercontent.com

这是一个插件,使Sublime能够正确处理言语跳转(ctrl+right等)的日语字符串。
英文README在这里这里

JapanWordStop

使用ctrl+right等执行词汇跳转时,Sublime标准版将把日语文字、汉字、平假名全部视为一个整体进行跳转。
此插件将以换行标记的位置为终止点来改变行为。

特点

  • 仅仅通过文字种类进行判断,因此可以预测停止点。
  • 以拦截标准命令的形式运行,因此不需要设置快捷键(可设置)。
  • 因此,它不会阻止Sublime双击时的异常行为。
  • 也支持subtractive选项。
  • Ctrl+D也能进行词汇选择。
  • 在ascii字符串中的词汇跳转基本上遵循Sublime标准,同时反映Sublime设置“word_separators”。
    但是,对于涉及符号文字(尤其是逗号)的停止位置进行了更改(下面详述)。

停止位置的示例

在“|”所示的位置停止。
※将平假名视为和前一个文字一起组成的假名,类似于ascii字符串中的空格字符的处理。

|吾輩|《わがはい|》は|猫である|。|名前はまだ|無い|。|
|どこで|生れたかとんと|見当|《けんとう|》がつかぬ|。|何でも|薄暗いじめじめした|所で|ニャーニャー|泣いていた|事だけは|記憶している|。|
|吾輩はここで|始めて|人間というものを|見た|。|しかもあとで|聞くとそれは|書生という|人間中で|一番獰悪|《どうあく|》な|種族であったそうだ|。|

如果执行了子词汇跳转(alt+right, alt+left),则无法跳过平假名。

吾輩|《|わがはい|》|は|猫|である|。|名前|はまだ|無|い|。|
|どこで|生|れたかとんと|見当|《|けんとう|》|がつかぬ|。|何|でも|薄暗|いじめじめした|所|で|ニャーニャー|泣|いていた|事|だけは|記憶|している|。|
|吾輩|はここで|始|めて|人間|というものを|見|た|。|しかもあとで|聞|くとそれは|書生|という|人間中|で|一番獰悪|《|どうあく|》|な|種族|であったそうだ|。|

与Sublime标准的ascii字符串之间的区别

以下是一些示例字符串…

loving_word ENUM('hello', 'world', 'sublime') NOT NULL

在Sublime标准中,点击ctrl+right将在以下位置停止。强调逗号是非常明显的。

loving_word| ENUM|('hello|'|,| 'world|'|,| 'sublime|'|)| NOT| NULL|

另一方面,点击ctrl+left将在以下位置停止。对逗号的认识发生了变化。

|loving_word |ENUM|(|'|hello', |'|world', |'|sublime') |NOT |NULL

引入此插件后,ctrl+right将在以下位置停止。
逗号不会被特别处理,而是简单地以单词末尾和符号末尾为终止点。

loving_word| ENUM|('|hello|',| '|world|',| '|sublime|')| NOT| NULL|

ctrl+left也是如此。简单地以单词开头和符号开头为终止点。

|loving_word |ENUM|('|hello|', |'|world|', |'|sublime|') |NOT |NULL

由于Sublime标准的行为本身就不太一致,因此我并没有刻意去实现再次。

关于鼠标拖动的说明

Sublime通常会在双击后,不释放鼠标按钮而直接拖动时,以单词为单位扩展选择范围。
在此插件中,我实现了双击时以单词为单位选择日语字符串的行为,但直接拖动时保持Sublime标准的行为。也就是说,日语字符串将被整体选择。
这是因为Sublime的on_hover()事件有一个很大的延迟,如果试图进行修改,则ascii字符串上的拖动体验会变差。

关于子词汇跳转的小贴士

使用下划线“_”进行停止的子词汇跳转,但在两侧存在的字符是大写还是小写时,其行为会有所不同。
例如,“AUTO_INCREMENT”和“auto_increment”在从左到右通过alt+right进行子词汇跳转时会在以下位置停止。

AUTO|_|INCREMENT|
auto|_increment|

这是由Sublime标准引起的,并非此插件引起的。