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