ファイル名が指定されていないときにVimにデフォルトのファイル名を使用させるにはどうすればよいですか?


17

vimファイル名なしで開くことはめったにありません。多くの場合、私は何か、通常は簡単な使い捨てスクリプトをテストしたいので、通常はそれらに名前を付けますtest.sh(または、そのような変形test.py)。ファイル名なしで実行した場合vimtest.shファイル名を想定できvimますか?私は通常エイリアスを使用します(vimsfor vim test.shvimpfor vim test.py、または全体を使用するなど:w test.sh)が、内部からの方法があるのだろうかと思いますvim。これを/tmp、またはなどの特定のディレクトリに制限できればさらに良いでしょう~/dev

回答:


10

これを.vimrcの最後に配置してみてください(必要に応じて変更します)

if @% == "" && getcwd() == "/tmp"
    :silent edit test.sh
endif

これは、現在のファイル名が空(@%現在のファイル名を参照)であるかどうかを確認し、vimの現在のディレクトリがであるかどうかを確認します/tmp。同様に他のディレクトリを追加することもできます

(getcwd() == "/tmp" || getcwd() == "~/dev")

その後、静かにtest.shを編集します。そのファイルが既に存在する場合、それをロードします。それ以外の場合は、その名前で新しいバッファを開始し、書き込むとファイルが作成されます。

起動時に次のメッセージを表示しないようにサイレントを設定しました。

"test.sh" [New File]
Press ENTER or type command to continue

5

ジョンの答えを修正すると便利な場合があります。

if @% == "" && getcwd() == "/tmp"
    :silent edit `=glob("test\.*", 1, 1)[0]`
endif

これは、で始まる最初のファイルを開きますtest.

最初のファイルだけでなく、他の一致するファイルも開きたい場合は、次のようにします。

if @% == "" && getcwd() == "/tmp"
    for i in glob("test\.*", 1, 1)
        :silent edit `=i`
    endfor
endif
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.