我可以用 Vim 重命名目录中的文件吗?

我可以用 Vim 重命名目录中的文件吗?

如果我vim使用打开一个目录vim .,我将获得当前目录的文件浏览器类型界面。从那里我希望浏览到一个文件,然后开始编辑它。

我想用这个接口重命名文件。普通vim重命名的工作方式类似于%s/term1/term2/,但当我在这里尝试时,它返回:E21: Cannot make changes, 'modifiable' is off

在这种情况下有没有办法打开modifiable,或者这仅仅意味着不能用 vim 这样做?

答案1

是的,不能这么做。

该“文件浏览器类型界面”由名为 netrw 的内置插件提供。它是只读的,所以您无法修改它。

您应该点击R来重命名光标下的文件或标记的文件。

请参阅:help netrw:help netrw-browse-maps更具体地说:help netrw-R

如果你想使用 Vim 批量重命名文件,你应该qmv尝试重命名工具包或vidir来自更多工具包(感谢 Dmitry 的提醒)。

答案2

查看renamer.vim - 使用 vim 的强大功能重命名文件组插件(现在完全在GitHub)。 喜欢网络,它将目录内容显示在临时缓冲区中,然后让您编辑该缓冲区,最后将编辑应用于底层文件。

答案3

从 v143 开始,Netrw 将允许您应用模式来重命名文件。过程:标记文件(使用 mr 根据模式标记文件),然后按 R。在第一次重命名查询时,使用字符串响应,s/-frompat-/-topat-/其中-frompat--topat-是 vim 替换模式。s/ 为此需要 。示例:

s/\(.*\)\.c/\1.cpp/

答案4

我尝试使用“system()”通过 shell 完成此任务(当然,如果是这种情况的话)在你的“.vimrc”上创建一个函数来完成此任务。

func! YourFunc() range

    let l:result = system("your shell command")

    [...]

endfunc

参见“system()”的用法https://github.com/eduardolucioac/groovim/blob/master/.vimrc

[]的

相关内容