106 Stimmen

Zeile/Region in emacs nach oben und unten verschieben

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).

4voto

Manuel Punkte 41

Es gibt einen Eintrag im emacs wiki nur für diesen Zweck:

http://www.emacswiki.org/emacs/MoveLine

Für bewegliche Regionen:

http://www.emacswiki.org/emacs/MoveRegion

2voto

Roberto Aloi Punkte 29588

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).

1voto

Florian Thiel Punkte 497

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.

0voto

jpkotta Punkte 8802

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))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X