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


93

我发现自己想在与打开文件所在目录相同的目录中创建一个新文件。如何在vim中打开文件的目录中创建一个新文件?另外,在一个可以自己学习这些东西的地方吗?谷歌搜索没有帮助。


您是在谈论Linux上的文本编辑器vim吗?
ianaz

Answers:


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没有必要的代表。感谢您的书面解释!
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保存后创建它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.