st-terminal / vim - Ultisnips:如何在 vim 的插入模式下启用 Ctrl+Enter 作为 Enter?

st-terminal / vim - Ultisnips:如何在 vim 的插入模式下启用 Ctrl+Enter 作为 Enter?

我得到了 vim 的奇怪行为,但这可能与 st-terminal 有关,我无法使用Enteror Ctrl+Enter将当前行分成新行插入模式,如下例所示:

我在 vim 中有一行在 st-terminal 中打开:

This is a| test

|是光标的位置。我想使用Enteror Ctrl+将行分成两行Enter,但我不能这样做; vim 以某种方式阻止我断线。

This is a
test

我的设置可能会改变Entervim 的行为,这些设置与“UltiSnips”插件相关,如下所示:

inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<cr>"
inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>"

let g:UltiSnipsExpandTrigger="<enter>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"

据我了解,上面的代码可能会Enter在插入模式下锁定断行。但不关心Ctrl+ Enter

UltiSnips 可能锁定Enter在插入模式下。

我尝试安装xterm并尝试;它也不起作用。

那么这可能与操作系统本身有关?我不知道。

我使用 Arch Linux、st-terminal、xterm、最新的 vim 8.1 / 1-374

.vimrc编辑:我尝试删除、 和Enter+Ctrl中的上述代码Enter再次工作。

但我仍然需要启用 UltiSnips 插件。我该如何制作Ctrl+Enter打破这条线?禁用就可以了Enter

我怀疑可能的 st 终端没有分开Ctrl+EnterEnter;  Ctrl+Enter回落到Enter,它实际上可能已设置为相同的“终端键码”?


我找到了一个解决方案:我注释掉这一行以启用回来Enter

let g:UltiSnipsExpandTrigger="<enter>"

答案1

终端应用期望字节control+没有预定义的结果enter,并且您的问题不包含显示您期望的信息。一旦决定,就必须修改st的源代码发送预期的字节序列。 (您可以对 xterm 的翻译资源执行相同的操作)。

相关内容