Às vezes, no modo de inserção, eu bato <CR>
por engano e tenho que bater no backspace várias vezes (depende do recuo) para voltar aonde estava.
por exemplo
<div>
<p> This is some text []</p>
</div>
O cursor é []
e eu apertei <CR>
:
<div>
<p> This is some text
[]</p>
</div>
Agora eu tenho que pressionar backspace duas vezes para voltar à linha anterior (esse caso não é tão ruim, mas não tem muito recuo).
Você conhece uma maneira melhor de fazer?
insert-mode
nobe4
fonte
fonte
ctrl+w
duas vezes parece funcionar e ser muito fácilRespostas:
E se:
<C-o>
irá executar um comando no modo normal (:left 0
), que removerá todo o recuo, isso também colocará o cursor no início da linha.<BS>
você voltará para a última linha.Isto é um pouco como um "para trás
J
".Infelizmente, o mapeamento de Shift + Enter ou Ctrl + Enter não parece possível, então eu escolho
<C-\>
como estando "próximo ao enter".fonte
<C-u>
vez de<C-o>:left 0<CR>
?J
": Entãofoo<CR>bar<C-\>
, deixamos você comfoobar
. IMHO é mais útil, mas YMMV.<C-u>
(ou seja, i_CTRL-U ) deve ser o mesmo que<C-o>:left 0<CR>
.foo<CR>bar<C-u>
deixará você comfoo<CR>
(+ qualquer recuo automático que o Vim possa ter adicionado).<C-o>:left 0<CR>
sempre se comportará da mesma maneira, independentemente da posição do cursor.Eu tenho isso no meu
vimrc
, a segunda parte é relevante:O que isso faz: sempre que você pressionar
Enter
no modo de inserção, ele também "interromperá a sequência de desfazer, iniciará uma nova alteração" (consulteh: i_CTRL-G_u
). Isso significa que, se você acertarEnter
por engano, agora poderá desfazer sua alteração sem remover as linhas inseridas anteriores, comESC u a
ou comCtrl-o u
, conforme proposto pela Statox. Basicamente, cada linha pode ser desfeita separadamente.fonte
EDIT / UPDATE: Se você usar a emulação Vim no Emacs, também conhecido como modo maligno , poderá usar este pacote para obter um efeito semelhante.
fonte
<c-y>
se relaciona com o menu pop-up.Ctrl-y
no modo de inserção, a seleção pop-up atual será concluída e o mapeamento acima permitiráEnter
a conclusão também."<c-g>u<cr>"
por&paste ? "<cr>" : "<c-g>u<cr>"
, caso contrário, da próxima vez que você colar por engano 200 linhas de HTML, você se divertirá muito desfazendo-a. :)paste
estábackspace
opção está definida.O jeito que eu faço é Ctrl-wBackspace.
Ctrl-wpara excluir a última palavra (esqueci se isso é padrão ou não), e como são apenas espaços, isso me levará de volta ao início da linha. Então Backspaceme levará de volta à linha anterior onde eu estava.
fonte
Ctrl-w
uso no modo de inserção. Mas o Carpetsmoker ♦ ainda é mais rápido. Portanto, a ligação padrão de `Ctrl- \` não parece tão útil.:help i_CTRL-W
. E pressioná-lo duas vezes parece fazer o truque também?<C-u>
pode ser mais útil como ele apaga todos os personagens na nova linhaMinha saída é (no modo de inserção) UpCtrl-oJDel. Possivelmente não é a combinação mais eficiente, mas é o que estou fazendo sem precisar pensar nisso.
fonte