缘起

几个月前读过少数派这两篇文章,收获巨大,由此衍生了我「怎么输入直角引号」的问题。对此念念不忘,惦记了很久。

至于我为什么用直角引号,很简单,因为一些网站或软件使用的字体看不出是前引号还是后引号

参照 macOS 下 shift+[/]输入直角引号,特别说明本文的输入都是在中文输入法下。我希望键入引号键,输入单引号自动交替替换为/,双引号则自动交替替换/;又或者键入[/]键位,分别输入/,键入shift+[/]组合键,输入/

从文本替换说起

上文中提到了文本替换工具,找到 aTextBeeftextPhraseExpressrTextExpander ,情况不太好。引号‘/’“/”均不能被替换,[/]可以替换。

后来发现键入一次[,英文模式出现「[,中文模式则是「【。找到的文本替换软件都有相似的问题,放弃,只好回头试试难度较高的 AutoHotKey。

AutoHotKey

引号‘/’“/”还是不能被替换;重映射键位依靠延迟判断,还得小心翼翼判断,不要

;引号键输入直角引号
::![::「
::!]::」 
::“::『
::”::』

重映射键的写法,得知靠延迟判断(请教别人得知)后放弃没写。

退而其次,[/]输入/总行吧。可是和输入法翻页冲突,怎么忘了这茬!

;方括号键输入直角引号
:*:[::「
:*:]::」 ```

行行,换和修饰键组合行了吧,为了避免和以前的符号冲突,修饰键就用 alt

  • 重映射键盘的写法,alt做修饰键不行,win可以……不想用win键做修饰。另,换{/}一样的效果
#[::「  ;win 可以
![::「 ;alt 不可以
  • 热字串和自动替换的写法,果然也不行,altwin做修饰键均不行。
::![::「 ;alt 不可以
::#[::「 ;win 不可以
  • send 命令的写法,altwin做修饰键均可以。
+[::Send 「
#[::Send 「
  • 不用 shift 做修饰键的原因是英文输入法下占用花括号,和预料的一样。
+[::「 ;第一种可以,占用花括号
::+[::「 ;第二种不可以
+[::Send 「 ;第三种可以,占用花括号
  • 到这里,总算试出了能用的方法,alt+[/]输入/alt+shift+[/]输入/
![::Send 「 ;alt+[,输入「
!]::Send 」 ;alt+],输入」
!+[::Send 『 ;alt+shift+[,输入『
!+]::Send 』 ;alt+shift+[,输入』 
  • 右侧的数字小键盘,很少用,也是个不错的方案。数字7输入数字8输入alt+数字7输入alt+数字8输入
Numpad7::Send 「 ;输入「
Numpad8::Send 」 ;输入」
!Numpad7::Send 『  ;修改键alt,输入『
!Numpad8::Send 』  ;修改键alt,输入』

输入法

还是不太满意,AutoHotKey 虽然能利用修饰键输入直角引号,但是不能键入引号键交替输入直角引号。

又找到 Rime 这个能重映射符号的输入法,键入引号键能交替出现直角引号,但是shift不能做修饰键输入另一对直角引号。

  punctuator:
    import_preset: symbols
    symbols:
    half_shape:
      # 直角引号
      "[" : "「"
      "]" : " 」"
      "{" : "『"
      "}" : "』"
      "'": { pair: ["「", "」"] } #占用引号键输入直角引号

既然试输入法了,也试下其他输入法。此前,不考虑输入法的原因是微软拼音用习惯了,不想换。

搜狗输入法、百度输入法的自定义标点设置,简简单单地就实现了。输入单引号自动交替替换为/,双引号则自动交替替换/;输入[/]分别替换为/,输入{/}则分别替换为/。 

居然这么简单,这就很气,前面的全白干了。讯飞输入法,没有类似的设置。

对比

这些方法,有好有坏,有易有难,以我的角度对比一下。关于题目Windows 下优雅地输入直角引号划掉,我承认我标题党了,这实际上是篇避坑指南(大哭!)。

  • 以 atext 为代表的文本替换工具,引号‘/’“/”均不能被替换,替换[/]/可能出现两个符号的问题。可能是我没有设置好的缘故,我放弃的主因是不想为了替换直角引号额外安装一个软件
  • AutoHotKey 也不能键入引号键后交替输入直角引号,alt+[/]shift+[/]相差不大,而且能干的事挺多的。不出意外,我会琢磨更多的用法,所以保留。只是入门门槛较高,当然你也可以用别人 AutoHotKey 脚本转换好的程序。
  • 输入法,先讲 Rime 这个能自定义输入方案顺带重映射符号的输入法,除了不能shift+引号键输入另一对直角引号,其他都做到。
    只是要替换直角引号,那么还算简单。但是如果全平台的话,考虑输入方案和词库就很麻烦,我折腾了不少时间也没整好。
    百度和搜狗简单多,也不用忧虑全平台、词库。缺点,相比微软拼音和 Rime,一堆乱七八糟的工具和设置,我看着很糟心

如果你用搜狗或者百度,那么恭喜你不用换软件;如果你不用,最简单的方法就是这个。

结语

我期待能有更好的方法,欢迎讨论。

AutoHotKey 就没办法把输入的引号‘/’“/”替换了吗?不依靠通过延迟一定时间判断,我对此很不死心。

如果微软拼音也能自定义标点设置就好了。

 

14
26