从Scalaz键入有趣人物的快速方法?


13

是否有任何简便的方法可以从Scalaz键入有趣的字符(例如⊛,≟,∘,∨等)?(我正在使用Ubuntu 9.04)


4
我严重不明白为什么图书馆设计师会选择首先使用这种有趣的符号。任何正当理由?

2
同意,直到我们至少看到一些键盘支持为止

有很多方法可以打印有趣的字符,但是大多数方法都是特定于OS和发行版的。我认为这类问题最好在超级用户上提出。
P Shved

1
@Pavel:我期待Scalaz自己的创造者提供答案。这就是为什么我在StackOverflow上发布问题。

看看xmodmap。
Debilski

Answers:


12
  1. 使用库提供的ASCII别名。例如,|+|是的别名
  2. 将IntelliJ IDEA与这些实时模板一起使用。然后,您可以写x mapmap<TAB>得到x ∘∘。此最新问题涵盖了安装说明。IntelliJ有一个免费的Community Edition,它是我个人对Scala编码的选择和推荐。
  3. 我相信Gnome中输入Unicode字符的快捷方式是CTRL-SHIFT-U,十六进制代码和Enter。
  4. 为您喜欢的编辑器创建模板。

为什么要完全使用这些符号?

  1. 我们依赖于Pimp-my-Library模式,但我们没有包装一个特定的类型,而是提供了适用于具有适当类型类实例的任何类型的额外功能。使用非标准字符可以最大程度地减少与原始类型提供的方法之间的名称冲突。
  2. 某些操作,例如Functor映射,Monadic绑定和Applicative Functor apply,实际上是最常用的基础操作。Scala具有理解力,可以将其中一些语言构建到语言中。因此,我们为您提供了使用Scalaz版本的选项,同时将语法混乱降至最低,几乎就像它们是语言本身的一部分一样。

例:

some(7) ∘ {1 +} 
List(1, 2, 3) ∗ {x => List(7, x)} 
case class Person(age: Int, name: String)
some(10) ⊛ none[String] apply Person.apply

不了解实时模板。谢谢。

1
您能推荐涵盖所有这些Unicode字符的任何编程字体吗?-就个人而言,我想使用具有可变宽度字符的字体(我不再在列中对齐代码了),但是不幸的是,IntelliJ IDEA仅能很好地处理固定宽度字体的光标移动。
Madoc

这有点超出范围,但是为什么特殊字符(甚至| + |)为函数赋予有意义的名称又有什么问题呢?我正在尝试进入scalaz,但每次看到带有的示例时some(7) ∘ {1 +},都无法理解该做什么。您可能会争辩说它可以节省击键次数,但是如果您必须键入“ mapmap <TAB>”以获取正确的字符,为什么不只调用函数mapmap?
Mortimer

0

尝试这个 -

确保数字
锁定已关闭。按住
数字键盘上的ALT键-按下+,然后按所需字符的十进制Unicode数字。
释放ALT键

这是一个古老的技巧,可在DOS中使用ASCII码(不带+),并在Windows中使用Unicode的编辑框中使用。我认为它应该可以在某些Linux上运行。

您可能还想尝试这里描述的方法。


2
这不是我所说的迅速。而且我不记得这么多字符的unicode数字。我正在寻找更快,要求更低的东西。

0

在Linux中,它比我所知道的任何其他OS都容易。

查看此链接了解背景/详细信息:https : //help.ubuntu.com/community/ComposeKey

首先,您可以按Ctrl + Shift + U,然后输入Unicode代码。例如,Ctrl + Shift + U + 2203 =∃。那可能不太方便,但是下一步将需要它。

更好的方法是使用组合键AKA Multi_key。如上述文章所述,您可以使用Multi_key + char1 + char2编写字符。例如,Multi_key'e是é。

我发现Caps Lock键可以制作出色的Multi_key。您可以使用系统偏好设置->键盘->布局->选项进行设置。

制作自己的键序列。制作文件〜/ .XCompose并添加诸如

:“∃”

(使用Ctrl + Shift + U组合键,或仅使用复制/粘贴)

注销然后再次登录(或者,为了进行测试,只需运行ssh -X localhost xterm)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.