我不确定我在这里做错了什么。
:normal! I###<Space><Esc>
当我执行这个命令时,我想要的最终结果是:
### word
但我得到的是这个:
###<Space>word
我不确定我在这里做错了什么。
:normal! I###<Space><Esc>
### word
###<Space>word
Vim的:normal
在处理稍微复杂的内容时会让人崩溃。我不记得为什么,但这是实现你想要的最简单的方法。你需要在传递给execute的字符串中转义开头的<。
execute "normal! I###\<Space>\<Esc>"
编辑:Vim并没有详细解释,但是可以使用:help normal
命令来查看更多信息。
An alternative is to use |:execute|, which uses an
expression as argument. This allows the use of
printable characters to represent special characters.
首先解释一下vim命令:
:normal!
将剩余的命令作为普通模式运行I
从行首进入插入模式 <shift> + i
###<Space><Esc>
- 在插入模式下输入字符###<Space><Esc>
(注意,如果你只是进入插入模式并键入###<space><esc>
,你将得到这个字面上的字符串。)当命令执行完后,你会注意到它仍然处于普通模式。这意味着你的命令可以省略<space><esc>
并直接输入空格:
:norm! I###
(最后一个哈希标记后面有多余的空格)