【问题标题】:How to run a vim script interactively from vim command line?如何从 vim 命令行以交互方式运行 vim 脚本?
【发布时间】:2010-07-30 17:58:49
【问题描述】:

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

在过去的几个月里,我构建了一系列包含 vim 命令的文件,以便为我的项目自动生成样板代码。它让我工作得更快。

但是,我知道如何运行这些脚本的唯一方法是将它们分配给 ~/.vimrc 中的组合键。我只能重新映射这么多键。

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

例如,我有一个 unit_test_cpp.vim 脚本,它构建了一个样板单元测试 cpp 文件。我希望能够打字

:utc

或其他一些简单的字母组合和一个简单的助记符来在我当前打开的文件上运行这个脚本。

【问题讨论】:

    标签: keyboard-shortcuts vim


    【解决方案1】:

    打开 Vim 并输入以下内容:

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

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

    :w <ENTER>
    :source % <ENTER>
    

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

    【讨论】:

      【解决方案2】:

      您可以使用 vim 的command 功能。在您的 unit_test_cpp.vim 文件中,您将添加如下内容:

      command Utc call CreateUnitTests()
      

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

      【讨论】:

        【解决方案3】:

        脚本还是函数?如果是函数,试试

        :call FunctionName() 
        

        【讨论】:

        • 它们是带有 vim 命令的文件。我可以用 so 命令运行它们。
        • 每个 so 命令都被 .vimrc 中的一个函数包装。那么我可以使用 :call FunctionName() 方法从 .vimrc 运行这些函数吗?
        • 基本上。如果你有功能! Foo() source 'foo.vim' endfunction 你可以 :call Foo() 并且它应该 source foo.vim,或者你可以像下面的 rq 建议那样映射命令以避免 :call...
        【解决方案4】:
        :run file.vim
        

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

        一个 Linux runtimepath:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-22
          相关资源
          最近更新 更多