In Vim, was ist die beste Art und Weise zu wählen, löschen oder kommentieren Sie große Teile von Multi-Screen-Text?

StackOverflow https://stackoverflow.com/questions/58584

  •  09-06-2019
  •  | 
  •  

Frage

eine große Menge an Text auswählen, die in einem IDE wie Eclipse über viele Bildschirme erstreckt, ist ziemlich einfach, da Sie die Maus verwenden können, aber was ist der beste Weg, um z.B. auswählen und Multi-Screen Textblocks löschen oder schreiben z.B. drei große Methoden in einer anderen Datei aus und löschen Sie sie dann für Zwecke in Vim zu testen, wenn es über Kitt / ssh mit dem Sie die Maus nicht verwenden können?

kann ich leicht zerren-to-the-end-of-line oder yank-to-the-End-of-Code-Block, aber wenn der Text über viele Bildschirme erstreckt, oder hat viele leeren Zeilen in ihm, ich fühle mich wie meine Hände in Vim gebunden sind. Jede Lösung?

Und eine weitere Frage: Gibt es eine Möglichkeit, irgendwie 40 Zeilen auszuwählen, und dann kommentieren sie alle (mit „#“ oder „//“), wie in den meisten IDEs üblich ist

?
War es hilfreich?

Lösung

Nun, zunächst können Sie vim eingestellt mit der Maus zu arbeiten, die Sie Text auszuwählen erlauben würde, wie würden Sie in Eclipse.

Sie können auch die Visuelle Auswahl verwenden - v , standardmäßig aktiviert. Einmal ausgewählt, können Sie yank, cut, etc.

Was den Block zu kommentieren heraus, ich habe es in der Regel wählen Sie mit VISUAL, dann tun

:'<,'>s/^/# /

Ersetzen der Anfang jeder Zeile mit einem #. (Der '< und '> Marker ist der Anfang und und der visuellen Auswahl.

Andere Tipps

Markierungen verwenden.

Zum Anfang des Textblocks Sie löschen möchten, und geben Sie

ma

irgendwo auf dieser Linie. Keine Notwendigkeit für den Darm.

Gehen Sie dann zum Ende des Blocks und geben Sie die folgenden Schritte aus:

:'a,.d

Die Eingabe ma hat für das Zeichen unter dem Cursor gesetzt Marker a.

Der Befehl, den Sie nach dem Umzug an den unteren Rand des Textblocks sagt „von der Linie den Charakter von Marker a beschrieben enthält, eingegeben haben ( ' a ) auf den aktuellen Linie (. ) delete. "

So etwas kann auch für andere Zwecke eingesetzt werden.

:'a,.ya b     - yank from 'a to current line and put in buffer 'b'
:'a,.ya B     - yank from 'a to current line and append to buffer 'b'
:'a,.s/^/#/   - from 'a to current line, substitute '#' for line begin
(i.e. comment out in Perl)
:'s,.s#^#//#  - from 'a to current line, substitute '//' for line begin
(i.e. comment out in C++)

N.B. 'a (Apostroph-a) bezieht sich auf die Linie, die die Zeichen durch a markiert enthält. `` A(backtick-a) refers to the character marked bya`.

Kommentare die Anfangszeichen der Linien einzufügen wählen Sie mit STRG - v (Block-visuelle, nicht 'v' Charakter weise visueller oder 'V' linewise- visuell). Dann geht zur Einfügen-Modus ‚I‘, geben Sie Ihr Kommentar-Zeichen (s) in der ersten Zeile (zum Beispiel ‚#‘) und schließlich in dem normalen Modus zu entkommen ‚Esc‘ verwenden. Voila!

So entfernen Sie die Kommentare und blockartig visueller die Kommentare zu wählen und sie einfach löschen mit ‚ x ‘.

Mit dem visuellen Blockbefehl v (oder V für ganze Linien und C - V für rechteckige Blöcke). Während in der visuellen Block-Modus, können Sie alle Bewegungsbefehle einschließlich der Suche verwenden; Ich benutze} häufig auf die nächste leere Zeile zu überspringen. Sobald der Block markiert ist, können Sie: w in einer Datei, löschen, yank, oder was auch immer. Wenn Sie einen Befehl ausführen und die visuelle Block weggeht, wählen Sie erneut den gleichen Block mit gv. Siehe:. Helfen visuellen Wechsel für mehr

Ich denke, es gibt sprachspezifische Skripte, die mit vim kommen, die Dinge wie kommentieren Sie Code-Blöcke in einer Weise tun, die Sprache Ihrer Wahl passt.

Presse V (Groß V) und drücken Sie dann 40j zu 40 Zeilen wählen und dann d drücken, sie zu löschen. Oder wie @zigdon antwortete, man kann sich auf Kommentar.

Der visuelle Modus ist die Lösung für Ihr Hauptproblem. In Bezug auf Auskommentierung Codeabschnitte, gibt es viele Plugins für den auf vim.org, ich tComment.vim im Moment verwenden.

Es gibt auch eine nette Art und Weise einen Block ohne ein Plugin Kommentar aus. Können sagen, Sie in Python und # arbeiten, ist das Kommentarzeichen. Machen Sie einen visuellen Block Auswahl der Spalte Sie die Raute wollen in sein, und Typ I # ESCAPE. So geben Sie einen visuellen Blockmodus drücken C-q auf Windows oder C-v unter Linux.

Oder Sie können dieses Skript einen Versuch geben wollen ...

http://www.vim.org/scripts/script.php ? script_id = 23

Mein Block Kommentar Technik:

Strg + V blockartig visuellen Modus zu starten.

Machen Sie Ihre Auswahl.

Mit der Auswahl noch aktiv, Umschalttaste + I . Diese legen Sie in der Spalte Insert-Modus.

Geben Sie die Zeichen '#' Kommentar oder '//' oder was auch immer.

ESC.

Wenn Sie eine Aktion auf eine Reihe von Linien durchführen möchten, und Sie wissen, die Zeilennummern, können Sie den Bereich auf der Kommandozeile setzen. Zum Beispiel zu den Zeilen 20 bis 200 löschen können Sie tun:

:20,200d

Um die Zeilen 20 bis 200 zu bewegen, wo Linie 300 Sie verwenden können:

:20,200m300

Und so weiter.

Für Zeilen zu kommentieren, wäre ich eines dieser Plugins vorschlagen:

EnhancedCommentify

NERD Commenter

Ich finde mich NERD mehr in diesen Tagen, aber ich habe EnhancedCommentify seit Jahren verwendet.

Mit Umschalttaste + V im visuellen Modus gehen, dann können Sie Linien auswählen und löschen / ändern.

Meine übliche Methode für 40 Zeilen zu kommentieren würde, die Cursor auf der ersten Zeile zu setzen und den Befehl eingeben:

., + 40s / ^ / # /

(Für hier durch 40 Zeilen vorwärts, ersetzen Start-of-line mit Hash, Raum) Scheint ein bisschen länger als einige andere Methoden vorgeschlagen, aber Ich mag die Dinge mit der Tastatur der Maus statt tun.

Erste Antwort ist noch nicht ganz richtig? Auszukommen Auswahl Presse ‚:‘ und geben Sie command : '<,> S / ^ / # / g

( '<'> - wird es automatisch sein)

Sie sollten von dem normalen Modus Befehl bewusst sein [count] STRG - D . Es ändert sich optional die ‚blättern‘ Option von 10 bis [count] und dann nach unten scrollt, dass viele Linien. Durch Drücken von STRG -. D wird wieder nach unten scrollen, dass gleiche Linien wieder

So versuchen Eingabe

V     "visual line selection mode
30    "optionally set scroll value to 30
CTRL-D  "jump down a screen, repeated as necessary
y      " yank your selection

CTRL-U funktioniert auf die gleiche Art und Weise, sondern blättert nach oben.

v tritt visuelle Block-Modus, in dem Sie als ob mit Verschiebung in den meisten gängigen Editoren auswählen können, später Sie alles tun können Sie in der Regel mit normalen Befehlen (Substitution tun können: '<,> s / ^ / # / vorangestellt wird mit einem Kommentar, zum Beispiel), wo '<,> bedeutet den ausgewählten optischen Block statt dem gesamten Text.

Marken würden die einfachste mb , wo u beginnen soll und mich , wo u enden soll, sobald dies geschehen ist man so ziemlich alles tun, können Sie wollen

:'b,'ed

löscht von der Markierung b Marker e

Kommentierung aus 40 Zeilen Sie können im visuellen Modus tun

V40j:s/^/#/

wird auf Kommentar 40 Zeilen, von wo u die Sequenz starten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top