我发现自己处于想要在与打开文件所在目录相同的目录中创建新文件的位置。如何在 vim 中打开文件的目录中创建新文件?另外,有没有可以自学这些东西的地方?谷歌搜索没有帮助。
8 回答
在 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
. 学习导航和搜索它!
你应该试试“nerdtree”插件。在 nerdtree 窗口中,您键入 key m,文件操作选项将显示给您
如果您想创建一个新文件并将其显示在当前文件旁边的窗口中,您可以尝试以下操作:
:vsp newfile
vsp
代表,vertical split
它将屏幕分成两半,一个显示您当前的文件,另一个显示您的新文件(也适用于 just sp
,这是一个水平分割)。
根据上面@MartinLyne 的评论,这将在您打开的文件的目录中创建文件vim
。要对此进行调整,您可以按如下方式更改当前工作目录:
:cd %:p:h
此命令将当前工作目录更改为活动文件的目录,这意味着运行该vsp
命令(或上述任何命令)将在该目录中创建文件。
这是给 Gvim 的!输入它以查看当前目录。
:cd
然后用
:cd desktop/somefolder
然后在那里保存或制作新文件
:enew asd.cpp
现在再次查看文件
:cd
当您在不存在的位置打开 vim 时$ vim /etc/<some_folder/<next_folder>/file.cfg
然后在 vim 中创建一个新目录,只需在正常模式下运行,:! mkdir -p /etc/<some_folder/<next_folder>
然后像往常一样保存你的文档:w :x ZZ
(无论你喜欢什么)
而已
我参加聚会已经很晚了,但另一种选择是使用:E
or :Explore
(或其拆分替代品:Vexplore
/ :Sexplore
== :Vex
/ :Sex
)打开 NERDtree。
在 NerdTree 中,您可以使用 来创建一个新文件%
,然后输入名称。它会自动打开文件,并在您:w
/save 后创建它。
和NERDtree
ma <FILENAME>
ma <DIRECTORY NAME> + /
我通常使用:
:tabnew my-file
然后添加一些内容并:
:w
它将使用新文件创建新选项卡。
(我使用 Vim 8)