1. ホーム

[解決済み】Vimでカレントバッファのファイル名/パスをヤンクする。

2022-04-14 21:42:15

質問

カレントバッファが編集用に開かれているファイルだとすると :e は表示されません。 E32: No file name .

の1つまたは全部をゆずりたい。

  • ファイル名は、ステータスラインに表示されているものと全く同じです。 ~\myfile.txt
  • ファイルへのフルパス、例. c:\foo\bar\myfile.txt
  • ファイル名のみ、例 myfile.txt

解決方法は?

TL;DR

:let @" = expand("%") >

これは、ファイル名を ネームドレジスター を使用することができます。 p もちろん、これをキーにマッピングしておけば、素早く利用することができます。

:nmap cp :let @" = expand("%")<cr>

フルパスにも使えます。

:let @" = expand("%:p")

説明

Vim は 無名レジスタ は、削除またはコピー(ヤンク)されたテキストを保存するために、同様に、ペーストするときに、このレジスタからテキストを読み取ります。

使用方法 let を使って、手動でテキストをレジスタに格納することができます。 :let @" = "text" が、式の結果を格納することもできる。

上記の例では、関数 expand はワイルドカードやキーワードを展開します。この例では expand('%') を使用して、現在のファイル名を展開します。これを次のように変更することができます。 expand('%:p') は完全なファイル名です。

参照 :help let :help expand :help registers 詳細はこちら