将密钥附加到 vim 中的较早记录
Append keys to an earlier recording in vim
我知道recording in vim是什么。
假设我已经在收银机上录制了一段录音,但我还缺少一些要添加到该序列中的键。有没有办法将这些密钥附加到 vim 中的早期记录?
使用大写字母将附加到寄存器,因此 qA
将继续记录 @a
宏。
来自:help q
:
q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
(uppercase to append).
注意:这适用于与寄存器相关的所有内容,因此 "Ayw
还会将下一个单词附加到寄存器 "a
。
粘贴宏
您可以通过执行此操作将您的寄存器粘贴到当前文件(假设寄存器 "a"):
:put a
如果我想删除该行的最后一个字,并且我想删除它前面的space,则跳到该行的开头并向下移动一行
原始寄存器"a":
$diw
粘贴寄存器
:put a
在插入模式下我们需要直接插入宏,所以我们需要使用Ctrl-rCtrl-ra
注意:第二个 Ctrl-r 是捕获 Esc 或 Enter 所必需的。
修改宏
修改寄存器"a":
$diwx0j
在上面的例子中我们只是添加了x0j
正在重新分配宏
然后你可以进行视觉选择并拉到寄存器 "a":
0vg_"ay
0 ........ goes to the beginning of the line
v ........ visual selection
g_ ....... goes to the end of the line without line break
"ay ..... copy to the register "a"
如果你想切换模式,你可以通过键入 Ctrl-vEsc
按字面意思键入 Esc
您还可以使用 "let" 设置一个寄存器,在本例中是一个寄存器 "a" 来切换行的大小写并转到下一行:
let @a="V~\<Esc>0j"
let 选项允许您将宏保存在 ~/.vimrc
中,这在您每天都需要宏的情况下会派上用场。
使用 "let" 分配和重新分配宏的另一个优点是您可以通过这种方式插入特殊键:
:let @a="iHello World\<Return>bye\<Esc>"
必须使用双引号,否则将无法正常工作。
注意:二合字母^[
通过输入Ctrl-vEsc[=72插入=] 并且它代表字面上的 Esc。
我知道recording in vim是什么。
假设我已经在收银机上录制了一段录音,但我还缺少一些要添加到该序列中的键。有没有办法将这些密钥附加到 vim 中的早期记录?
使用大写字母将附加到寄存器,因此 qA
将继续记录 @a
宏。
来自:help q
:
q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"}
(uppercase to append).
注意:这适用于与寄存器相关的所有内容,因此 "Ayw
还会将下一个单词附加到寄存器 "a
。
粘贴宏
您可以通过执行此操作将您的寄存器粘贴到当前文件(假设寄存器 "a"):
:put a
如果我想删除该行的最后一个字,并且我想删除它前面的space,则跳到该行的开头并向下移动一行
原始寄存器"a":
$diw
粘贴寄存器
:put a
在插入模式下我们需要直接插入宏,所以我们需要使用Ctrl-rCtrl-ra
注意:第二个 Ctrl-r 是捕获 Esc 或 Enter 所必需的。
修改宏
修改寄存器"a":
$diwx0j
在上面的例子中我们只是添加了x0j
正在重新分配宏
然后你可以进行视觉选择并拉到寄存器 "a":
0vg_"ay
0 ........ goes to the beginning of the line
v ........ visual selection
g_ ....... goes to the end of the line without line break
"ay ..... copy to the register "a"
如果你想切换模式,你可以通过键入 Ctrl-vEsc
按字面意思键入 Esc您还可以使用 "let" 设置一个寄存器,在本例中是一个寄存器 "a" 来切换行的大小写并转到下一行:
let @a="V~\<Esc>0j"
let 选项允许您将宏保存在 ~/.vimrc
中,这在您每天都需要宏的情况下会派上用场。
使用 "let" 分配和重新分配宏的另一个优点是您可以通过这种方式插入特殊键:
:let @a="iHello World\<Return>bye\<Esc>"
必须使用双引号,否则将无法正常工作。
注意:二合字母^[
通过输入Ctrl-vEsc[=72插入=] 并且它代表字面上的 Esc。