有时一遍又一遍地重写类似的命令很无聊,所以我想将它们全部预先编写,将它们保存到一个自定义命令中并一劳永逸地使用它。但是,由于我将使用的新命令仅用于我当前使用的文件,我真的不想打扰更改 vimrc 文件。所以这是我的问题,是否可以将命令预先写入文件并将其加载到 vim 中然后使用它一次使用?如果可能,该怎么做?
谢谢。
有时一遍又一遍地重写类似的命令很无聊,所以我想将它们全部预先编写,将它们保存到一个自定义命令中并一劳永逸地使用它。但是,由于我将使用的新命令仅用于我当前使用的文件,我真的不想打扰更改 vimrc 文件。所以这是我的问题,是否可以将命令预先写入文件并将其加载到 vim 中然后使用它一次使用?如果可能,该怎么做?
谢谢。
只需获取文件:
:source /p/a/t/h
此外,您可以在 .vimrc 中使用 autocmd:
autocmd BufRead,BufNewFile *.whatever source /p/a/t/h
或者,无需获取文件,只需将命令直接放在autocmd
.
没有具体的例子,很难给出建议。听起来您想为特定文件类型定义自定义命令,如下所示:
:command -buffer ComplexSubstitute %substitute/foo/bar/g
见:help user-commands
。对于缓冲区范围,将它们放入~/.vim/ftplugin/<filetype>_commands.vim
左右。使用:filetype plugin on
,这些文件将自动获取。或者,您可以在那里以几乎相同的方式定义缓冲区本地:map
ping。
要快速重复上一个命令,你可以试试我的redocommand 插件。它重复历史中包含传递模式的最后一个命令。例子:
:%substitute/foo/bar/g
" ... some time later ...
:R %s
使用内置命令,您可以开始重复命令 ( :%s
),然后用 . 完成最后一个此类命令↑。
好吧,如果只是一次,有一种自然(正常)的方式
^y$
拉出代码。否则yy
马车会被猛拉:
,点击C-r "
将其粘贴到命令行。<CR>
以获利。有点麻烦,但它的工作原理。我有时也会这样做:)