使 nvim 弹出菜单只显示一个字符
Make nvim popup menu appear with only one character
我目前正在使用 NCM2 作为我的自动完成插件,但我不确定问题出在一般弹出菜单还是 NCM2 上。
当我尝试自动完成文件名时,弹出菜单只会在我输入至少 3 个字符后出现。即使额外的第三个字符不限制建议。
例如,我有以下目录:
- 4822283_ERCOFTAC_m3c1_SST.dat
- 4822299_ERCOFTAC_m3c1_SBES.log
- 4822299_FluentSBES.jou
- ERCOFTAC_m3c1_SBES.cas
- ERCOFTAC_m3c1_SBES.o4822299
- fluentSBES.sh
如果我输入 48
,什么也没有出现:
如果我输入 482
,我会得到自动完成菜单:
这是非常一致的行为。至少在处理以数字开头的文件名时,我最常注意到它。
所以问题是我能不能
A) 更改显示自动完成菜单所需的字符数或
B) 找到打开自动完成菜单的任何快捷方式(类似于 VS Code 中的 "Trigger Suggest" 命令)
你可以看到我的副本 init.vim
here.
编辑:
Yedhin 的回答针对的是方法 A),但它也会导致自动弹出菜单始终打开,说实话这很烦人。
为了解决项目 B),这是最理想的,我找到了 ncm2_manual_trigger
函数。所以理论上,通过在init.vim
中输入以下内容,您可以随时手动触发自动弹出。
let g:ncm2#auto_popup = 0
imap <C-a> <Plug>(ncm2_manual_trigger)
但是,如 this issue posted on the ncm2 repo 中所述,manual_trigger 仍然依赖于 ncm2#complete_length
参数来确定要显示的内容。如果自动触发器尚未触发弹出菜单,这将导致手动触发器不显示弹出菜单。我们现在只需要等待问题得到解决(在撰写本文时,根据问题上的 "my-next-task" 标签判断应该很快)。
尝试在你身上明确设置 init.vim :
let g:ncm2#complete_length=[[1,1],[7,2]]
所以这个值意味着优先级在 1 到 6 之间的源的值为 1,优先级 >=7 的源的值为 2。
我目前正在使用 NCM2 作为我的自动完成插件,但我不确定问题出在一般弹出菜单还是 NCM2 上。
当我尝试自动完成文件名时,弹出菜单只会在我输入至少 3 个字符后出现。即使额外的第三个字符不限制建议。
例如,我有以下目录:
- 4822283_ERCOFTAC_m3c1_SST.dat
- 4822299_ERCOFTAC_m3c1_SBES.log
- 4822299_FluentSBES.jou
- ERCOFTAC_m3c1_SBES.cas
- ERCOFTAC_m3c1_SBES.o4822299
- fluentSBES.sh
如果我输入 48
,什么也没有出现:
如果我输入 482
,我会得到自动完成菜单:
这是非常一致的行为。至少在处理以数字开头的文件名时,我最常注意到它。
所以问题是我能不能
A) 更改显示自动完成菜单所需的字符数或
B) 找到打开自动完成菜单的任何快捷方式(类似于 VS Code 中的 "Trigger Suggest" 命令)
你可以看到我的副本 init.vim
here.
编辑:
Yedhin 的回答针对的是方法 A),但它也会导致自动弹出菜单始终打开,说实话这很烦人。
为了解决项目 B),这是最理想的,我找到了 ncm2_manual_trigger
函数。所以理论上,通过在init.vim
中输入以下内容,您可以随时手动触发自动弹出。
let g:ncm2#auto_popup = 0
imap <C-a> <Plug>(ncm2_manual_trigger)
但是,如 this issue posted on the ncm2 repo 中所述,manual_trigger 仍然依赖于 ncm2#complete_length
参数来确定要显示的内容。如果自动触发器尚未触发弹出菜单,这将导致手动触发器不显示弹出菜单。我们现在只需要等待问题得到解决(在撰写本文时,根据问题上的 "my-next-task" 标签判断应该很快)。
尝试在你身上明确设置 init.vim :
let g:ncm2#complete_length=[[1,1],[7,2]]
所以这个值意味着优先级在 1 到 6 之间的源的值为 1,优先级 >=7 的源的值为 2。