gpt4 book ai didi

vim - 宏中的条件操作

转载 作者:行者123 更新时间:2023-12-04 15:55:48 25 4
gpt4 key购买 nike

在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函数进行:call编码。

您的示例可以这样表示:

function! Macro()
" Get current letter.
normal! yl
if @" =~# '[aeiou]'
execute "normal! gg$i0\<ESC>"
else
execute "normal! gg$i1\<ESC>"
endif
endfunction

关于vim - 宏中的条件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24086714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com