在vim中打开文件的目录中创建一个新文件?

Daw*_*awg 71 vim

我发现自己处于我想要在与打开文件所在目录相同的目录中创建新文件的位置.如何在vim中打开文件的目录中创建新文件?还有,我可以自己学习这些东西吗?谷歌搜索没有帮助.

Ing*_*kat 146

在Vim中,通过像:edit filename或等命令编辑现有文件的新文件:split filename.要将它们保存到磁盘,您需要(可选地键入内容并)通过它们保留它们:write.

像命令提示符一样,Vim有一个当前目录的概念(:pwd列出它).所有文件路径都与它相关.您不需要复制当前文件的路径,它们有一些很好的快捷方式:%引用当前文件,:h是其目录的修饰符,减去文件名(cp.:help filename-modifiers).所以,

:e %:h/filename
:w
Run Code Online (Sandbox Code Playgroud)

将创建一个filename与当前打开的文件在同一目录中命名的新文件,然后编写它.

或者,有些人喜欢Vim总是更改为当前文件的目录.这可以通过放置来配置

:set autochdir
Run Code Online (Sandbox Code Playgroud)

进入你的~/.vimrc文件(在Vim启动时读取).然后,上面变得简单

:e filename
:w
Run Code Online (Sandbox Code Playgroud)

最后,Vim有一个很棒的内置功能:help.学习导航和搜索它!

  • 不幸的是,`autochdir` 很脆弱,我发现我不能依赖它。相反,我在 vimrc 中放置了一个 autocmd:`autocmd BufEnter * silent!液晶 %:p:h:gs/ /\\ /` (2认同)

har*_*ris 10

你应该试试"nerdtree"插件.在nerdtree窗口中,键入m键,将显示文件操作选项


Roc*_*key 8

如果要创建新文件并将其显示在当前文件旁边的窗口中,可以尝试以下操作:

:vsp newfile
Run Code Online (Sandbox Code Playgroud)

vsp代表vertical split,并将其拆分一半的屏幕,一个显示当前文件,其他显示您的新文件(也工作得sp,这是一个水平分割).

根据Per @ MartinLyne上面的评论,这将在您打开的文件的目录中创建该文件vim.要对此进行调整,您可以按如下方式更改当前工作目录:

:cd %:p:h
Run Code Online (Sandbox Code Playgroud)

此命令将当前工作目录更改为活动文件的目录,这意味着运行vsp命令(或上述任何命令)将在该目录中创建该文件.


mat*_*son 5

当你在不存在的位置打开 vim时,例如

$ vim /etc/<some_folder/<next_folder>/file.cfg

然后在 vim 中创建一个新目录,只需在正常模式下运行

:! mkdir -p /etc/<some_folder/<next_folder>

接下来照常保存您的文档:w :x ZZ(无论您喜欢什么)

就是这样