1

有时一遍又一遍地重写类似的命令很无聊,所以我想将它们全部预先编写,将它们保存到一个自定义命令中并一劳永逸地使用它。但是,由于我将使用的新命令仅用于我当前使用的文件,我真的不想打扰更改 vimrc 文件。所以这是我的问题,是否可以将命令预先写入文件并将其加载到 vim 中然后使用它一次使用?如果可能,该怎么做?

谢谢。

4

4 回答 4

5

只需获取文件:

:source /p/a/t/h

此外,您可以在 .vimrc 中使用 autocmd:

autocmd BufRead,BufNewFile *.whatever source /p/a/t/h

或者,无需获取文件,只需将命令直接放在autocmd.

于 2013-02-26T16:22:10.743 回答
2

没有具体的例子,很难给出建议。听起来您想为特定文件类型定义自定义命令,如下所示:

:command -buffer ComplexSubstitute %substitute/foo/bar/g

:help user-commands。对于缓冲区范围,将它们放入~/.vim/ftplugin/<filetype>_commands.vim左右。使用:filetype plugin on,这些文件将自动获取。或者,您可以在那里以几乎相同的方式定义缓冲区本地:mapping。

于 2013-02-26T16:43:40.243 回答
1

要快速重复上一个命令,你可以试试我的redocommand 插件。它重复历史中包含传递模式的最后一个命令。例子:

:%substitute/foo/bar/g
" ... some time later ...
:R %s

使用内置命令,您可以开始重复命令 ( :%s),然后用 . 完成最后一个此类命令

于 2013-02-26T18:03:13.437 回答
0

好吧,如果只是一次,有一种自然(正常)的方式

  1. 将您的命令写在任何文件的单行中。您可以将其拉到您想要处理的任何其他文件中。
  2. 在这一行上,^y$拉出代码。否则yy马车会被猛拉
  3. 按 转到命令行:,点击C-r "将其粘贴到命令行。<CR>以获利。

有点麻烦,但它的工作原理。我有时也会这样做:)

于 2013-02-26T17:21:50.020 回答