Usar ctrl + c em vez de esc para sair do modo de inserção quebra alguma coisa no vi?
15
Ao usar o vi, você pode sair do modo de inserção com Ctrl+ em Cvez do mais tradicional Esc. Existem situações em que seria indesejável usar o antigo em vez do último? Isso quebra alguma coisa que não seja a melhor prática?
É indesejável acertar o primeiro por acidente, o que gera um erro Type :quit<Enter> to exit Vime me fez procurar no Google como voltar. Bater icom você volta ao modo de inserção.
Noumenon
Respostas:
9
Ctrl-Ce Escnão são os mesmos na vi/ vimna maioria dos modos, incluindo o modo de inserção. A diferença é que Escdispara abreviações enquanto Ctrl-cnão. Se isso é importante para você, depende de você ou algum plug-in usado usar abreviações.
Note-se que é mais seguro para assumir Esce Ctrl-Cque não significam a mesma coisa em vim. Outro exemplo desse mesmo site é ao sair do modo de inserção de bloco (não no vi).
É bom saber, mas minha pergunta era sobre como sair do modo de inserção.
precisa saber é o seguinte
@MDMarra Doh, interpretou mal sua pergunta. O modo de inserção ainda é diferente: consulte a resposta atualizada.
jw013
1
Aqui está a diferença mais importante com a qual tive que lidar: a inserção de múltiplas linhas com o modo de bloco visual funciona com Esc e não com Cc.
enfascination
4
Eu acho que você quer dizer vim, não vi.
Isso realmente funciona vim, embora eu não o usaria a menos que tivesse 100% de certeza de que nunca tocaria em um sistema operacional não Linux. O motivo é que outros sistemas operacionais podem ter suas próprias implementações vi, que não implementam isso, e você pode achar que, ao executar vinessas plataformas, o Ctrl-C tem seu próprio comportamento tradicional: interrompa o processo e deixe seu terminal em um estado estranho .
Você pode apontar para qualquer viimplementação que ainda exista hoje que não seja compatível Ctrl-C? Veja minha resposta para a diferença real.
Jw013
2
Se você está se referindo vim, há uma pequena diferença. CTRL-Cnão verifica abreviações e não aciona o InsertLeaveevento. Então você ou plugins definiram quaisquer autocmdinstruções que dependem InsertLeave, elas não serão acionadas.
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish
abbreviation.
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the InsertLeave autocommand
event.
Você pode definir um mapeamento para CTRL-Ca <esc>, em seguida, ele irá acionar InsertLeave.
Type :quit<Enter> to exit Vim
e me fez procurar no Google como voltar. Bateri
com você volta ao modo de inserção.Respostas:
Ctrl-Ce Escnão são os mesmos na
vi
/vim
na maioria dos modos, incluindo o modo de inserção. A diferença é que Escdispara abreviações enquanto Ctrl-cnão. Se isso é importante para você, depende de você ou algum plug-in usado usar abreviações.Note-se que é mais seguro para assumir Esce Ctrl-Cque não significam a mesma coisa em
vim
. Outro exemplo desse mesmo site é ao sair do modo de inserção de bloco (não novi
).fonte
Eu acho que você quer dizer
vim
, nãovi
.Isso realmente funciona
vim
, embora eu não o usaria a menos que tivesse 100% de certeza de que nunca tocaria em um sistema operacional não Linux. O motivo é que outros sistemas operacionais podem ter suas próprias implementaçõesvi
, que não implementam isso, e você pode achar que, ao executarvi
nessas plataformas, o Ctrl-C tem seu próprio comportamento tradicional: interrompa o processo e deixe seu terminal em um estado estranho .fonte
vi
implementação que ainda exista hoje que não seja compatívelCtrl-C
? Veja minha resposta para a diferença real.Se você está se referindo
vim
, há uma pequena diferença.CTRL-C
não verifica abreviações e não aciona oInsertLeave
evento. Então você ou plugins definiram quaisquerautocmd
instruções que dependemInsertLeave
, elas não serão acionadas.Na documentação oficial http://vimhelp.appspot.com/insert.txt.html :
Você pode definir um mapeamento para
CTRL-C
a<esc>
, em seguida, ele irá acionarInsertLeave
.fonte