当使用Vim作为文本编辑器时,是否有一种在文本编辑模式下创建新目录和文件的方法?而不是返回到命令行并创建新目录和文件。
如果您处于文件浏览器模式下,您可以使用以下方法:
d
创建文件夹
%
创建新文件
您可以通过输入 :Sexplore
或 :Vexplore
命令进入浏览器模式
无需使用 !
调用外部命令
:Sexplore
或:Vexplore
。 - Sukma Saputravidir
也没有为我的使用情况提供方便的方式。 - Sridhar Sarnobat假设您在运行一个shell,我建议使用以下任意一条命令。通过Esc键进入命令模式,然后:
:! touch new-file.txt
:! mkdir new-directory
一个非常适合这些操作的插件是vim-eunuch,它为您提供了用于shell命令的语法糖。以下是使用vim-eunuch的后一个示例:
:Mdkir new-directory
vim ~/some/path
中输入 :! mkdir new_dir
,那么它会创建 ~/new_dir
而不是 /some/path/new_dir
。 - young_souvlaki切换到文件浏览模式
:Ex
,如果不起作用,请使用:Explore
然后按下
d
并添加新目录名称。
help :Explore
。 - bonyiii假设您刚刚在不存在的目录中打开了一个新文件:
vim new_dir/new_file.txt
当您尝试使用:w时,您将收到“E212:无法打开写入文件”
要创建新目录和文件,请使用以下命令:
:!mkdir -p %:h
%:h
到底是什么意思:%
表示文件名(作为 vim 的参数),而 :h
则表示除了最后一个部分之外的所有内容。具体内容可以在这里找到:https://vim.fandom.com/wiki/Get_the_name_of_the_current_file。 - Bodo Thiesen:!mkdir my_dir
和:!touch foo.txt
(如Jake在这里的答案中提到)将在当前工作目录中创建目录和文件。当前工作目录是指在开始当前vim进程时所处的目录,但不一定是你正在编辑的文件所在的相同目录,也不一定是你的:Explore
浏览器当前查看的相同目录。如果有疑问,请始终使用:!pwd
来检查当前的工作目录,并在必要时使用相对路径。
- 因此,如果您的项目包含多个子目录,则更方便的方法是:
1. 首先键入:Explore
以进入资源管理器模式,
2. 然后您可以通过键入up-arrow或down-arrow(或j或k)移动光标,键入Enter进入子目录,键入-返回上一级目录。(请注意,所有这些导航都不会更改您的当前工作目录);
3. 现在,您可以键入d提示输入目录名,或键入%提示输入文件名,然后它们将在当前屏幕显示的目录中创建。PS:这些键实际上在内置帮助文档 F1 中有提到。
您可以使用:e .
进入资源管理器模式,然后按下d
键创建新目录。虽然这个答案比较简短,但可能更好理解。
.vimrc
中拥有这样的命令,这将非常有用。 - Petr