Na linha de leitura do bash no modo emacs, descobri recentemente a funcionalidade de transposição , dando-me a oportunidade de corrigir rapidamente um erro de digitação como
dc dir
para
cd dir
pressionando CTRL+ Tno c
caractere.
Existe algo semelhante no Vi / Vim que me permite trocar caracteres e palavras?
normal-mode
k0pernikus
fonte
fonte
Respostas:
Para caracteres, é bastante simples:
xp
trocar a letra sob o cursor pela letra a seguir eXp
trocar a letra sob o cursor pela letra anterior.O
x
comando exclui o caractere abaixo do cursor, deixando o cursor no próximo caractere. OX
comando exclui o caractere logo antes do cursor, deixando o cursor no mesmo caractere em que estava.p
coloca (cola) o último texto excluído ou último arrancado logo após a posição atual do cursor. (P
coloca-o imediatamente antes da posição atual do cursor, portanto,xP
eXP
ambos deixam o texto como estava antes de você começar.)Para trocar palavras, não tenho certeza; talvez alguém possa responder isso. Você pode se aproximar
dawwP
(ou remapear para ser mais curto), mas isso será interrompido em vários casos extremos, por exemplo, perto do final de uma linha.fonte
Mapeamentos de troca de palavras para idiomas latinos
Os mapeamentos de troca de palavras do wiki do Vim não funcionarão corretamente em palavras com caracteres acentuados.
Esses mapeamentos são adaptados para trabalhar com caracteres (europeus) ISO / IEC_8859-1 Suplemento latino-1 . Isso é feito substituindo todas as instâncias de
\w
com[0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]
e todas as instâncias de\_W
com\_[^0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]
.Compensação do destaque da pesquisa
Além disso, o realce da pesquisa é limpo quando necessário. Isso é obtido adicionando
:nohlsearch<return>
ao final de cada mapeamento, quando necessário.Aqui está o resultado final:
fonte