vimで開いているファイルのディレクトリに新しいファイルを作成しますか?


93

開いているファイルと同じディレクトリに新しいファイルを作成したい位置にいます。vimで開いているファイルのディレクトリに新しいファイルを作成するにはどうすればよいですか?また、自分でこれらのことを学べるところはありますか?グーグルは役に立ちませんでした。


Linuxのテキストエディタであるvimについて話しているのですか?
ianaz 2012年

回答:


173

Vim内から、:edit filenameまたはなどのコマンドを使用して、既存のファイルを編集するように新しいファイルを作成します:split filename。それらをディスクに永続化するには、(オプションでコンテンツを入力して)を介して永続化する必要があります:write

コマンドプロンプトのように、Vimには現在のディレクトリの概念があり:pwdます(それをリストします)。すべてのファイルパスはそれに関連しています。現在のファイルへのパスを複製する必要はありません。それらにはいくつかの便利なショートカットがあります。現在のファイルを%参照し、:hそのディレクトリの修飾子からファイル名(cp。:help filename-modifiers)を引いたものです。そう、

:e %:h/filename
:w

filename現在開いているファイルと同じディレクトリに名前の付いた新しいファイルを作成し、書き込みます。

あるいは、Vimのように常に現在のファイルのディレクトリに移動する人もいます。これは、配置することで構成できます

:set autochdir

~/.vimrcファイルに(Vimの起動時に読み込まれます)。すると、上記は単純になります

:e filename
:w

最後に、Vimには素晴らしいビルトインがあり:helpます。ナビゲートして検索する方法を学びましょう!


2
autochdir残念ながらフレーク状で、頼りにできないことがわかりました。代わりに、vimrcにautocmdを入れました:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang

1
Dawgもあなたの回答に賛成票を投じたいと思っていますが、Dawgには必要な担当者がいません。よく書かれた説明をありがとう!
Dawg 2012年

14

「nerdtree」プラグインを試してみてください。nerdtreeウィンドウでキーmを入力すると、ファイル操作の選択肢が表示されます


11

新しいファイルを作成し、それを現在のファイルの横のウィンドウに表示したい場合は、次のことを試すことができます。

:vsp newfile

vsp略でvertical split、それは一つの他は(もちょうどで動作する新しいファイルを示す、あなたの現在のファイルを示す、半分に画面を分割sp水平分割です、)。

上記の@MartinLyneのコメントによると、これにより、開いたファイルのディレクトリにファイルが作成されますvim。これを調整するには、現在の作業ディレクトリを次のように変更します。

:cd %:p:h

このコマンドは、現在の作業ディレクトリをアクティブファイルのディレクトリに変更します。つまり、vspコマンド(または上記のコマンドのいずれか)を実行すると、そのディレクトリにファイルが作成されます。


2

のような存在しない場所でvimを開いたとき $ vim /etc/<some_folder/<next_folder>/file.cfg

次に、vim内にいる間に新しいディレクトリを作成するには、通常モードで実行し、通常:! mkdir -p /etc/<some_folder/<next_folder>どおりにドキュメントを保存します:w :x ZZ(好きなように)

それでおしまい


1

これはGvim用です!これを入力して、現在のディレクトリを表示します。

:cd

次にそれを変更します

:cd desktop/somefolder

次に、そこに新しいファイルを保存または作成します

:enew asd.cpp

今再びファイルを参照してください

:cd

0

私はパーティーにかなり遅れていますが、別のオプションは、:Eまたは:Explore(またはその分割の選択肢:Vexplore/ :Sexplore== :Vex/ :Sex)でNERDtreeを開くことです。

NerdTreeでは、を使用して新しいファイルを作成し%、名前を入力できます。ファイルが自動的に開き、:w/保存した後に作成されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.