vim – 宏中的条件操作
发布时间:2020-12-15 22:10:01 所属栏目:安全 来源:网络整理
导读:在VIM宏中,如何处理条件操作? if condition is true do this else do something else 基本的例子 文件内容: _abcdefg 宏将做: G^if letter is one of the following letters: a e i o u gg$i0ESCelse gg$i1ESCGx 重复7次缓冲区将是: _0111011 那么,我如
在VIM宏中,如何处理条件操作?
if condition is true do this else do something else 基本的例子 文件内容: _ abcdefg 宏将做: G^ if letter is one of the following letters: a e i o u gg$i0<ESC> else gg$i1<ESC> Gx 重复7次缓冲区将是: _0111011 那么,我如何验证条件是否为真然后运行一个动作? 解决方法
由于Vim中没有“条件”命令,因此不能严格地使用宏来完成.您只能使用以下事实:当宏中的命令发出蜂鸣声时,宏重播将中止.递归宏使用此事实来停止迭代(例如,当j命令无法移动到缓冲区末尾的后续行时).
另一方面,Vimscript中的条件逻辑非常简单,宏可以:轻松调用任何Vimscript函数. 你的例子可以这样表达: function! Macro() " Get current letter. normal! yl if @" =~# '[aeiou]' execute "normal! gg$i0&;ESC>" else execute "normal! gg$i1&;ESC>" endif endfunction (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |