回答:
を押すことができます{count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
を押し1てからCtrl+ Gを押すと、現在のファイルのフルパスが表示されます。{count}
が1より大きい場合、バッファ名も表示されます。
(Ctrl+ のみを押すとG、コメントでJasperが指摘したように、Vimの現在の作業ディレクトリからの相対パスが表示されます。)
で次のコマンドを使用し.vimrc
て、ステータスラインにフルパスを追加できるため、常に表示されます。
set statusline+=%F
1C-g
!
Register %
には、現在のファイルの名前が含まれています。
次のコマンドを入力して、表示される情報を表示できます。
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
指名手配されているすべては、現在のファイルの名前を表示するタイプする場合:f
/ :ls
またはプレスCtrl- g(フルパスプレス用1、その後Ctrl- g)。
挿入モードでは、タイプはCtrl- rそして、%現在のファイルの名前を挿入します。
次のコマンドは、現在のファイルと代替ファイルの絶対パスで構成される行をバッファーに挿入します。
:put =expand('%:p')
:put =expand('#:p')
ソース:vim wikiaで現在のファイルの名前を取得
関連する:
=expand...
式を使用することもできることに注意してくださいCtrl-R
。
を使用:!ls %:p
して、現在のファイルへのフルパスを取得できます。
exコンテキストに応じて、%
ファイルの内容またはファイル名のいずれかを意味します。シェルアウトするとき、それは現在のディレクトリに相対的なファイルパスを表します。コマンド ' %:p
'は、フルパスファイル名修飾子をに追加し%
ます。
他にもいくつかの興味深いファイル名修飾子があります:
:~
:ホームディレクトリに相対的なファイルパスを取得します(これは何らかの理由で機能しませんでした):.
:現在のディレクトリに相対的なファイルパスを取得します(%
デフォルト):r
:ファイル名のルート。拡張子なしのファイルの名前。:e
:ファイルの拡張子。:h
:分割し/
て左半分を返します(つまり、パス内のファイルを編集して/tmp/test.txt
実行%:p:h
すると、/tmp
:t
:分割し/
て右半分を返します(つまり、パスのファイルを編集して/tmp/test.txt
実行%:p:t
すると、text.txt
現在の作業ディレクトリはで確認できます:pwd
。もちろん、これはディレクトリのみであり、ファイル名ではありません。作業ディレクトリとファイル名を取得するには%
、現在のファイルに関する情報を含む特殊レジスターを使用できます。
を使用する場合:echo @%
、現在のファイルのディレクトリとファイル名を取得します。
を使用する:echo expand('%:p')
と、現在のファイルの完全なパスとファイル名が取得されます。これはCharlesLの答えに非常に似ています。
あなたがVimのヘルプを使用している場合ので、私は、しかし、これを覚えて:h expand
、それはそれに言及%
し、%:p
およびその親族。
より良い回答がありますが、(何らかの理由で)シェルを使用してファイルの完全なパスを取得したい場合(これは、シェルでファイルに対して他の操作を実行する場合に便利です)、 Unixライクシステムでは、次を実行できます。
:!realpath %
または:
:'<,'>!realpath %
現在の選択範囲を越えてドキュメントにパスを挿入します。
登録には%
常にファイルの名前が含まれます。実際の例としては、設定ファイルを編集しているが、書き込み権限がない(そしてVimをrootとして実行したくない)場合、ファイルを編集してから実行できます:
:w ! sudo tee %
(そこofftopicほんの少し、それがで行うことができます他に何の良い例だファイルを保存する%
レジスタ)。
realpath
POSIXではないため、より簡単に行うことができます!echo "$PWD/%"
ステータス行を表示可能に設定し、パスに設定する必要があります。私は〜/ .vimrcに以下の2行を追加することで永続的にそうしました
set laststatus=2
set statusline+=%F
一度だけ実行したい場合。次に、ドキュメントタイプをVIする場合
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
編集中のファイルの完全なパスをタイトルバーに表示できます。これは、私の意見ではファイルパスを表示するのに便利な方法です。
そのためには、title
オプションとを設定する必要がありますtitlestring
。現在、次の設定を使用しています。
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Vimのホスト名、ファイルの完全パス、ファイルの最終変更時刻が表示されます。デモについては、以下の図を参照してください
Ctrl+G
「vimのcwdに対する相対パス」のようなものではありませんか?