我正在使用带有PDE和cperl-mode的Emacs。我真的希望美化-符号-模式与它一起工作。当只使用perl模式时,就会发生这种情况:
Mod::thing->new( {c => 'sea'} );变成了
Mod∷thing→new( {c ⇒ 'sea'} );但是,当使用cperl时,相同的表达式变成
Mod::thing→new( {c ⇒ 'sea'} );在cperl-mode中,只有当两边用空格分隔时,::才会变成∷。
我已经尝试添加cperl--pretty-symbols-I和pretty-symbols-alist。而且仍然只有->和=>可以工作。
我认为这可能是cperl将字符定义为符号或单词的方式,但是->和=>在没有空格的情况下工作得很好。
发布于 2019-04-25 04:59:07
这样啊,原来是这么回事。我在/usr/share/emacs/26.1/lisp/progmodes上删除了一个名为cperl-mode.elc的文件。然后我走进了这里的一个大教堂/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中。
发布于 2019-05-22 00:56:24
您也可以在init文件中执行此操作,这样就不必编辑Emacs附带的任何文件。如果编辑的文件是Emacs的一部分,则需要在每次安装或升级时更新它们。
(with-eval-after-load "cperl-mode"
(modify-syntax-entry ?: "." cperl-mode-syntax-table))https://stackoverflow.com/questions/55820462
复制相似问题