So beschaffen Sie einen Teil einer Datei

8

Ich kann eine Datei beschaffen, zB meine vimrcmit :so %oder :so <filename>. Aber was mache ich, wenn ich nur einen Teil einer Datei beschaffen muss? Ich möchte eine Möglichkeit haben, einen Teil der Datei visuell auszuwählen :h vund sie dann als Quelle zu verwenden. Ein bisschen wie EmacsM-x eval-region

klaus
quelle
2
Funktioniert nicht in allen Fällen, aber:@*
Messe

Antworten:

10

Nachdem Sie Ihre visuelle Auswahl getroffen haben, führen Sie Folgendes aus:

y:@"<CR>

ykopiert die Auswahl in das unbenannte Register ( "), da wir ein Register nicht explizit benannt haben. Dann :@"führt die Inhalte dieses Registers als Ex - Befehle.

Siehe help :@und /programming/20262519/vim-how-to-source-a-part-of-the-buffer

dedowsdi
quelle
Sie sagen also, ich sollte es einfach kopieren und in mein Befehlszeilenfenster einfügen? Das ist ... einfacher als ich dachte.
Klaus
1
Sie fügen nicht in die Befehlszeile ein, was so etwas wie das Lesen und Speichern der Daten in einem Eingabepuffer bedeuten würde. Sie fordern vim lediglich auf, die Daten aus einer vorhandenen Speicherzuordnung (dem Registerspeicher) zu verarbeiten, was viel weniger Aufwand bedeutet.
B-Schicht
1

Eine alternative Implementierung, die nicht beim ersten Fehler in einem Skript stoppt:

command! -range=% Exec call execute(getline(<line1>, <line2>), '')

Geben Sie nun im visuellen Modus :'<,'>Execdie ausgewählten Zeilen ein ( '<,'>wird wie gewohnt automatisch hinzugefügt). Auch :Execim normalen Modus führt der gesamte Puffer, so wie :source %, mit Ausnahme der Puffer muss nicht zuerst gespeichert werden.

Bei Bedarf können die Zuordnungen einfach hinzugefügt werden.

Matt
quelle