Vim 创建自定义宏或命令

Vim 创建自定义宏或命令

虽然我已经使用 Vim 有一段时间了,但在自定义方面我仍然是个新手。我不确定我的想法是否可以实现。以下是我想要做的事情:在编写 bash 脚本时,我有一个模板来注释一个函数

1  #!/bin/bash
2
3  ###########################################################
4  # template
5  # globals:
6  #   none
7  # returns:
8  #   none
9  ###########################################################
10
11
12 my_function () {
13 ...

我目前正在做的是将光标定位在line 11,然后发出命令:

:3,9y

这会将第 3 行到第 9 行拉入缓冲区。然后我点击p,它会将行粘贴到光标后。我想简化这个过程。我可以通过定义宏之类的东西来实现上述行为吗?理想情况下,我会将其定义为文件.vimrc,而不是依赖脚本来将模板精确地放在第 3 行到第 9 行。

答案1

您可以将横幅的文字放在命名寄存器中:

let @c  = "###########################################################\n"
let @c .= "# template\n"
let @c .= "# globals:\n"
let @c .= "#   none\n"
let @c .= "# returns:\n"
let @c .= "#   none\n"
let @c .= "###########################################################"

并将其与以下内容放在一起:

"cp

答案2

片段就像内置的:abbreviate类固醇一样,通常带有参数插入、镜像和多个停止功能。最早、非常著名(并且仍然广泛使用)的 Vim 插件之一是剪辑工具(灵感来自文本伴侣编辑器);不幸的是,它不再维护;尽管有一把叉子。一个现代的替代方案(需要 Python)是超级剪钳。还有更多,请参阅Vim Tips Wiki 上的这个列表

需要评估的有三件事:首先,片段引擎本身的功能;其次,作者或其他人提供的片段的质量和广度;第三,添加新片段的难易程度。

相关内容