我正在使用带有 PDE 和 cperl 模式的 Emacs。我真的希望 prettify-symbols-mode 能够使用它。当仅使用 perl 模式时,会发生这种情况:
Mod::thing->new( {c => 'sea'} );
变成了
Mod∷thing→new( {c ⇒ 'sea'} );
但是,当使用 cperl 时,相同的表达式变为
Mod::thing→new( {c ⇒ 'sea'} );
在cperl模式下,::
只有在两侧用空格分隔时才会变成∷
。
我尝试添加到 cperl--pretty-symbols-alist 和 Pretty-symbols-alist。仍然只有 ->
和 =>
有效。
我认为这可能是 cperl 将字符定义为符号或单词的方式,但 ->
和 =>
工作得很好,没有被空格包围。
最佳答案
我明白了。我去了/usr/share/emacs/26.1/lisp/progmodes
并删除了一个名为 cperl-mode.elc 的文件。然后我进入了这里的archinve /usr/share/emacs/26.1/lisp/progmodes/cperl-mode.el.gz
。我将 cperl-mode.el 的第 1498 行编辑为 (modify-syntax-entry ?: "." cperl-mode-syntax-table)
而不是(modify-syntax-entry ?: "_" cperl-mode-syntax-table)
。然后我对文件进行了字节编译并将其放回/usr/share/emacs/26.1/lisp/progmodes
中。
关于cperl 模式下的 Emacs 漂亮符号:::必须包围我的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820462/