Was ist der einfachste Weg, um einen ausgewählten Bereich oder eine Zeile (wenn es keine Auswahl gibt) in emacs nach oben oder unten zu verschieben? Ich bin auf der Suche nach der gleichen Funktionalität wie in Eclipse (begrenzt auf M-up, M-down).
Antworten
Zu viele Anzeigen?Es gibt einen Eintrag im emacs wiki nur für diesen Zweck:
http://www.emacswiki.org/emacs/MoveLine
Für bewegliche Regionen:
Le site transpose-paragraph
Funktion könnte Ihnen helfen.
Vielleicht möchten Sie auch einen Blick auf die transponieren Abschnitt im Emacs-Handbuch. Im Wesentlichen:
C-t
Transpose two characters (transpose-chars).
M-t
Transpose two words (transpose-words).
C-M-t
Transpose two balanced expressions (transpose-sexps).
C-x C-t
Transpose two lines (transpose-lines).
Es ist nichts eingebaut. Sie können Transpositionszeilen (C-x C-t) verwenden, aber Sie können sie nicht wiederholt verwenden. Sehen Sie sich die Funktionen auf http://www.schuerig.de/michael/blog/index.php/2009/01/16/line-movement-for-emacs/ .
Es sollte einfach sein, dies auch auf Regionen zu übertragen.
Ich verwende dazu das Smart-Shift-Paket (in Melpa). Standardmäßig bindet es C-C <arrow>
um eine Linie oder einen Bereich zu verschieben. Es bewegt sich horizontal um einen Major-Mode-spezifischen Betrag (z.B. c-basic-offset oder python-indent-offset). Funktioniert auch bei Regionen.
;; binds C-C <arrows>
(when (require 'smart-shift nil 'noerror)
(global-smart-shift-mode 1))
- See previous answers
- Weitere Antworten anzeigen