2009-02-27 40 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會不會嘗試重新格式化。

相關問題