Na readline basha w trybie emacsa niedawno odkryłem funkcjonalność transpozycji , dającą mi możliwość szybkiego poprawienia literówki, takiej jak
dc dir
do
cd dir
naciskając CTRL+ Tna c
znak.
Czy w Vi / Vim jest coś podobnego, co pozwala mi zamieniać znaki i słowa?
normal-mode
k0pernikus
źródło
źródło
Odpowiedzi:
W przypadku znaków jest to dość proste:
xp
zamienić literę pod kursorem na następną literę iXp
zamienić literę pod kursorem na poprzednią literę.x
Polecenie usuwa znak pod kursorem, pozostawiając kursor na następnego znaku.X
Komenda kasuje znak przed kursorem, pozostawiając kursor na tym samym charakterze to było na.p
wstawia (wkleja) ostatnio usunięty lub ostatnio szarpany tekst tuż za bieżącą pozycją kursora. (P
umieszcza go tuż przed bieżącą pozycją kursora, więcxP
iXP
oba pozostawiają tekst taki, jaki był przed rozpoczęciem).Jeśli chodzi o zamianę słów, nie jestem pewien; może ktoś inny może na to odpowiedzieć. Możesz zbliżyć się do
dawwP
(lub odwzorować go, aby był krótszy), ale spowoduje to pęknięcie na kilku przypadkach krawędziowych, na przykład pod koniec linii.źródło
Odwzorowania zamiany słów dla języków łacińskich
Odwzorowania zamiany słów z wiki Vima nie będą działać poprawnie na słowach ze znakami akcentowanymi.
Odwzorowania te są przystosowane do pracy ze znakami (europejskimi) ISO / IEC_8859-1 Latin-1 Supplement . Odbywa się to przez zastąpienie wszystkich przypadków
\w
z[0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]
i wszystkich przypadków\_W
z\_[^0-9A-Za-zÀ-ÖØ-öø-ÿ_\-]
.Usuwanie podświetlenia wyszukiwania
Ponadto podświetlanie wyszukiwania jest usuwane w razie potrzeby. Osiąga się to poprzez dodanie
:nohlsearch<return>
na końcu każdego mapowania w razie potrzeby.Oto wynik końcowy:
źródło