Beginnen Sie am Anfang von Zeile 4 ( ESC 4 ESC g g
oder M-4 M-g M-g
um dorthin zu gelangen) C-3 C-k C-2 C-n C-y
(oder ESC 3 C-k down down C-y
wenn Sie Modifikatoren nicht gedrückt halten möchten).
Wenn Sie nicht in Ihrem Kopf rechnen möchten, sondern stattdessen visuell Linien auswählen möchten, dann
- Bewegen Sie sich zum Anfang der Zone, um sich zu bewegen
C-SPC
die Marke setzen
- Gehen Sie zum Anfang der ersten Zeile, um sie beizubehalten
C-w
schneiden
- Gehen Sie nach unten zu der Stelle, an der Sie den ausgeschnittenen Text einfügen möchten
C-y
einfügen
Ich glaube nicht, dass es eine Möglichkeit gibt, dies zu verkürzen, es sei denn, Sie sind bereit, etwas Flexibilität zu verlieren (zum Beispiel, wenn Sie häufig einen Block mit genau drei Zeilen verschieben möchten). Sie müssen drei Positionen angeben: den Anfang des zu verschiebenden Blocks, das Ende des zu verschiebenden Blocks und das Ziel. In den obigen Sequenzen gibt es an jeder Stelle einen einzigen Tastendruck, der so niedrig wie möglich ist.
Gilles 'SO - hör auf böse zu sein'
quelle
n
fürmove-text-down
und angebenmove-text-up
. Dies verkürzt Schritt (2) aufM-3
H-S-n
.Sie können expand-region verwenden , um den Block zu markieren, wenn es sich um eine semantische Einheit wie eine Funktion handelt (auf der Website des Pakets wird dies ausführlicher erläutert). Bewegen Sie es dann, wie in der anderen Antwort erläutert. Je nachdem, wo Sie sich im Block befinden, kann ein einziger Tastendruck das Ganze markieren.
quelle
Wenn Sie verwenden
evil-mode
, können Sie alternativ einen verwendenex
Befehl ein ::4,6m9
(diem
Linien oves4
auf6
der Linie9
).quelle
evil-mode
ist nicht gerade dunkel - es hat fast 18.000 Downloads auf Melpa. Eine andere Antwort verwendetexpand-region
, die auch ein externes Paket ist. Für eine Q & A-Site ist es wahrscheinlich gut, mehrere Möglichkeiten einzuschließen, um dasselbe mit verschiedenen Paketen zu erreichen (obwohl es möglicherweise sinnvoll ist, einige Richtlinien zu erstellen).