Lorsque vous effectuez un M-x describe-mode dans un fichier .el, j'ai remarqué que le mode Emacs-Lisp exécute effectivement le code. Cependant, lisp-complete-symbol
est lié à M-TAB. Dans Windows, cette liaison de touches est prise par Windows pour basculer la fenêtre active. La plupart des IDE utilisent C-SPC, mais cela est également pris dans Emacs. Qu'est-ce qu'une bonne liaison de clé relativement courante pour l'achèvement du code?Liaisons de touches de complétion de code dans Emacs
Répondre
Si vous aimez l'achèvement de toutes sortes, je recommande M-/ et de liaison qui à hippie-expand.
(global-set-key (kbd "M-/") 'hippie-expand)
Il ne une variété de complétions, qui sont contrôlés par la hippie-expand-try-functions-list
variable. Dans les fichiers .el, vous pouvez définir cela pour faire le 'try-complete-lisp-symbol
en premier pour obtenir le comportement que vous demandez ci-dessus, ainsi que toutes les autres extensions fournies par hippie-expand.
Cela ferait pour vous:
(add-hook 'emacs-lisp-mode-hook 'move-lisp-completion-to-front)
(defun move-lisp-completion-to-front()
"Adjust hippie-expand-try-functions-list to have lisp completion at the front."
(make-local-variable 'hippie-expand-try-functions-list)
(setq hippie-expand-try-functions-list
(cons 'try-complete-lisp-symbol
(delq 'try-complete-lisp-symbol hippie-expand-try-functions-list)))
(setq hippie-expand-try-functions-list
(cons 'try-complete-lisp-symbol-partially
(delq 'try-complete-lisp-symbol-partially hippie-expand-try-functions-list))))
Hippie-expand sons intéressants. Pourquoi avez-vous choisi M-/au lieu de M-SPC (comme indiqué sur la page EmacsWiki)? Aussi comment faites-vous cette boîte fraîche autour du M- /? – User1
@ User1 'M- /' est la liaison par défaut de 'dabbrev' (pour lequel hippe-expand est un remplacement). De plus 'M-SPC' est par défaut lié' 'just-one-space'' que j'utilise tout le temps. Et enfin, la cool box est faite en utilisant l'étiquette KEY –
+1 Cela me semble logique. Vous êtes un génie d'Emacs! – User1
J'utilise:
(define-key function-key-map [(control tab)] [?\M-\t])
J'utilise M-.
et M-/
pour les deux modes d'achèvement - hippie-expand et les emacs standard d'un.
C-M-i; aucune personnalisation requise.
Comme Trey Jackson mentionné, hippie-expand
est le chemin à parcourir, mais avec le liant à M-/, je aime aussi avoir la TAB touche tout mon travail d'achèvement pour moi. J'ai donc cela du Emacs-Wiki dans mon emacs fichier:
;;function to implement a smarter TAB (EmacsWiki)
(defun smart-tab()
"This smart tab is minibuffer compliant: it acts as usual in
the minibuffer. Else, if mark is active, indents region. Else if
point is at the end of a symbol, expands it. Else indents the
current line."
(interactive)
(if (minibufferp)
(unless (minibuffer-complete)
(hippie-expand nil))
(if mark-active
(indent-region (region-beginning)
(region-end))
(if (looking-at "\\_>")
(hippie-expand nil)
(indent-for-tab-command)))))
(global-set-key (kbd "TAB") 'smart-tab)
Vous pourriez avoir hippie élargir les paramètres comme suit:
;;settings for hippie-expand
(setq hippie-expand-try-functions-list
'(try-complete-lisp-symbol
try-complete-lisp-symbol-partially
try-expand-dabbrev
try-expand-dabbrev-from-kill
try-expand-dabbrev-all-buffers
try-expand-line
try-complete-file-name-partially
try-complete-file-name))
Mettez dans votre .emacs
pour que Windows donne Emacs l'utilisation de M-TAB
:
(when (fboundp 'w32-register-hot-key) (w32-register-hot-key [M-tab]))
- 1. Quelles sont vos liaisons de touches globales favorites dans emacs?
- 2. Aide de complétion de raccourci clavier dans emacs?
- 3. Liaisons de touches personnalisées dans SWT
- 4. Emacs imenu intégration avec l'auto-complétion de code cedet
- 5. Conflits de liaisons de touches Eclipse
- 6. struts2, la complétion de code dans jsp
- 7. Word/complétion de code dans VIM
- 8. Complétion de code Java dans Textmate?
- 9. Liaisons de touches de Visual Studio pour Eclipse
- 10. bash, préfixe numérique pour les liaisons emacs?
- 11. Contrôle de l'embellissement du code dans emacs
- 12. Pliage de code pour LaTeX dans Emacs
- 13. comment mettre en œuvre la complétion de code dans qt
- 14. emacs sur les touches de contrôle du terminal gnome
- 15. Emacs: fonction qui écrit un code elisp qui ajoute une liaison de touches spécifiée par l'utilisateur
- 16. Liaisons de liens dans .NET
- 17. emacs & icicles: auto-complétion à partir d'un dictionnaire?
- 18. Emacs Lisp Align Définition de liaison de touches dans le fichier init
- 19. Liaisons de variables dans WPF
- 20. Est-il possible de faire en sorte que l'auto-complétion dans netbeans ne dépende pas d'une combinaison de touches?
- 21. Désactivation de l'onglet Mode Emacs-rails
- 22. Création de liaisons C#
- 23. L'idée de texte en surbrillance, la complétion de code, etc. dans la programmation
- 24. Résolution des problèmes de complétion/suggestion de code XML/HTML dans NetBeans 6.7?
- 25. Comment forcer l'auto-complétion de bash à une commande?
- 26. Comment définir une combinaison de touches qui est valable dans tous les modes Emacs
- 27. Affectation d'une table de touches à un mode dérivé dans emacs
- 28. Comment mettre en évidence la sélection dans la liaison de touches Emacs d'Eclipse?
- 29. Comment puis-je remapper les touches de préfixe 'c', 'd' etc. dans Emacs viper-mode
- 30. Touches de suivi dans UITableView
Bien sûr, vous pouvez taper 'ESC TAB'. –
+1 Vous avez raison. Pourquoi cela fonctionne-t-il? ESC = Meta? – User1
Oui, c'est pourquoi. – jrockway