如何在vim命令行中交互式地运行vim脚本?

15

有没有一种方法可以通过几个按键从命令行中运行这些脚本?

在过去的几个月里,我编写了一系列包含vim命令以自动生成我的项目样板代码的文件。这让我能够更快地工作。

然而,我唯一知道如何运行这些脚本的办法是将它们分配给~/.vimrc中的按键组合。我只能重新映射有限数量的按键。

有没有一种方法可以通过:命令行使用几个按键来运行这些脚本?

例如,我有一个名为unit_test_cpp.vim的脚本,用于构建基础单元测试cpp文件。我想能够输入:

:utc

我需要一个简单的字母组合或其他简单提示来运行这个脚本,使其作用于我当前打开的文件。

4个回答

30

打开 Vim,然后输入以下内容:

:source /path/to/vim/file/name.vim

如果您目前正在编辑该文件,您还可以输入:

:w <ENTER>
:source % <ENTER>

百分号(%)表示当前打开文件的路径。


10
您可以使用vim的command功能。在您的unit_test_cpp.vim文件中,您可以添加类似以下内容的内容:
command Utc call CreateUnitTests()

现在,当您键入:Utc时,它将调用您的函数。唯一的限制是您的命令必须以大写字母开头。

5
:call FunctionName() 

它们是带有vim命令的文件。我可以使用"so"命令运行它们。 - J. Polfer
每个so命令都被.vimrc中的一个函数包装。因此,我可以使用“:call FunctionName()”方法从.vimrc运行这些函数吗? - J. Polfer
1
基本上,如果你有以下的函数: function! Foo() source 'foo.vim' endfunction 你可以使用 :call Foo() 命令来调用它并加载 foo.vim 文件,或者像 rq 建议的那样映射该命令以避免使用 :call... - Doon

1
:run file.vim

:run 类似于 :source,但是不需要路径。它会搜索 runtimepath

Linux 的 runtimepath

$HOME/.vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
$HOME/.vim/after

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接