Vimで現在のファイルのパスを永続的に表示するにはどうすればよいですか?


90

私が知っているCTRLgディスプレイにあなたが取り組んでいる現在のファイルを。.vimrcファイル名/パスが常に表示されるように変更する方法はありますか?

回答:


128

ステータスラインにa %Fを追加して完全なパスを表示します。

:help statusline

" Add full file path to your existing statusline
set statusline+=%F

注、%F完全なパスになります。作業ディレクトリからの相対パスを取得するには、次を使用します%f

ステータスラインがまだ表示されていない場合は、まず、常に表示されるように設定する必要があります。 laststatus=2

set laststatus=2

:help laststatusオプションの意味については、を参照してください。通常、ステータスラインは非表示になるか、複数のバッファーが開いていない限り非表示になりますが、このようなカスタマイズを常に行うことは非常に有用であり、1つの画面ラインの予約をあきらめる価値があります。


1
私は確かにあなたの答えを私に好むがset statusline+=%F、私に追加して~/.vimrcもあなたの言ったことをしているようには見えない。ドキュメントは確かにあなたに同意するようですが...
Tim Pote

1
これは効果がありませんでした。申し訳ありませんが、シンプルなものがない場合、それについて何か考えはありますか?
zallarak、2012年

1
@TimPoteどのvimバージョン?私のために働く。たぶん、あなたのステータスラインはすでにそれを押しやるか、または幅を制限しています。:set statusline=%Fせずに試してみましょう+
Michael Berkowski、2012年

@zallarakティムへの私のコメントを参照してください。単純に変更すると、ステータスラインは変わります:set statusline=%Fか?右側または左側を見て、ファイル名がステータスラインに隠れているかどうかを確認します
Michael

2
@TimPoteステータスラインをset laststatus=2常に見えるようにしておくのがいいでしょう。忘れちゃった。
Michael Berkowski、2012年

20

ls = 2を設定

これをvimrcに追加すると、常に下部にファイル名が表示されます。


set modelineは私のために何もしませんでした、それは何をするつもりですか?(ただし、設定ls = 2は何かを行いました)。次回は自分でこれを理解するためにどのように人/手助けするのですか?ありがとう!:)
チャーリーパーカー、

1
set modeline少し危険で質問とは関係ありません。ファイルの5つの開始/終了行でVimコマンドを実行できます。理由を知っていて、これを本当に望んでいる人だけがオンにすべきです。(だから私はこの答えを-1にしました)
Beco博士2014

16

Vimでファイルを編集しているときに、gnome-terminalのタイトルバーにファイルパスを表示する方法が2つ見つかりました。

より簡単な(そしてより良い)方法:次の行をyourに追加します~/.vimrc

set title

上部に表示されます:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

より複雑な方法では、絶対ファイルパスが表示されます。それはだ、このブログの記事でもう少し詳細に文書化され、私が最近書きました。


「タイトルを設定」は、ターミナルタブにファイル名を表示します。興味深い機能。
duleshi 2014年

興味深いのですが、尋ねられた質問には答えません。また、あなたはそれがより良いと主張します-しかし、そうではないかもしれません。たとえば、vimが全画面モードのターミナルで開いている場合、タイトルは表示されません。したがって、反対票を投じます。
apprenticeDev

8

私が作業しているファイルの完全パスを取得するために見つけた唯一の方法は、です:echo expand('%:p')。必要に応じてctrl + gを再マッピングできますが、私は個人的には標準からあまり離れないようにしています。私はF7を次のようにマッピングしました:

map  <F7> <Esc>:echo expand('%:p')<Return>

4
:help CTRL-G、そしてCTRL-Gcountで2つの段落を探します。
Stefan Majewsky 2012

1
ありがとう、@ StefanMajewsky。1 CTRL-G完全なファイル名を表示します。このオプションを探していました。
アントン・キセレフ2013

私はu Timが大好きです。これがなくても絶対パスを絶対に表示する唯一の方法~です。
ライアンチュン

7

vim-airlineを使用している場合は、次のように入力し.vimrcます。

let g:airline_section_c = '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#'

これは航空会社のデフォルトの変更で%f、によって変更され%Fます。


6

私はいつも使用してきました:fが、@ MichaelBerkowskiからの回答とリンクはすばらしいです!

:f パス、行数、変更された状態、現在のカーソル位置などを表示します...

知りませんでしたがCTRLG、ほぼ同じようです。


5

ステータスラインは非常に強力で便利だと思います。ボックスから出ると、ファイル名、カーソル位置、いくつかのフラグが表示されます。しかし、私と同じようにして、ファイル名 -partをファイルへの完全パスに置き換えたいとします。

したがって、.vimrc私のステータスラインを編集しているとき、デフォルトでは次のようになります。

.vimrc                                                        26,16           7%

ステータスラインの設定は次のように表示できます:

:set statusline?

ただし、変更を加えておらず、変更されたモジュールがない場合は、空になります。しかし、ヘルプセクション(:help statusline)の例では、デフォルトは次のようになっています。

:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

これをに含めて.vimrc、に変更%fしてください%F。また、ファイルタイプフラグ(%y)をステータスラインに追加しました。便利だからです。したがって、結果の構成は次のようになります。

:set statusline=%<%F\ %h%m%r%y%=%-14.(%l,%c%V%)\ %P

結果は次のようになります。

~/.vimrc [vim]                                                26,16           7%

良い読書:

PS。vim 7.3を実行しています


4

パスに解決されたシンボリックリンクを含める場合は、以下を使用します。

set statusline +=%{resolve(expand('%:p'))}\ %*

ホームディレクトリの「〜」の省略形を維持するには、次を含めます。 fnamemodify

set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*

これらはどちらも、VIM 7.4でiTerm2を使用してUbuntu 16.04 LTSにSSHで接続することで機能しました
James Nicholson、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.