虽然我已经使用 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 上的这个列表。
需要评估的有三件事:首先,片段引擎本身的功能;其次,作者或其他人提供的片段的质量和广度;第三,添加新片段的难易程度。