Wenn Sie eine M-x beschreiben-Modus in einer .EL-Datei, habe ich festgestellt, dass der Emacs-Lisp-Modus tatsächlich Code-Vervollständigung tut. Jedoch ist lisp-complete-symbol
an M-TAB gebunden. In Windows wird diese Tastenbelegung von Windows übernommen, um das aktive Fenster zu wechseln. Die meisten IDEs verwenden C-SPC, aber das ist auch in Emacs übernommen. Was ist eine gute, ziemlich häufige Schlüsselbindung für die Code-Vervollständigung?Code-Vervollständigung Tastenbelegung in Emacs
Antwort
Wenn Sie Abschluss aller Art mögen, empfehle ich M-/ und Bindung, die zu hippie-expand.
(global-set-key (kbd "M-/") 'hippie-expand)
Es hat eine Vielzahl von Fertigstellungen, die durch die variable hippie-expand-try-functions-list
gesteuert werden. In den .el-Dateien können Sie festlegen, dass die 'try-complete-lisp-symbol
zuerst ausgeführt wird, um das Verhalten zu erhalten, nach dem Sie oben gefragt haben, zusammen mit allen anderen Erweiterungen, die hippie-expand bereitstellt.
Dies würde das für Sie tun:
(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-Erweiterung klingt interessant. Warum haben Sie M- statt M-SPC gewählt (wie auf der EmacsWiki-Seite gezeigt)? Auch wie machst du diese coole Box um das M- /? – User1
@ User1 'M- /' ist die Standardbindung für 'dabbrev' (für die hippe-expand ein Ersatz ist). Auch "M-SPC" ist standardmäßig an "just-one-space" gebunden, welches ich ständig benutze. Und schließlich wird die Kühlbox unter Verwendung des Tags KEY –
+1 gemacht. Das macht für mich total Sinn. Du bist ein Emacs Genie! – User1
Ich benutze:
(define-key function-key-map [(control tab)] [?\M-\t])
Ich benutze M-.
und M-/
für die 2 Abschluss Modi - Hippie-erweitern und die Standard-Emacs ein.
C-M-i; keine Anpassung erforderlich.
Als Trey Jackson erwähnt, hippie-expand
ist der Weg zu gehen, aber zusammen mit ihm zu M-/, habe ich auch für mich wie mit der TAB Schlüssel tun alle meine Abschlussarbeiten verbindlich. Also ich habe diese von der Emacs-Wiki in meiner .emacs-Datei:
;;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)
Sie haben Hippie-Einstellungen erweitern könnte wie folgt aussehen:
;;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))
Setzen Sie diese in Ihrem .emacs
auf Windows geben Emacs die Verwendung von M-TAB
zu machen :
(when (fboundp 'w32-register-hot-key) (w32-register-hot-key [M-tab]))
- 1. emacs smartscan Tastenbelegung ändern
- 2. Tastenbelegung im Evil-Modus Emacs
- 3. Zuweisen einer Tastenbelegung zu einem abgeleiteten Modus in Emacs
- 4. Wie schreibe ich eine Tastenbelegung in Emacs für einfache Wiederholung?
- 5. GNU-Bildschirm: Ändern der globalen Tastenbelegung
- 6. Radio Tastenbelegung als Suchfilter
- 7. angular-ui globale Tastenbelegung
- 8. Tkinter Tastenbelegung funktioniert nicht
- 9. Java Swing Tastenbelegung
- 10. Dynamischer Menübeitrag mit Tastenbelegung
- 11. Netbeans automatische Codevervollständigung von Variablen
- 12. Grundlegende Codevervollständigung in IntelliJ am Mac
- 13. Definieren der Tastenbelegung mit Argumenten
- 14. IPython 5.0 und Tastenbelegung in Konsole
- 15. PHP IDE mit vi Tastenbelegung
- 16. Wie aktiviere ich die Codevervollständigung für Fallanweisungen?
- 17. Browserbasierte IDE - Textarea mit Codevervollständigung verfügbar?
- 18. Delphi und Codevervollständigung während des Debuggens
- 19. Ändern der Tastenbelegung von VisualStudio 2015
- 20. Ace Editor - Ändern Sie CTRL + H Tastenbelegung
- 21. Dokumentation von Javascript in Netbeans für Autovervollständigung/Codevervollständigung/Intellisense
- 22. Codevervollständigung für nicht .as-Dokumente in Flex Builder
- 23. Problem mit Tastenbelegung für dynamische Kinder in React-Rails App
- 24. Alternativen zu flysspell-mode für emacs
- 25. Emacs Keybinding funktioniert nicht in benutzerdefinierten Hauptmodus
- 26. Aptana 3 - Codevervollständigung zeigt nicht alle Browser an
- 27. Wie kann ich alle Methoden von java.lang.Object vor Codevervollständigung verstecken?
- 28. iOS - Ständige Löschung abgeleiteter Daten, um die Codevervollständigung zu korrigieren
- 29. Gibt es einen MATLAB Editor/Plugin/Version mit besserer Codevervollständigung?
- 30. Codevervollständigung für private/protected Membervariablen bei Verwendung von magic __get()
Natürlich können Sie 'ESC TAB' eingeben. –
+1 Sie haben Recht. Warum funktioniert das? ESC = Meta? – User1
Ja, deshalb. – jrockway