J'ai utilisé Xcode et Netbeans, et j'ai remarqué qu'ils ont une fonctionnalité pour compléter automatiquement des guillemets ou des parenthèses (et je suppose que d'autres idées le font souvent aussi). Je ne sais pas quel est le nom de cette fonctionnalité, mais y a-t-il un moyen de le faire dans Emacs?
Par exemple, lorsque je tape p> je voudrais Comme il est automatiquement entré p> placer le curseur entre les guillemets. P> Merci. P> P>
6 Réponses :
La variante de base serait autopairs . Le même effet mais un peu plus sophistiqué peut également être obtenu avec Yasnippet . P>
Il semblait que Sata SutoPairs et Paredit sont les deux suggestions populaires, mais il semble que AutoPairs soit fabriqué pour s'intégrer bien à Yasnippet, qui est agréable pour la fin du code supplémentaire.
J'utilise le code de http: // cmarcelo .wordpress.com / 2008/04/26 / A-Little-Emacs-Expérience / Pour faire des "paires électriques". Comme je lescibe dans Mon blog Autres modes ont des problèmes avec les chaînes triple citées de Python. (Une particularité python) p>
Si vous tapez m- (, cela insérera à la fois un (et a) et laisserez le point entre les deux; si vous tapez ensuite m-), cela déplacera le point sur la fermeture). J'utilise cela tout le temps. P>
Il existe également un mode appelé "paredit" (disponible chez http://mumble.net /~campbell/emacs/paredit.el ) qui fait également ce genre de choses pour les citations et probablement d'autres choses. P>
Dans mon configuraton, m -) code> est lié à
déplacer-passer-passer-clore-and-revient code>, c'est-à-dire une nouvelle ligne. Y a-t-il une possibilité de passer au-delà des parenthèses entourant sans renouer?
m-- c-m-u code> pourrait faire ce que vous voulez.
Inserts en mode parédit à la correspondance des éléments de fermeture par défaut, donc le moment de saisir que vous verrez quelque chose comme printf () code> puis
printf ("") code> et le curseur serait être positionné à l'intérieur des citations. p>
Mes 5 cents ici aussi.
(defadvice backward-kill-word (around delete-pair activate) (if (eq (char-syntax (char-before)) ?\() (progn (backward-char 1) (save-excursion (forward-sexp 1) (delete-char -1)) (forward-char 1) (append-next-kill) (kill-backward-chars 1)) ad-do-it))
Depuis que les autopairs ne semblent pas automatiquement supprimer des paires, ces conseils de paires de suppression arrière ressemblent à un excellent supplément.
J'ai déjà utilisé une telle macro, mais j'utilise tant d'éditeurs différents aujourd'hui (Emacs, VS, Eclipse, PN) que je ne pouvais pas compter sur une telle caractéristique. Au lieu de cela, j'ai intériorisé ce comportement et peut à peine taper un caractère gauche sans insérer réflexivement le caractère équilibré correspondant. Les non-programmeurs qui me voient faire cela pensent que je suis bizarre.