gpt4 book ai didi

vim - 带有shift-tab的vim中的omnicomplete不起作用?

转载 作者:行者123 更新时间:2023-12-04 00:09:18 26 4
gpt4 key购买 nike

我试图让 vim 允许我使用 tab 键在自动完成弹出列表中循环。它适用于 tab 但不适用于 s-tab (shift-tab)。似乎 shift-tab 在应用 C-P 之前以某种方式取消了自动完成菜单

有人有什么想法吗?

function InsertTabWrapper(direction)
if pumvisible()
if "forward" == a:direction
return "\<C-N>"
else
return "\<C-P>"
endif
endif
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-x>\<c-o>"
endif
endfunction

inoremap <tab> <c-r>=InsertTabWrapper("forward")<cr>
inoremap <s-tab> <c-r>InsertTabWrapper("backward")<cr>

最佳答案

您错过了 <c-r> 之后的等号“=”对于<s-tab>映射。

但是,我建议这样做:

function! InsertTabWrapper()
if pumvisible()
return "\<c-n>"
endif
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-x>\<c-o>"
endif
endfunction
inoremap <expr><tab> InsertTabWrapper()
inoremap <expr><s-tab> pumvisible()?"\<c-p>":"\<c-d>"
  1. 使用 <expr>映射。更好看更清晰(很多人不知道 <c-r>= 的东西。
  2. 映射<s-tab>像这样,你可以在插入模式下取消缩进。

关于vim - 带有shift-tab的vim中的omnicomplete不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751540/

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