首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cperl模式中的Emacs漂亮符号:必须将我的空格括起来

cperl模式中的Emacs漂亮符号:必须将我的空格括起来
EN

Stack Overflow用户
提问于 2019-04-24 06:56:06
回答 2查看 108关注 0票数 2

我正在使用带有PDE和cperl-mode的Emacs。我真的希望美化-符号-模式与它一起工作。当只使用perl模式时,就会发生这种情况:

代码语言:javascript
复制
Mod::thing->new( {c => 'sea'} );

变成了

代码语言:javascript
复制
Mod∷thing→new( {c ⇒ 'sea'} );

但是,当使用cperl时,相同的表达式变成

代码语言:javascript
复制
Mod::thing→new( {c ⇒ 'sea'} );

在cperl-mode中,只有当两边用空格分隔时,::才会变成

我已经尝试添加cperl--pretty-symbols-I和pretty-symbols-alist。而且仍然只有->=>可以工作。

我认为这可能是cperl将字符定义为符号或单词的方式,但是->=>在没有空格的情况下工作得很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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中。

票数 1
EN

Stack Overflow用户

发布于 2019-05-22 00:56:24

您也可以在init文件中执行此操作,这样就不必编辑Emacs附带的任何文件。如果编辑的文件是Emacs的一部分,则需要在每次安装或升级时更新它们。

代码语言:javascript
复制
(with-eval-after-load "cperl-mode"
  (modify-syntax-entry ?: "." cperl-mode-syntax-table))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55820462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档