Como eu alterno entre os modos de comando e inserção no Vim?

87

Acabei de começar a usar o Vim como IDE. Eu estava usando-o como um editor de teste há um tempo, então não precisava ir para o modo de comando com muita frequência. Mas, como eu programo em Java, tenho que ir para o modo de comando para fazer o arquivo, compilá-lo / executá-lo ... etc.

O problema é: preciso de uma boa maneira de alternar entre os dois modos.

Procurei online e dizia que a <Esc>chave deveria fazer isso, mas não funciona para mim (talvez não seja para o gVim? Não sei por quê).

Tenho que pressionar CTRLOtodas as vezes para entrar no modo de comando; a tecla escape funciona nesse modo ... me traz de volta ao modo de inserção. Mas existe uma maneira melhor ou mais fácil de alternar entre o modo de comando e o modo de inserção?

Ravish Chawla
fonte
2
Esc é definitivamente a chave certa para terminar uma inserção. Uma inserção pode ser iniciada de várias maneiras. I minúsculo para começar a inserir no seu cursor, I maiúsculo para começar a inserir no início da linha, etc.
Vaughn Cato
Começando com um arquivo vazio, os seguintes caracteres devem fornecer um arquivo com a palavra "olá" nele: ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato
8
ctrl-[funciona como um substituto para Esc em muitos teclados.
Vaughn Cato

Respostas:

52

Parece que seu Vim foi iniciado no modo fácil . Veja :help easy.

Isso acontece quando o Vim é chamado com o -yargumento ou as evim, ou talvez você tenha :set insertmodealgum lugar em sua .vimrcconfiguração. Encontre a fonte e desative-a; temporariamente isso também pode ser feito via Ctrl+ O :set noim Enter.

Ingo Karkat
fonte
Eu acho que foi isso. Eu tinha o modo de inserção habilitado em meu arquivo. Depois de removê-lo, a chave de escape funciona perfeitamente. Obrigado!
Ravish Chawla
8
este é o modo fácil !?
Stachu
5
Modo fácil do Vim, agora isso é um oxímoro. É onde é possível sair do vim?
Davos
1
@Davos esse é o modo onde é iniciado no modo de inserção, então ironicamente é um modo onde não é possível sair do vim: p "modo normal" é muito mais fácil apenas alt + :, x XD
Fuseteam
115

Pressionar ESCsai do modo de inserção para o modo normal, onde você pode pressionar :para digitar um comando. Pressione inovamente para voltar ao modo de inserção e pronto.

Não sou um guru do Vim, então outra pessoa pode ser mais experiente e lhe dar outras opções.

Ricardo Souza
fonte
3
Para a maioria de nós, mas a resposta aceita tinha a resposta para o problema específico.
Saul Axel Martinez Ortiz
19

Isso foi mencionado em outras perguntas , mas ctrl + [é equivalente a ESCem todos os teclados.

Begolf123
fonte
Eu nunca soube disso, útil quando a chave de escape não é compatível
shuva
Uau, obrigado por essa informação! A cópia da sequência de teclas do Tmux agora faz muito mais sentido.
Thomas Legris
4

Usando jj

No meu caso, a _vimrcconfiguração .vimrc (ou no gVim está ) abaixo.

inoremap jj <Esc>   """ jj key is <Esc> setting
StarMomo
fonte
Este é um remapeamento comum. Acho que há um pequeno atraso enquanto aguarda a entrada de caracteres adicionais. Como alternativa, remapeie sua chave capslock para esc usando algo como KeyRemap4MacBook em um Macbook: github.com/tekezo/KeyRemap4MacBook
Koobz
achei mais fácil remapear a guia para esc: 3
Fuseteam
3

Vindo do emacs, descobri que gosto de ctrl +teclas para fazer coisas, e no vim descobri que ambos [ctrl + C]e [alt + backspace]entram no modo Normal a partir do modo de inserção. Você pode tentar e ver se algum desses funciona para você.

maxorcista
fonte
2

Para mim, o problema era que eu estava modo de gravação . Para sair do modo de gravação, pressione q. Então Escfuncionou conforme o esperado para mim.

Betontalpfa
fonte
1

Você pode usar Alt + H, J, K, L para mover o cursor no modo de inserção.

Khoi Hoang
fonte
1
Não, você não pode. Provavelmente é um remapeamento da sua configuração.
Saul Axel Martinez Ortiz
@SaulAxelMartinezOrtiz sim, você pode, embora tecnicamente saia do modo normal, após o qual você pode se mover no modo normal: p
Fuseteam
0

Há também mais uma solução para esse tipo de problema, que é bastante raro, eu acho, e você pode experimentar, se estiver usando o vim no OS X Sierra. Na verdade, é um problema com o botão Esc - não com o vim. Por exemplo, não consegui sair do vídeo em tela cheia no youtube usando Esc, mas convivi com isso por alguns meses até que tive o mesmo problema com o vim.

Eu encontrei essa solução. Se você é preguiçoso o suficiente para seguir o link externo, desligar o Siri e encerrar o processo no Activity Monitor ajudou.

oleandro
fonte