st-terminal / vim - Ultisnips: Como habilitar Ctrl + Enter como Enter no modo de inserção do vim? [fechadas]

1

Eu tenho um comportamento estranho do vim mas ele pode ser relacionado ao st-terminal que eu não posso fazer um Enter ou Ctrl + Enter para quebrar a linha atual em uma nova linha no modo inserir , como no exemplo abaixo:

Eu tenho uma linha no vim que se abre dentro do st-terminal:

This is a| test

| é a posição do cursor. Eu gostaria de dividir a linha em duas linhas diferentes usando Enter ou Ctrl + Enter mas eu não pude fazer isso; vim de alguma forma me impede de quebrar a linha.

This is a
test

Eu tenho configurações que podem mudar o comportamento do Enter do vim, essas configurações relacionadas ao plugin “UltiSnips”, como abaixo:

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>"

Pelo que entendi, o código acima pode travar Enter para quebrar a linha no modo de inserção. Mas não se importa com Ctrl + Enter .

UltiSnips possíveis bloqueados Digite no modo de inserção.

Eu tento instalar o xterm e faço uma tentativa; também não funciona.

Então, isso pode estar relacionado ao próprio sistema operacional? Eu não tenho ideia.

Eu uso o Arch Linux, st-terminal, xterm, o mais recente vim 8.1 / 1-374

EDIT: tentei remover o código acima em .vimrc , e Enter e Ctrl + Enter funcionam novamente.

Mas ainda preciso ativar o plug-in UltiSnips. Como eu posso fazer Ctrl + Entrar quebrar a linha? Não há problema em desativar Enter .

Eu suspeito que o possível st-terminal não separou Ctrl + Entre e Enter ; Ctrl + Enter retorna para Enter , ele pode ter sido configurado para os mesmos "códigos de teclas do terminal" ??

Eu encontrei uma solução: Eu comento esta linha para habilitar Enter

let g:UltiSnipsExpandTrigger="<enter>"
    
por Tuyen Pham 27.09.2018 / 04:00

1 resposta

1

Os aplicativos de terminal esperam bytes . Não existe um resultado predefinido para control + enter , e sua pergunta não contém as informações que mostram o que você espera que seja. Uma vez que você decida, você terá que modificar o código-fonte do st para enviar a sequência de bytes esperada . (Você poderia fazer o mesmo com o recurso de tradução do xterm).

    
por 27.09.2018 / 10:47