2009-02-27 5 views
1

Quand je fais indent-région cperl modeComment arrêter le formatage automatique en mode emacs cperl?

 
if ($x) { next; } 

Emacs reformate à:

 
if ($x) { 
    next; 
} 

Comment puis-je faire arrêter de faire ça? Remarque: à l'origine, la question indiquait que ce reformatage se produisait lors d'un retrait. J'ai également configuré la zone de retrait.

+0

Je ne pense pas que cperl-mode est en train de faire cela, à moins que vous ne "couchiez" par en collant le milieu de la souris dans un xterm. Dans ce cas, désactivez cperl-hairy via la personnalisation, puis réessayez. – jrockway

Répondre

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

Cela ne fonctionne pas de cette façon pour moi, je l'ai juste essayé avec divers paramètres dans le sous-menu Toggle ... sous le menu Perl. Pourrait-il y avoir autre chose que le mode Cperl qui rend cela possible?

2

En supposant que vous ne voulez pas à Autoformat lorsque vous tapez ce genre de code soit, il suffit de changer les liaisons de {} à self-insert-command au lieu de perl-electric-terminator.

+0

J'ai corrigé une faute de frappe. J'espère que ça ne vous dérange pas ... – dmckee

+0

Une faute de frappe? *Moi*? Impossible. ;-) Merci! –

2

Je ne trouve rien en mode cperl qui ferait cela. Essayez emacs commençant par aucune personnalisation:

$ emacs -q 

puis activer le mode cperl dans la scratch tampon:

M-x cperl-mode 

coller votre texte; il devrait ressembler à l'original (c'est-à-dire tout sur une ligne). Ensuite, commencer à personnaliser cperl mode:

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

réglage chaque variable individuellement pour la session en cours, et d'essayer la pâte entre chaque paramètre. Si vous trouvez soudainement le comportement que vous voyez, vous avez un point de départ pour regarder plus loin (il pourrait s'agir d'une combinaison d'options).

Si vous obtenez un cperl entièrement personnalisé et qu'il ne se comporte toujours pas "incorrectement", vous devez commencer à regarder ce que d'autres paquets pourraient causer. Cela peut prendre un certain temps ....

0

Sans donner l'impression que je donne une réponse copout, pourquoi ne pas le faire?

next if $x; 

Même code, même effet, et tout aussi lisible (pour moi, au moins), mais je parie que emacs ne vais pas essayer de le reformater.

Questions connexes