2009-02-27 108 views
1

当我cperl模式做缩进区域如何在emacs cperl模式下停止自动格式化?

 
if ($x) { next; } 

的Emacs它格式化到:

 
if ($x) { 
    next; 
} 

我怎样才能使它停止这样做?

注意:最初的问题表明,这种重新格式化发生在执行操作时。我也将缩进设置为缩进区域。

+0

我不认为cperl模式是这样做的,除非你是通过 中间鼠标粘贴到xterm中。在这种情况下,请通过自定义关闭 cperl-hairy,然后重试。 – jrockway 2009-02-27 02:44:02

回答

5
(setq cperl-break-one-line-blocks-when-indent nil) 
0

它不适合我,我只是用Perl菜单下的Toggle ...子菜单中的各种设置来尝试它。难道除了Cperl模式之外还有其他一些事情正在实现吗?

2

假设您不希望它在输入该类代码时自动生成格式,只需将{}的绑定更改为self-insert-command而不是perl-electric-terminator即可。

+0

我修正了一个错字。希望你不介意... – dmckee 2009-02-27 01:43:56

2

我找不到任何cperl模式,会做到这一点。尝试启动Emacs进行任何自定义:

$ emacs -q 

,然后打开cperl模式在划伤缓冲:

M-x cperl-mode 

粘贴文本;它应该看起来像原始的(即全部在一行上)。然后开始自定义cperl模式:

M-x customize-group<RET>cperl<RET> 

单独设置每个变量只对当前会话,并在每个设置之间试图粘贴。如果你突然发现你所看到的行为,那么你就有了一个可以看得更远的起点(可以是选项的组合)。

如果您完全定制了cperl,并且它仍然没有“错误地”行为,那么您需要开始查看其他软件包可能导致它的原因。这可能需要一段时间....

0

没有听起来像我给copout答案,为什么不做这个?

next if $x; 

相同的代码,相同的效果,只是为可读(对我来说,至少),但我敢打赌,Emacs会不会尝试重新格式化。

相关问题