jEdit unterstützt die Blockbearbeitung, aber Emacs und Vim scheinen einige schwerwiegende Usability-Probleme zum selben Thema zu haben. Wenn jemand hier die Unbekannten ausfüllen könnte, wäre es viel erträglicher, einen der beiden Editoren zu verwenden:
- Tatsächliche rechteckige Auswahl : Wenn die Auswahl auf dem Bildschirm ein Rechteck ist, keine lineare Auswahl, die dann zur Berechnung einer Region verwendet wird, auf die Emacs beschränkt zu sein scheint.
- jEdit: Halten Sie gedrückt Ctrlund wählen Sie.
- Vim: Klicken Ctrl-vund auswählen.
- Emacs: Unbekannt ; Es sieht so aus, als wäre ein Plugin mit mehr als 400 Zeilen erforderlich.
- Rechteckige Live-Bearbeitung : Sehen Sie, wie das Ergebnis in allen Zeilen aussieht , wenn Sie nach einer Blockauswahl bearbeiten.
- jEdit: Fangen Sie einfach an zu tippen, und Sie werden das Endergebnis sehen, wenn Sie gehen.
- Vim: Klicken Shift-iund tippen. Das Endergebnis wird nur in der ersten Zeile angezeigt, bis Sie drücken Esc, um den Einfügemodus zu verlassen. Unbekannt, ob es eine Möglichkeit gibt, das Ergebnis sofort in allen Zeilen anzuzeigen.
- Emacs: Unbekannt ; Es sieht so aus, als wäre der einzige Weg C-x r t, den Text so einzustellen, dass er nach dem Drücken ausgefüllt wird Ret.
- Start- und Endauswahl an Positionen außerhalb des Textes : Ich möchte beispielsweise die N ersten Zeichen jeder Zeile entfernen, aber die erste und letzte Zeile enthalten weniger als N Zeichen.
- jEdit: Kein Problem, die Blockauswahl kann außerhalb des Textes beginnen.
- Vim :
:set virtualedit=block
. - Emacs: Könnte mit
artist-mode
und / oder möglich seinpicture-mode
.
- Block inline einfügen: Fügen Sie den kopierten Block so ein, als würden Sie mehrere Zeilen einfügen. Schieben Sie den bereits vorhandenen Text nach unten und nicht nach rechts.
- jEdit: Die Standardeinstellung. Um einen Block als Block einzufügen, müssen Sie zuerst eine andere Blockauswahl treffen.
- Vim : OEscVp.
- Emacs: Unbekannt .
Allgemeine Emacs-Blockauswahlfunktionen finden Sie im cua-mode
Plugin .
Antworten:
Ich kann für Vim antworten, aber nicht für Emacs.
Start und Ende der Auswahl an Positionen außerhalb des Textes:
:set virtualedit=block
aktiviert das gewünschte Verhalten. Sie können den ersten Doppelpunkt löschen und zu Ihrer .vimrc hinzufügen, wenn Sie möchten. Weitere Informationen erhalten Sie:help 'virtualedit'
in Vim.Block inline einfügen:
Wenn Sie nur pim Befehlsmodus drücken, fügt Vim den Block ein und schiebt die Zeichen in jeder Zeile nach rechts. Wenn Sie einen anderen Block auswählen und drücken p, ersetzt Vim diesen Block durch den eingefügten Block.
Sie können einen Block "zeilenweise" mit der Tastenfolge im Befehlsmodus einfügen OEscVp. Dies fügt eine Zeile über der aktuellen Zeile (
O Esc
) ein, wählt sie zeilenweise aus (V
) und fügt sie dann ein (p
). Sie können dies (zum Beispiel) ypmit einer Zuordnung wie:nmap yp O<Esc>Vp
- Typ, die wörtlich; Verwenden Sie fünf Tastenanschläge,<Esc>
anstatt die Escape-Taste zu drücken.quelle
virtualedit
; muss das ausprobieren. Informationen zum Inline-Einfügen finden Sie in der aktualisierten Frage, um eine Beschreibung der erwarteten Funktionalität zu erhalten.Emacs: Starten Sie die Auswahl in der ersten Zeile und fügen Sie einfach die fehlende Anzahl von Zeichen (z. B. Leerzeichen) in die letzte Zeile ein und verwenden Sie dann das Kill-Rechteck
Alternativ können Sie sehen
artist-mode
oder sehen,picture-mode
wie Sie sich unabhängig von der Linienlänge im Fenster frei bewegen können.Emacs: Speichern Sie den Block zuerst, indem Sie ihn entweder töten oder in einem Register speichern. Gehen Sie dann zur Einfügemarke, verwenden Sie das Löschrechteck und fügen Sie dann das gespeicherte Rechteck ein.
Warum ist es bei Emacs ein Problem? Ein Plugin kann kompiliert werden und die Emacs-Philosophie lautet, dass Sie nicht alles in den Kern stellen, sondern Plugins verwenden, um den Editor zu erweitern.
quelle
Es gibt den 'cua-Modus', der mit Emacsen 22.1 und höher geliefert wird, oder folgen Sie dem Link zum Herunterladen für frühere Versionen von Emacs. Es gibt ein kurzes Video , in dem die Funktionalität vorgestellt wird.
Lesen Sie für allgemeine Rechteckbefehle das Handbuch , das eine einfache Einführung bietet.
quelle
cua-mode
sieht gut aus! +1 .. Ich konnte das von Ihnen erwähnte Video nicht finden, siehe Toms Link in den Kommentaren direkt unter der Frage, für einen Link zu einem (anderen?) Info-Video ...In vim ist der typische Weg, die ersten n Zeichen zu löschen, so etwas zu tun
:%s/.\{0,6\}//
.%
wird das ganze Dokument machen; Sie können dies durch eine Auswahl oder durch die tatsächlichen Zeilen ersetzen, die Sie interessieren. Ders
Befehl ist für "Ersatz". Es ersetzt einen regulären Ausdruck durch das, was Sie ihm geben, und es stimmt nur einmal in jeder Zeile überein, es sei denn, Sie fügen eine bestimmte Option hinzu. Das/
ist ein Trennzeichen - dies kann ein beliebiges Zeichen sein, wird jedoch/
normalerweise verwendet, es sei denn, es ist vorteilhaft, etwas anderes zu verwenden (damit Sie/
im Rest des Befehls nicht entkommen müssen ). Das Argument nach dem ersten Trennzeichen ist ein regulärer Ausdruck, mit dem übereinstimmende Zeichenfolgen in Ihrer Auswahl gefunden werden. Das Argument nach dem zweiten Trennzeichen ist, durch was die Übereinstimmung ersetzt wird.Dieser Befehl besagt also, dass 0 bis 6 Instanzen eines Zeichens gefunden und durch nichts ersetzt werden sollen.
quelle