Un de mes amis envisage de passer à Emacs à partir de TextMate. Il est habitué au mode d'édition HTML par défaut de TextMate qui comporte des tabulations à 4 espaces et insère des caractères de tabulation (c'est-à-dire qu'il ne crée pas d'indentation automatique par défaut). Il permet également l'achèvement des balises HTML ouvertes avec "Cmd-Shift->
". Des idées?Comment configurer Emacs html-mode pour qu'il se comporte comme le paquet HTML par défaut de TextMate?
Répondre
Je pense que ces paramètres devraient faire l'affaire:
(defun my-html-mode-hook()
(setq tab-width 4)
(setq indent-tabs-mode t)
(define-key html-mode-map (kbd "<tab>") 'my-insert-tab)
(define-key html-mode-map (kbd "C->") 'sgml-close-tag))
(defun my-insert-tab (&optional arg)
(interactive "P")
(insert-tab arg))
(add-hook 'html-mode-hook 'my-html-mode-hook)
Une explication des paramètres dans 'my-html-mode-hook
est la suivante:
- définir la largeur de l'onglet à 4
- onglets de force à inséré (par opposition aux espaces)
- force la touche
TAB
pour insérer une tabulation (par défaut, elle est liée à l'indentation, pas seulement à l'insertion) des onglets 'sgml-close-tag
est la commande qui insère une balise fermante pour vous, et ce paramètre vous obtient le raccourci clavier que vous voulez
Je vais avoir un peu d'un gel du cerveau et ne pouvait pas comprendre simple façon d'avoir la clé TAB
insérer un caractère TAB, alors j'ai écrit le mien. Je ne sais pas pourquoi une liaison à 'self-insert-command
n'a pas fonctionné (c'est ce que les clés normales sont liées).
La dernière ligne ajoute simplement la fonction d'installation au 'html-mode-hook
. Les raccourcis clavier n'ont vraiment besoin d'être exécutés qu'une seule fois (contrairement à chaque fois que le mode html est activé), mais c'est un peu plus facile à lire que d'utiliser 'eval-after-load
. Son utilisation est laissée comme un exercice au lecteur.
Je suis ancré dans l'utilisation de ctrl-z et meta-z pour faire défiler vers le haut/défiler/bas des lignes simples. (C'était standard, je pense dans emacs comme dans les années 80 ou quelque chose.) J'ai dû ajouter cela à mon custom.el dans XEmacs 21.5.29, mais j'ai ensuite trouvé que la personnalisation était surchargée par le mode majeur HTML. Le mécanisme de Trey était exactement ce dont j'avais besoin pour le faire fonctionner à nouveau. Bravo Trey. Il n'y a rien comme si la fenêtre disparaissait pendant que vous défiliez pour détruire votre flux ... –
Je ne connais pas les modes HTML de emacs spécifiquement, mais je peux répondre au sujet des modifications générales:
par défaut, Emacs n'a pas autoindent, donc rien à faire ici. Emacs préserve les caractères de tabulation, à moins que vous ne leur demandiez expressément de les modifier (consultez
tabify
etuntabify
). Leur largeur est déterminée par la variable buffer-localtab-width
.M-x set-variable
,(setq...)
, personnaliser à volonté.vous devriez être en mesure d'obtenir le comportement que vous voulez avec la touche de tabulation en mettant à
indent-line-function
tab-to-tab-stop
, la mise entab-stop-list
-(4 8 12 16...)
etindent-tabs-mode
àt
.
Le paramètre indent-tabs-mode
permet à Emacs d'insérer des caractères de tabulation lors de l'indentation. Le tab-to-tab-stop
est une forme d'indentation qui ne va qu'à des positions spécifiques dans la ligne, que nous définissons pour correspondre au comportement attendu des caractères de tabulation en réglant tab-stop-list
aux multiples de 4.
À propos de l'achèvement, la seule chose que mon muscle la mémoire me dit est "C-c C-e
", mais je ne me souviens pas avec certitude quel mode majeur il est censé aller avec.Le plus proche que je vois dans la liste est sgml-close-tag
, lié à C-c /
Un peu de politique: ne pas utiliser les caractères de tabulation, surtout si vous utilisez des largeurs pas égal à 8. Il en résulte que des résultats imprévisibles
- 1. Emacs: Comment stockez-vous le dernier paramètre fourni par l'utilisateur comme valeur par défaut?
- 2. Type.IsSubclassOf ne se comporte pas comme prévu
- 3. L'écriture dans un FileStream se comporte étrangement, comme observé par le moniteur de processus
- 4. Thème de couleur Dawn de TextMate pour Emacs
- 5. MailMessage.From.DisplayName ne se comporte pas comme prévu avec SmtpClient.Send()
- 6. Comment configurer un commentaire d'archivage par défaut pour CVS?
- 7. Une classe qui se comporte comme @Entity et @Embeddable
- 8. Envelopper la sélection dans Open/Close Tag comme TextMate?
- 9. Configurer GCC 4.2 comme le compilateur par défaut sous Mac OS X Leopard
- 10. Comment faire pour que & nbsp se comporte correctement avec HTML Purifier?
- 11. Thread.join ne se comporte pas comme je l'espérais dans scala
- 12. Le thème personnalisé sharepoint se comporte bizarrement
- 13. Comment grouper cette requête pour qu'elle se comporte correctement?
- 14. Obtenir Emacs pour respecter mes options shell + par défaut
- 15. Comment puis-je paramétrer Firebug 1.2 pour qu'il se comporte comme les versions précédentes?
- 16. Pourquoi grouper par clé des objets anonymes ne se comporte pas comme prévu?
- 17. suggestions pour un concepteur html pour le paquet php eclipse
- 18. emacs, etags et utiliser emacs comme IDE
- 19. Convertir le code en syntaxe au format HTML dans Emacs
- 20. jQuery Form Validate(): Comment configurer les messages par défaut?
- 21. Comment obtenir air.navigateToURL d'air Adobe (urlReq) pour amener le navigateur par défaut de se concentrer
- 22. Implémenter modalpopups comme alerte par défaut dans le projet entier
- 23. Emacs + Mac OSX et changer la police par défaut
- 24. Roles.IsUserInRole se comporte-t-il comme prévu dans le scénario simple suivant?
- 25. Comment pouvez-vous configurer Rails pour utiliser blueprint-css au lieu de l'échafaudage par défaut css?
- 26. Emacs derrière le proxy HTTP
- 27. JSON_DECODE() de PHP se comporte bizarrement
- 28. Faire entrer la clé se comporte comme la touche de tabulation en Javascript
- 29. Comment faire pour qu'un formulaire se comporte comme la barre des tâches de Windows en utilisant C#
- 30. <select> largeur dans IE ne se comporte pas comme dans les autres navigateurs
Ack, J'étais inexact ci-dessus. Je ne voulais pas dire des caractères de tabulation réels, mais plutôt 4 espaces à la place d'un caractère de tabulation. Toutes mes excuses pour cela. –