如何在vim函数中执行普通模式命令?

时间:2016-07-14 02:44:26

标签: function vim command

我正在编写一个vim函数来在c ++文件中插入一些文本,请参阅以下函数:

function! InsertDebugInfo()                                                                      
     let i = line('.')                                                               
     call append(i+1, '#ifdef DEBUG')                                                
     call append(i+2, 'std::cout << ""  << std::endl;')                              
     call append(i+3, '#endif')                                                      
     call append(i+4, '')                                                            
     call cursor(i+3, 0)                                                             
endfunction    

在正常模式下,我使用==重新缩进一个代码行。我的问题是 如何在上述函数中调用==。而且,如何执行 2f"等命令将光标移动到第二个"

2 个答案:

答案 0 :(得分:4)

要缩进,您只需使用

即可
normal ==

要查找也可以使用

normal 2f"

甚至更短

norm <whatever you do in normal mode>

现在你可能会得到我想说的话 如果没有,请阅读文档:h normal

答案 1 :(得分:1)

在你的函数中试试这个:

execute 'normal 2f"'