Jeśli nie masz nic przeciwko naciśnięciu innej kombinacji niż cw, wtedy uważam, że możesz łatwo uzyskać to, czego chcesz, definiując skrót. Co możesz zrobić, to umieścić następujące
nmap <leader>a "1yiw:let @/=@1^Mciw
w twoim .vimrcpliku. Zauważ, że ^M jest to przechwycenie klucza powrotu, a nie znaków ^i M. Możesz to zrobić, naciskając Ctrl+ Vw trybie wstawiania, a następnie Enter. Teraz, po zdefiniowaniu tego, naciśnięcie <leader>abędzie działało tak samo, jak cwteraz, ale teraz słowo (przed zmianą) będzie w twoim „rejestrze ostatniego wyszukiwania” (to znaczy /rejestrze), więc naciśnij npo dokonaniu zmiany i zwróceniu do trybu normalnego przeniesie Cię do następnego wystąpienia. Podobnie naciśnięcie Nspowoduje przejście do poprzedniego wystąpienia.
Skrót Możesz oczywiście wybrać inny skrót niż <leader>a, ale uważam, że jest to bardzo dostępny skrót. Osobiście mam ustawione <leader>na ,tak, że wystarczy nacisnąć ,a następnie a, ale to dlatego, że nie używam amerykańską klawiaturę, tak, że mój \jest ukryty nieco (wierzę \jest domyślnym <leader>).
Wyjaśnienie Pomysł jest naprawdę prosty. Podciągnij słowo pod kursorem do rejestru wyszukiwania, /a następnie wykonaj cw. Tak nmap <leader>a "/yciwwłaśnie dążyłem, ale niestety nie sądzę, że można szarpać do rejestru wyszukiwania, więc obejście polega na szarpnięciu słowa pod kursorem do 1rejestru, a następnie ustawieniu /rejestru tak, a następnie cw. Podobnie "1yiwczęść, która podciąga wewnętrzne słowo pod kursorem do rejestru 1. Jeśli nie wiesz o wewnętrznych słowach, możesz to sprawdzić :help iw. Następnie :let @/=@1przechwytywanie Enterumieszcza zawartość 1rejestru w /. W tym momencie niNdziała jako następne i poprzednie wystąpienie słowa pod kursorem, a następnie ciwjest wykonywane tak, że słowo pod kursorem jest usuwane, a Vim przechodzi w tryb wstawiania.
słowo kontra słowo wewnętrzne Właśnie zdałem sobie sprawę, że założyłem, że chcesz całe słowo pod curser, a nie tylko od curser i dalej. Dlatego użyłem iwzamiast wwszędzie. Jeśli tak nie jest, powinieneś użyć
nmap <leader>a "1yw:let @/=@1^Mcw
zamiast. Jeśli kursor znajduje się na pierwszej literze słowa, nie ma różnicy.
disclaimer Rozwiązanie to prawdopodobnie nie będzie działać dobrze, jeśli starają się używać go na coś, co zawiera rzeczy różni się od liter, na przykład poprzez podstawkę kursora na \lub przez zastąpienie iwprzez iW, ib, islub ipczy coś (choć nie wiem dlaczego byś chcesz tę funkcję z całymi zdaniami)
*wyszukiwanie. Zwłaszcza sprawia, że*wizualnie wybiera bieżące słowo bez poruszania kursorem. Po zainstalowaniu możesz zrobić,*ciwaby umieścić stare słowo w rejestrze wyszukiwania i zmienić słowo. Następnie możesz użyćni..