Desativar Ctrl-Z no modo normal

9

Se eu pressionar Ctrlzno modo normal, o meu gVim será "minimizado" ou no vim (não no gVim) ele voltará ao shell.

Eu quero desativar esse recurso, mas

  • Não consigo remover o mapeamento Ctrlz: unmap <c-z>retornano such mapping
  • Não há opção chamada suspend, permitindo que eu use unset suspend.

Eu fiz, :help suspendmas o documento não menciona nada sobre como desativar "suspender".

x3usph1s
fonte

Respostas:

14

Portanto, há várias coisas que você precisa entender:

Em primeiro lugar você não pode usar :unset suspende isso é normal. Suspensão Vim não é controlado por uma opção (que você poderia desactivado), mas por um comando: :suspend. Vejo:h :suspend

Em segundo lugar, você deseja desativar a suspensão acionada por ctrlz. Este é um comando interno, portanto, você não pode "remover o mapeamento" dessa combinação de teclas. Os únicos mapeamentos que você pode remover o mapeamento são aqueles que você (ou um plug-in) criou com um comando :map <key> <action>.

O que você pode fazer é dizer ao Vim "Quando eu pressionar ctrlz, não faça nada em vez de suspender como você costuma fazer".

Isto é o que este comando faz:

nnoremap <c-z> <nop>

Você pode entender assim:

n                      Do the following mapping only in normal mode
 nore                  Don't make it recursive (This is not necessary here but strongly recommended in all your mappings)
     map               Create a mapping
         <c-z>         The keys that you want to remap
               <nop>   This is the short for "no operation" i.e. Do nothing

Você pode adicionar a linha ao seu vimrc ou simplesmente digitar a linha de comando do vim, :nnoremap <c-z> <nop>para que o mapeamento exista apenas na sessão atual.

Veja :h <nop>.

statox
fonte
Eu estava usando o neovim em janelas com cmder, o hábito de ctrl + z'ing fez o neovim se suspender, mas como não há controle de trabalho, não pude voltar ao neovim. Portanto, toda vez que isso é acionado, eu tenho que interromper o processo. Remover o mapeamento da suspensão fez o truque!
Steven Huang
2

Você pode mapear Ctrlzpara o que quiser no gVim. Você não precisa primeiro remover o mapeamento.

De fato, o mswin.vimque vem com o pacote gVim, já o mapeia para desfazer assim:
noremap <C-Z> u

Gregory Shields
fonte