【发布时间】:2012-11-05 20:02:21
【问题描述】:
我发现自己处于要在与打开文件所在目录相同的目录中创建新文件的位置。如何在 vim 中打开文件的目录中创建新文件?另外,有没有可以自学的地方?谷歌搜索没有帮助。
【问题讨论】:
-
你说的是 Linux 上的文本编辑器 vim 吗?
标签: vim
我发现自己处于要在与打开文件所在目录相同的目录中创建新文件的位置。如何在 vim 中打开文件的目录中创建新文件?另外,有没有可以自学的地方?谷歌搜索没有帮助。
【问题讨论】:
标签: vim
在 Vim 中,通过 :edit filename 或 :split filename 等命令创建新文件,就像编辑现有文件一样。要将它们持久化到磁盘,您需要(可选地输入内容并)通过:write 持久化它们。
和命令提示符一样,Vim 有一个当前目录的概念(:pwd 列出了它)。所有文件路径都是相对于它的。您不需要复制当前文件的路径,它们有一些不错的快捷方式:% 指当前文件,:h 是其目录的修饰符,减去文件名(cp.@987654327 @)。所以,
:e %:h/filename
:w
会在当前打开的文件所在目录下新建一个名为filename的文件,并写入。
另外,有些人喜欢 Vim 总是切换到当前文件的目录。这可以通过放置来配置
:set autochdir
进入你的~/.vimrc 文件(在 Vim 启动时读取)。那么,上面就变得简单了
:e filename
:w
最后,Vim 有一个很棒的内置 :help。学习导航和搜索!
【讨论】:
autochdir 很不稳定,不幸的是,我发现我不能依赖它。相反,我在我的 vimrc 中放了一个 autocmd:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
你应该试试“nerdtree”插件。 在 nerdtree 窗口中,您键入 key m,文件操作选项将显示给您
【讨论】:
如果您想创建一个新文件并将其显示在当前文件旁边的窗口中,您可以试试这个:
:vsp newfile
vsp 代表vertical split,它将屏幕分成两半,一个显示您当前的文件,另一个显示您的新文件(也适用于仅sp,这是一个水平分割)。
根据上面@MartinLyne 的评论,这将在您打开vim 的文件的目录中创建文件。要对此进行调整,您可以按如下方式更改当前工作目录:
:cd %:p:h
此命令将当前工作目录更改为活动文件的目录,这意味着运行vsp 命令(或上述任何命令)将在该目录中创建文件。
【讨论】:
当你在不存在的位置打开 vim 时,比如 $ vim /etc/<some_folder/<next_folder>/file.cfg
然后在 vim 中创建一个新目录,只需在正常模式下运行 :! mkdir -p /etc/<some_folder/<next_folder>,然后像往常一样保存你的文档 :w :x ZZ(随你喜欢)
就是这样
【讨论】:
这是给 Gvim 的! 输入这个来查看当前目录。
:cd
然后改变它
:cd desktop/somefolder
然后在那里保存或制作新文件
:enew asd.cpp
现在再次查看文件
:cd
【讨论】:
我参加聚会已经很晚了,但另一种选择是使用:E 或:Explore(或其拆分替代方案:Vexplore/:Sexplore == :Vex/:Sex)打开NERDtree。
在 NerdTree 中,您可以使用% 创建一个新文件,然后输入名称。它会自动打开文件,并在你:w/保存后创建它。
【讨论】:
nnoremap <leader>pv :wincmd v<bar> :Ex <bar> :vertical resize 30<CR> 和 % 对它很有帮助。
与NERDtree
ma <FILENAME>
ma <DIRECTORY NAME> + /
【讨论】:
我通常使用:
:tabnew my-file
然后添加一些内容:
:w
它将使用新文件创建新标签。
(我使用 Vim 8)
【讨论】: