2

我正在编写一个在特定条件下自动插入一些文本的函数。当我尝试模拟 Enter 按下时,我陷入了困境。我想出了这个(明显的)代码:

execute "normal! a\<cr>"

问题是它破坏了自动缩进。例如,我有一个这样的文本文件(| 是光标):

if (condition) {
    action();|

所以我跑execute "normal! a\<cr>"。当我需要这个时:

if (condition) {
    action();
    |

它的行为是这样的:

if (condition) {
    action();
|

当然,自动缩进是打开的。我究竟做错了什么?

4

1 回答 1

5

它实际上按预期工作。如果你执行:execute "normal! a\<cr>hello它会将'hello'放在正确的位置。如果您按下AEnterEsc它,它将下降到行首。该命令退出插入模式,因为它是一个空行,所以不缩进。

于 2012-10-03T00:22:26.823 回答