Często muszę wkleić coś do kilku sąsiednich linii, w tej samej lub podobnej pozycji. Boli, gdy trzeba przesuwać kursor z powrotem na początek wklejonej zawartości za każdym razem, kiedy przechodzimy do następnej linii. Jak mogę wkleić (jak w poleceniu "p") bez przesuwania kursora? Lub, jak mogę szybko przywrócić kursor do miejsca, w którym znajdował się przed wklejeniem?Wklej w Vimie bez przesuwania kursora
Odpowiedz
Najbezpieczniej bez niszczenia rejestr jest wykonanie następujących czynności:
p`[
Jeśli chcesz utworzyć skrót, wystarczy użyć dowolnej funkcji Vima Mapa które są odpowiednie dla Ciebie, np
noremap p p`[
"K"? (jak na strzałce w górę)
Jeśli użyjesz "p" do wklejenia tekstu poniżej bieżącego wiersza, kursor znajdzie się w pierwszym wierszu wklejonej treści. Wpisanie "k" w trybie poleceń powoduje przejście do linii nad początkiem wklejanej treści.
Ilekroć mam kilka kroków do powtórzenia kilku razy, nagrywam makro, które jest banalnie łatwe w Vimie. Ogólną metodą jest
- Ustaw kursor w miejscu, w którym chcesz dokonać pierwszej zmiany.
- Wpisz qx, aby rozpocząć nagrywanie naciśnięć klawiszy.
- Dokonaj pierwszej edycji.
- Przenieś kursor do miejsca, w którym powinna rozpocząć się druga edycja.
- Naciśnij ponownie przycisk q, aby opuścić nagrywanie.
- Wpisz @, aby odtworzyć makro i dokonać kolejnej edycji. Polecenie @ przyjmuje liczbę, dzięki czemu możesz powtórzyć edycję tyle razy, ile chcesz, za pomocą jednego polecenia.
Więc w twoim przypadku, cała sekwencja klawiszy Aby nagrać makro może być
qxp`[jq
i [email protected]
odtworzyć go pięć razy w sumie 6 zmian.
Należy zauważyć, że znak po pierwszym znaku q jest rejestrem, w którym zapisywane jest makro i może to być dowolna litera, a nie tylko x. Tylko uważaj, że twoje makra nie szarpią tekstu do rejestru, w którym obecnie się nagrywa, powoduje to prawdziwy bałagan!
Makra mogą być dowolnie długie i złożone. Mogą zawierać polecenia trybu Ex, a nawet wywoływać inne makra.
To wspaniałe wyjaśnienie, dziękuję. Będę eksperymentować z tym. – aehlke
Czy możesz rozwinąć ten bit -> "Po prostu bądź ostrożny, twoje makra nie szarpią tekstu do rejestru, który obecnie rejestruje"? Dzięki –
Możesz szybko wrócić do miejsca, w którym wcześniej wkleiłeś, naciskając CTRL-o. Powoduje to przejście do poprzedniej pozycji kursora.
Wklejam linie z całego dużego dokumentu do jednego z 3 znaków (poruszam się po liniach, aby znaleźć się pod nagłówkiem). Najszybszy sposób znalazłem to:
'ap
następnie CTRL-O
- 1. Podkreśl wzór wyszukiwania bez poruszającego się kursora
- 2. Wklej wielo-liniowy ciąg na gVim w pozycji kursora
- 3. Jak usunąć zaznaczenie tekstu w oknie zmiany nazwy bez przesuwania kursora z klawiaturą, w IntelliJ IDEA
- 4. Wysublimowany tekst 2: Jak przesuwać stronę w górę/w dół bez przesuwania kursora
- 5. IntelliJ, wyłączanie przesuwania kursora po skomentowaniu linii za pomocą skrótu?
- 6. macOS Sierra - Sposób przesuwania kursora przy naciśniętym klawiszu strzałki
- 7. Bash CTRL do przesuwania kursora pomiędzy słowami/ciągami znaków
- 8. Sortowalne przeciąganie i upuszczanie Jquery nie wyświetlające kursora "przesuwania"
- 9. Pozycja myszy jQuery na mousedown() bez przesuwania myszy()
- 10. Przycisk Bootstrap - bez kursora ręcznego
- 11. Obracanie kursora bez użycia WinForms
- 12. Wklej bez formatowania tekstu sformatowanego do EditText
- 13. Iterowanie bez użycia kursora w MYSQL
- 14. Zapisywanie często używanych wzorów regex w Vimie?
- 15. podciągu, Pad i wklej Kolumny w Dataframe bez Loop
- 16. Vim: Zwiększanie szybkości przesuwania dokumentu
- 17. Przeniesienie kursora programowego w UiTextField
- 18. Wklej wielowierszowy w jshell
- 19. Zastąpić Wklej w TextBox
- 20. Przejdź do następnego słowa w Vimie bez używania wyszukiwania
- 21. Wiersz po wierszu (bez kursora lub pętli)
- 22. Android Numer Picker bez migającego kursora
- 23. najdłuższa linia w vimie?
- 24. Autoindentowanie Haskella w Vimie
- 25. Jak przerwać linię w vimie w trybie normalnym?
- 26. Delphi: Czy istnieje sposób dostępu do rekordów w TClientDataset oprócz przesuwania kursora
- 27. Klawisze ze strzałkami w Putty powracające^[[A^[[D^[[B zamiast przesuwania kursora
- 28. Wklej wynik polecenia Tee
- 29. Modyfikuj tekst w contenteditable div bez ponownego ustawiania pozycji kursora (kursora)
- 30. kształt kursora urxvt ustawiony na |
Czy istnieje sposób, aby bezpiecznie korzystać z więcej znaków, tak aby nie zniszczyć coś, co zdarzy się w tym rejestrze? Może jakiś inny rejestr, który normalnie nie jest używany - nie jestem pewien, co jest dostępne lub zwyczajowe. – aehlke
Przepraszam, w moim komentarzu miałem na myśli, że chciałbym zapisać to jako zaprogramowane polecenie, żeby było mniej pisać. – aehlke
Zobacz poprawioną odpowiedź. – carl