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

时间:2012-11-05 20:02:22

标签: vim

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

8 个答案:

答案 0 :(得分:122)

在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。学习导航和搜索它!

答案 1 :(得分:7)

如果你想创建一个新文件并在当前文件旁边的窗口中显示它,你可以试试这个:

:vsp newfile

vsp代表vertical split,它将屏幕分成两半,一个显示您当前的文件,另一个显示您的新文件(也适用于sp,这是水平分割)。

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

:cd %:p:h

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

答案 2 :(得分:6)

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

答案 3 :(得分:1)

这是给Gvim的! 输入此名称以查看当前目录。

:cd

然后用

进行更改
:cd desktop/somefolder

然后在此处保存或制作新文件

:enew asd.cpp

现在再次看到文件

:cd

答案 4 :(得分:0)

当您在$ vim /etc/<some_folder/<next_folder>/file.cfg等不存在的位置打开vim时

然后在vim中创建一个新目录,只需以普通模式:! mkdir -p /etc/<some_folder/<next_folder>运行,然后像往常一样保存文档:w :x ZZ(随便什么)

就这样

答案 5 :(得分:0)

我参加聚会已经很晚了,但另一个选择是使用:E:Explore(或其他拆分选择:Vexplore / :Sexplore == { {1}} / :Vex)。

在NerdTree中,您可以使用:Sex创建一个新文件,然后键入名称。它会自动打开文件,并在您% /保存后创建它。

答案 6 :(得分:0)

NERDtree

 ma <FILENAME>
 ma <DIRECTORY NAME> + /

答案 7 :(得分:0)

我通常使用:

ok() => {
document.getElementById('test1').style.display = 'block'

document.getElementById('test2').style.display = 'none'
}

然后添加一些内容和:

:tabnew my-file

它将用新文件创建新标签。

(我使用 Vim 8)