2010-09-09 12 views
9

Ich versuche, 300 Zeilen von einer Datei in eine andere zu kopieren, in Quelldatei ich Typ "300yy", es sagt, es hat 300 Zeilen gezogen.vim limited line Speicher

gehen Sie zur Zieldatei und drücken Sie p, es klebt, aber nur die ersten 50 Zeilen.

irgendeine idee, warum es nicht die 300 kleben?

+1

Spricht 'echo @" alle Ihre Zeilen? Wie gehst du zur Zieldatei (in dieser vim-Instanz oder in anderen)? Wenn Sie diese 300 Zeilen über vim-Sitzungen speichern möchten, müssen Sie Ihre viminfo-Variable wie von @eugene y vorgeschlagen ändern (obwohl Sie nur ', <100' und ', s10' Teile der Zeichenfolge entfernen sollten) In meiner vim Bewegung 2800 Zeilen in einem vim Sitzung funktioniert ganz gut. – ZyX

+0

Und bitte fügen Sie Ihre Versionsinformationen. – ZyX

+1

im on vim 7.2, Entfernen der, <100 und, S10 hat den Trick. –

Antwort

14

Wie in Vim Tips Wiki vorgeschlagen, können Sie die viminfo Einstellung anpassen:

:set viminfo? 
:set viminfo='100,<1000,s100,h 

Was die einzelnen Bits bedeuten:

  • '100 Marks wird für die letzten 100 bearbeiteten Dateien in Erinnerung bleiben.
  • <1000 Begrenzt die Anzahl der für jedes Register gespeicherten Zeilen auf 1000 Zeilen; Wenn ein Register mehr als 1000 Zeilen enthält, werden nur die ersten 1000 Zeilen gespeichert.
  • s100 Register mit mehr als 100 KB Text werden übersprungen.
  • h Deaktiviert die Suchmarkierung, wenn Vim gestartet wird.
+1

Wissen Sie, was jede dieser 100, <100, s10, h Zeilen bedeutet? –

+3

@Hermann: Führen Sie einfach den '' help 'viminfo''-Befehl in vim –

+0

Dies ist eine sehr viel bessere Dokumentation der Lösung für diese Probleme. –

4

Bleiben Sie in der gleichen Sitzung (öffnen Sie die neue Datei tun: e-Pfad), und Sie haben keine Einschränkung.

8

Als Eugene und Zyx die Ihre viminfo Einstellung wäre die einfachste Lösung

:set viminfo-=<50,s10

Eine alternative Lösung von Datei-name.txt verwenden würde :read und/oder :write

in lesen sein werden in den aktuellen Puffer

:read file-name.txt

Um den Bereich der Linie 1 anhängen 300 aus dem aktuellen Puffer Zeile in Datei-to-append.txt

:1,300write >> file-to-append.txt

Sie auch Zeichen anstelle von Zeilennummern wie die Sichtmarkierungen verwenden können

:'<,'>write >> file-to-append.txt

Natürlich kann das Anhängen möglicherweise nicht Ihren Anwendungsfall erfüllen, in dem die Änderungen von viminfo wahrscheinlich am besten funktionieren.

:help :write 
:help :read 
:help 'viminfo' 
:help :set-= 
+0

vor dem Wechsel von vi zu vim setze ich die folgende Abkürzung (erinnere mich nicht, warum ich ab anstelle der Karte verwendet habe): 'cab wbf w! ~/.lastbuffer' und 'rbf r ~/.lastbuffer', die jeweils die gleiche Datei schreiben und lesen. Dann tun Sie einfach ': wbf' und': rbf' – mb14

3

versuchen vim -p file1 file2. Es öffnet jede Datei in eine neue Registerkarte (was super ist), und es löst das Kopieren/Einfügen Limit

+0

Ich habe das Problem bereits gelöst, ohne ein neues Verhalten zu verlangen, aber danke. –

+0

Danke! Das war sehr hilfreich. –