如果我没记错,这也是唯一代表“xor”的符号。 你该如何方便地输入它呢?
是将其复制或粘贴到我的代码中,还是要记住它的Unicode表示?
Julia的REPL具有类似LaTeX的制表符自动完成功能,因此您可以使用\xor<tab>
。 如果您在帮助模式下(在REPL中按下?
)粘贴字符,则可以查看此类字符的制表符完成情况:
help?> ⊻
"⊻" can be typed by \xor<tab>
help?> α
"α" can be typed by \alpha<tab>
许多编辑器都有相似的制表符自动完成功能。有一种非常古老的技术叫做二合字,它提供了两个字符的替代品,用于直接从键盘上无法输入的字符。[RFC 1345](尽管二合字早在此之前就存在)提供了一个标准的映射集,其中包括一些数学符号,例如逻辑与(∧)的AN和逻辑或(∨)的OR。一些编辑器和其他程序支持二合字输入功能。
Vim提供了一个优秀且易于使用的二合字输入功能::help digraph
将告诉您所有相关信息。您可以通过在输入模式下键入Ctrl-K,然后输入二合字的两个字符来输入二合字,因此键入Ctrl-KAN将给您∧
。
⊻
,但是你可以轻松地添加自己的任意映射。例如,我的.vimrc
文件包含了以下内容(第三个字段中的数字是十进制Unicode代码点值):digraph XR 8891 " ⊻ XOR
digraph NA 8892 " ⊼ NAND
digraph NR 8893 " ⊽ NOR
Vim的双字符设施非常棒,我强烈推荐使用。自从我发现它以来,我已经成为了一个非常重度使用Unicode数学和其他字符的用户,它绝对节省了我的代码和文档中的空间并提高了清晰度。
请注意,如果您需要在Bash命令行中偶尔输入双字符,可以使用Bash的edit-and-execute-command
设施(默认绑定到set -o vi
模式下的v
或set -o emacs
模式下的C-x C-e
),这将在您的默认编辑器中打开当前命令行。
GNU Screen提供双字符支持,如果您想在命令行或REPL中使用它们,这可能会很有用。它的工作方式非常类似于Vim,但默认的双字符输入前缀是Ctrl-ACtrl-V。
然而,预定义双字符列表比Vim的要短得多(虽然也遵循RFC 1345),并且没有办法通过配置文件添加其他的双字符(尽管您可能能够以某种方式使用bindkey
来为其他任意字符添加条目——我还没有尝试过)。
但是,如果您不介意重新编译源代码,它可以被修补以添加任何您喜欢的双字符。这个补丁提供了一个支持RFC 1345中的大部分或全部内容的示例。
虽然对于命令行和REPL来说最方便,因为它们中的许多都使用GNU Readline,但它目前不提供任何双字符支持。我在这里提到这一点只是因为如果有人能够被说服添加它,那将是非常棒的。
据我所知,Emacs没有内置的双字符功能,尽管可能有人已经编写了一个。(如果您是一个认真的Emacs用户,自己编写一个可能不会太难。)
如何在Emacs中插入不寻常的字符?提供了一些预先存在的工具,包括使用
M-x insert-char
来搜索类似“xor”的字符串,以及使用helm-ucs
或
helm-unicode从Unicode字符列表中选择。这些方法选择字符比二合字更繁琐。
与Emacs一样,VS Code似乎没有内置的二合字输入功能。这可以很容易地作为扩展添加,但我在Visual Studio Marketplace上找不到这样的扩展。
目前,您最好的选择可能是Insert Unicode扩展。
xor
。但是这样无法使用中缀操作符。 - Jakob Nissen