括号在 vim 自定义键绑定中起什么作用?

What does the parenthesis do in the vim custom key bindings?

我在网上找到了以下键绑定,我正在尝试了解它们的工作原理。这里括号的作用是什么?

" Better nav for omnicomplete
inoremap <expr> <c-j> ("\<C-n>")
inoremap <expr> <c-k> ("\<C-p>")

那些括号是无关紧要的,前面的映射只是在插入时给予 Ctrl+jCtrl+n 相同的用法模式。后一种映射也类似。

因此,映射后Ctrl+j的作用取决于Ctrl+n的作用。例如,如果您 运行 Vim 没有任何自定义,即使用 vim -u NONE,这些组合键将执行 :help i_CTRL-N:help i_CTRL-P 中解释的操作。 (帮助页面中的前导 i_ 指的是 insert 模式。)

同样,您可以在 :help i_CTRL-J:help i_CTRL-K 中看到其他两个组合的作用。你会看到他们做完全不相关的事情。可能,您从中获取这些映射的用户更喜欢 jk 进行导航,而不是 np.