Frage Wie wähle ich den gesamten Text in Vi / Vim aus?


VI-Tool zum Bearbeiten von Konfigurationsdateien verwenden.

Wie kann ich den gesamten Text in einer Datei (etwa 1000 Zeilen) auswählen, kopieren und dann in Google Text & Tabellen einfügen?


148
2017-12-30 17:05


Ursprung




Antworten:


Der einfachste und schnellste Weg ist: :  %  y  + und dann zu Google Text & Tabellen (oder wo auch immer) gehen und einfügen. Erläuterung:

  • %  Verweisen auf den nächsten Befehl, um alle Zeilen zu bearbeiten
  • yum diese Zeilen zu reißen
  • +in die Systemzwischenablage kopieren

Ein anderer Weg ist G  G  "  +  y  G aber Sie werden wahrscheinlich zugeben, dass das oben genannte schneller und einfacher ist.


128
2018-03-26 21:30



@Tuxmentat kannst du bitte erklären, was jeder Schlüssel macht :%y+ - Jas
Diese Antwort wäre besser, wenn es erklärt, was jeder Schlüssel für beide Sequenzen macht. - AsksAnyway
Meine beste Schätzung: Das ':' bedeutet, dass wir einen "Ex-Modus" -Befehl verwenden (denke ich). Wie auch immer, es ist ein Befehl. '%' ist ein besonderes Befehlszeilenbereichsspezifizierer was die ganze Datei spezifiziert. 'y' zerrt alles ab und '+' gibt das an Zwischenablage registrieren. : help <command> hat mir geholfen, das herauszufinden. - Hawkeye Parker
Ich muss etwas falsch machen. Ich tippe :%y+und ich bekomme E488: Trailing characters - johny why
Ich bekomme "E850: Ungültiger Registername". Zweite Methode funktionierte gut zum Kopieren, aber geht nicht auf Ubuntu 16.04 in die Systemzwischenablage (für mich zumindest - ich habe eine .vimrc, die Dinge beeinflussen könnte). - EntangledLoops


Viele gegebene Antworten reißen auch die Auswahl, nach der ich nicht gesucht habe.

Ich benutze ggVG zu diesem Zweck (muss im normalen Modus ausgeführt werden). Dieser Befehl nur Wählt den gesamten Text im Dokument aus.

Ich habe sogar neu zugeordnet Strg + A zu diesem Zweck, da ich nicht wirklich eine ganze Zahl mit der Abkürzung erhöhen muss (Standard Strg + A Karte).

Fügen Sie das einfach in Ihr ein .vimrc:

map <C-a> <esc>ggVG<CR>

Es hat <esc> Erstens, um sicherzustellen, dass der Benutzer im normalen Modus ist.


67
2018-05-29 15:09



Genau das, was ich gesucht habe, und es ist schön zu sehen, dass Strg + A in Vim standardmäßig nicht belegt ist. Hoffe, es gibt keine Nebenwirkungen. - Nikos Alexandris
Ich persönlich benutze ggVG, aber gg0vG$ ist möglicherweise angemessener, da es die "normale" Strg + A-Operation näher repliziert. - Sheharyar


Sie können verwenden cat file und dann wählen Sie Ausgabe und kopieren und einfügen, wenn Sie es in Ihren Browser einfügen müssen.

Für vi können Sie so den gesamten Text auswählen und in eine neue Datei schreiben:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

Theoretisch sollte das sowohl auf Linux als auch auf Windows funktionieren - ich habe es auf einem Mac versucht, aber es funktioniert nicht.


35
2017-12-30 17:21



Einfügen in den Webbrowser cat file ist der Weg zu gehen. Das shift v Methode kopiert nur in den internen Puffer von Vi. - Aleksandr Levchuk
nicht, wenn Sie die System-Zwischenablage verwenden, die die * Registrierung verwendet - aber das funktioniert nur auf X und ich hörte auf Windows - also wenn Sie ssh müssen Sie die -X - um zu überprüfen, ob vim Unterstützung dafür in vim hat -: setzen Sie Zwischenablage + = unbenannt
Gibt es eine Alternative, dies zu tun, ohne eine neue Datei zu erstellen.Wenn wir live auf dem Server bearbeiten, müssen wir den Sicherungscode auf dem lokalen Rechner behalten, damit wir ihn wiederherstellen können. - Nagama Inamdar
+1 für Katze und wählen Sie in Kitt. Natürlich funktioniert nicht für große Dateien und ist nicht die benutzerfreundlichste Methode. Aber das Kopieren kleiner Skriptdateien, die außerhalb des Bildschirmfensters liegen, ist gut genug. - Arnis Juraga


Verwenden Sie ggVG. Geben Sie "gg" ein, um zu Beginn des Tests zu gehen Dann gib VG ein.


13
2017-12-29 12:47





gg"+yG

oder

gg"*yG

abhängig davon, ob + oder * die System-Zwischenablage ist. (Bei vielen Unixen ist + der Mausauswahlpuffer für den mittleren Mausklick und * ist die Systemzwischenablage).


6
2017-12-30 19:19



Ich denke, es ist umgekehrt: "* ist Auswahl und" + ist Zwischenablage. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel
Du hast recht. Ich wusste das auch, tippte aber das Falsche ein. - frabjous


Ich benutze Vim 7.4 in CentOS-7-Umgebung. Was mich bei der Auswahl aller Texte geholfen hat ist

:%y

Dann einfach p in der nächsten Datei, wo ich eine vollständige Kopie möchte.

Oder 

Sie können den Befehl cat verwenden.

cat copyfile > pastefile

Dieses Git Repo hat auch noch andere nützliche Befehle.


4
2017-07-17 04:07





Verwenden Sie für einen Mac pbcopy (Pasteboard-Kopie):

cat file.txt | pbcopy

Der Inhalt von file.txt befindet sich jetzt in der Zwischenablage zum Einfügen in eine andere Anwendung (z. B. Browser).

Sie können den Inhalt der Zwischenablage auch mit pbpaste in eine Datei einfügen:

pbpaste > file.txt

Obwohl dies nicht spezifisch für vi gilt, erreicht es dasselbe Ziel auf einem Mac.


3
2018-01-08 19:05





Wenn Sie einen Linux-Desktop verwenden, können Sie ihn mit xclip oder xsel in die Zwischenablage laden. Für etwas dieser Größe möchten Sie vielleicht nur die Upload-Funktion in Google Docs verwenden.


1
2017-12-30 17:28





Ein anderer Weg wäre:

Du drückst v Taste auf der Tastatur drücken und VIM auf VISUAL drehen

Wählen Sie dann den gesamten Text aus, indem Sie nach unten scrollen

^+ EINFÜGEN Kopieren

VERSCHIEBUNG +EINFÜGEN um den Text überall in Google Text & Tabellen einzufügen.


1
2017-07-12 14:20





Ohne vi zu benutzen, Mit der API und cURL können Sie Text in Google Docs hochladen.


0
2017-12-30 17:34



das ist das Gegenteil dessen, was OP will -.- - Rápli András