gpt4 book ai didi

vim - 函数参数不求值

转载 作者:行者123 更新时间:2023-12-02 21:49:17 25 4
gpt4 key购买 nike

我正在尝试设置几个 map 来快速解决合并冲突。这是我的代码:

func! DiffAccept(w)
diffget a:w
diffupdate
normal ]c
endfunc

noremap dh :exec DiffAccept("//2")<CR>
noremap dl :exec DiffAccept("//3")<CR>

每次我尝试使用它时,我都会收到“a:w 没有匹配的缓冲区”。我显然错误地使用了这个变量,但是当我将行更改为“echo a:w”时,它的行为符合预期。

最佳答案

Vim 的评估规则与大多数编程语言不同。您需要使用 :execute 来计算(函数参数)变量;否则,它按字面意思(作为缓冲区名称):

execute 'diffget' a:w

PS:更喜欢使用 :normal! (与 !);这避免了映射的干扰。

关于vim - 函数参数不求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18967081/

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