gpt4 book ai didi

vim - 如何在 Vimscript 中调用自增自减普通模式命令?

转载 作者:行者123 更新时间:2023-12-04 03:11:33 25 4
gpt4 key购买 nike

我正在尝试创建一个随机递增 ro 递减光标下数字的 Vimscript 函数,因此我可以从宏中调用它。到目前为止,我得到了这个:

function! RandomIncDec() 
python import random
python vim.command("let l:random = " + str(random.randint(-15, 15)))
if l:random > 0
exec ':normal ' . l:random . '<C-a>'
elseif l:random < 0
exec ':normal ' . abs(l:random) . '<C-x>'
endif
endfunction

command! RandIncDec :call RandomIncDec()

我遇到的问题是 Ctrl-ACtrl-X 键不在 Vimscript 中似乎无法以这种方式工作。

我也尝试过使用 feedkeys() 函数来尝试模拟按键,但这似乎也不起作用。我可以通过调用 Ctrl-ACtrl-X 映射到的底层函数来做到这一点,但由于它们是核心,我无法从 :map 中找出它们是什么。

从 Vimscript 执行此操作的正确方法是什么?

最佳答案

尝试输入 <C-a><C-x>作为[Ctrl+V, Ctrl+A] 和 [Ctrl+>V, Ctrl+X],分别。这样做之后,那些 exec行应如下所示:

exec ':normal ' . l:random . '^A'
exec ':normal ' . abs(l:random) . '^X'

哪里^A^X是单个字符。

另一种(可能更好)的方法是使用双引号字符串扩展(参见 :help expr-quote ):

exec ':normal ' . l:random . "\<C-A>"
exec ':normal ' . abs(l:random) . "\<C-X>"

关于vim - 如何在 Vimscript 中调用自增自减普通模式命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409509/

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