cperl模式下的Emacs漂亮符号:::必须被我的空格包围
我正在使用带有PDE和cperl模式的Emacs。我真的很想用它来美化符号模式。仅使用perl模式时,会发生以下情况:cperl模式下的Emacs漂亮符号:::必须被我的空格包围,emacs,pde,cperl-mode,Emacs,Pde,Cperl Mode,我正在使用带有PDE和cperl模式的Emacs。我真的很想用它来美化符号模式。仅使用perl模式时,会发生以下情况: Mod::thing->new( {c => 'sea'} ); 变成 Mod∷thing→new( {c ⇒ 'sea'} ); 但是,当使用cperl时,相同的表达式变为 Mod::thing→new( {c ⇒ 'sea'} ); 在cperl模式下,:仅变为∷当其两侧用空格分隔时 我已经尝试添加到cperl中——漂亮符号列表和漂亮符号列表。而且仍然只有
Mod::thing->new( {c => 'sea'} );
变成
Mod∷thing→new( {c ⇒ 'sea'} );
但是,当使用cperl时,相同的表达式变为
Mod::thing→new( {c ⇒ 'sea'} );
在cperl模式下,:
仅变为∷代码>当其两侧用空格分隔时
我已经尝试添加到cperl中——漂亮符号列表和漂亮符号列表。而且仍然只有->
和=>
工作
我想这可能是cperl将字符定义为符号或单词的方式,但是->
和=>
没有被空格包围就可以正常工作。我明白了。我转到/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行编辑为(修改语法条目?:“”cperl mode语法表)
,而不是(修改语法条目?:“”cperl mode语法表)
。然后我用字节编译了文件并将其放回/usr/share/emacs/26.1/lisp/progmodes
您也可以在init文件中执行此操作,这样就不必编辑Emacs附带的任何文件。如果编辑属于Emacs的文件,则每次安装或升级时都需要更新它们
(with-eval-after-load "cperl-mode"
(modify-syntax-entry ?: "." cperl-mode-syntax-table))
这是因为cperl模式
在其语法表中为:
字符提供了语法“符号成分”,而perl模式
为其提供了语法“标点符号”。我可以将其更改为其他形式吗?要做到这一点,elisp代码是什么?