Mapeio chave de escape para: q no vim no modo normal

0

Eu uso o vim como visualizador no comando midnight e quero ver e fechar rapidamente um arquivo. Como posso mapear a chave de escape para :q no modo normal para que o vim saia somente se nada for alterado?

    
por Oxy 01.05.2015 / 22:34

1 resposta

0

Para fazer isso apenas na sessão atual vim , digite os seguintes comandos (em vim ). (Espaços são adicionados para maior clareza. Não digite um espaço exceto onde eu indiquei Space .

:mapSpaceCtrl+VEscSpace:qCtrl+VEnterEnter

Para fazer isso apenas pelo resto da sessão atual do Terminal, digite os seguintes comandos (no Terminal; por exemplo, o shell). (Quebra de linha (s) são adicionadas para maior clareza. Digite o seguinte tudo em uma linha; não digite Enter exceto onde eu indiquei Enter .

E  X  I  N  I  T  =
"  :  m  a  p  Space  Ctrl+V  Esc  Space  :  q  Ctrl+V  Enter  "  Enter

e depois

export EXINITEnter

Para tornar as alterações "permanentes" (isto é, até você alterar os arquivos de volta), coloque os comandos acima (o EXINIT="…" e export EXINIT ) no seu .bash_profile e / ou .bashrc . (Você pode colocá-los juntos na mesma linha, separando-os com ; . Você pode encurtar isso combinando-os em export EXINIT="…" .) Isso não entrará em vigor até você fazer login novamente. ou possivelmente até você começar um novo shell, a menos que você apenas digite os comandos EXINIT ou source do arquivo no qual você coloca os comandos EXINIT .

Observação: se você não estiver usando o bash como seu shell principal, você pode precisar modificar o acima para o seu shell.

Como alternativa, tente colocar o comando :map … em seu arquivo .exrc .

Caso isso não seja óbvio,

:map string1 string2

(em vi / vim ) cria um mapeamento (tradução) para que, quando você digita string1 (no modo de comando), o editor age como se você tivesse digitado string2 . E Ctrl + V é o caractere de super escape que informa tanto vi / vim quanto o shell (na verdade, provavelmente todos programas, ou pelo menos a maioria deles) que o seguinte caractere deve ser interpretado como um caractere textual literal e não como um caractere de controle. Note que Ctrl + V seguido por Enter fornece um caractere de retorno de carro, que geralmente é exibido como ^M ; mas, em :map string2 , isso é interpretado como Enter .

    
por 01.05.2015 / 23:28