Kopieren Sie den vollständigen Pfad des aktuellen Puffers in die Zwischenablage

9

Gibt es eine schnelle Möglichkeit, den vollständigen Pfad des aktuellen Puffers in die Zwischenablage des Systems oder in ein Register zu kopieren? :put=expand('%:p')Verwenden Sie dann andere Kopierbefehle (wie dd), aber die Eingabe ist etwas lang.

Thomson
quelle
Zu jedem Register: stackoverflow.com/questions/916875/…
Ciro Santilli 法轮功 病毒 审查 六四 事件 20

Antworten:

10

Sie können der Zwischenablage mit dem Sonderregister zuordnen +:

:let @+ = expand('%:p')

Wenn Sie dies vereinfachen möchten, können Sie einen Befehl erstellen, sodass Sie nur Folgendes eingeben müssen :CopyBuffer:

:command! CopyBuffer let @+ = expand('%:p')

und / oder ordnen Sie es einem Schlüssel zu:

:nnoremap <Leader>c :let @+=expand('%:p')<CR>

Der Beitrag " Wie kann ich Text von Vim in die Systemzwischenablage kopieren? " Enthält viel mehr Informationen zur Schnittstelle mit der Zwischenablage des Systems.

:put=expand('%:p') funktioniert, aber das Tippen ist etwas lang.

Dadurch wird der Pfad des Puffers nicht in die Zwischenablage kopiert, sondern in den Puffer eingefügt ...?

Martin Tournoij
quelle
Vielen Dank. Ich wollte in den Puffer legen und dann über einen anderen Befehl in die Zwischenablage oder in die Register kopieren.
Thomson
@Thomson Sie möchten also 2 Operationen in einem Zug ausführen? Legen Sie den Dateinamen in den Puffer und kopieren Sie ihn in die Zwischenablage des Betriebssystems?
Martin Tournoij
Ich möchte nur den Dateinamen des Puffers in die Zwischenablage kopieren. Die vorherigen 2 Vorgänge sind eine beschissene Problemumgehung.
Thomson