Po wyszukaniu czegoś, jeśli trafisz na //
, wydaje się, że otrzymujesz następny wynik. Czym się różni od n
? Jak powinieneś go używać? Co pasuje do //e
i jakie są inne opcje dla //
?Jak działa polecenie wyszukiwania `//` w Vim?
Odpowiedz
komenda Poszukiwania ma następujący format:
/pattern/offset<cr>
Jeśli pattern
część jest pominięta, wyszukiwanie wygląda na ostatni wzór, który był poszukiwany. Jeśli przesunięcie zostanie pominięte, nie zostanie zastosowane żadne przesunięcie. Przesunięcie jest po prostu tym, co zrobić z kursorem po znalezieniu elementu pattern
.
Większość vi
użytkownicy są zaznajomieni z wariacji bez offsetowej, /pax<cr>
i powtarzania ostatniego wyszukiwania, /<cr>
, co jest równoznaczne z n
.
W swoich konkretnych przykładach //<cr>
jest taki sam jak /<cr>
i oznacza ponowne powtórzenie ostatniego wyszukiwania i nie stosuje przesunięcia.
Z drugiej strony, //e<cr>
oznacza powtórzenie ostatniego wyszukiwania i przesunięcie kursora na koniec znalezionego elementu. Przesunięcia są:
[num] [num] lines downwards, in column 1
+[num] [num] lines downwards, in column 1
-[num] [num] lines upwards, in column 1
e[+num] [num] characters to the right of the end of the match
e[-num] [num] characters to the left of the end of the match
s[+num] [num] characters to the right of the start of the match
s[-num] [num] characters to the left of the start of the match
b[+num] [num] identical to s[+num] above (mnemonic: begin)
b[-num] [num] identical to s[-num] above (mnemonic: begin)
;{pattern} perform another search, see |//;|
A plus lub minus bez num
wykorzystuje 1
.
Doskonała, solidna odpowiedź! Dzięki! – Chetan
//<CR>
oznacza powtórzyć wyszukiwanie ostatniego wzoru bez przesunięcia.
//e<CR>
oznacza powtórzyć wyszukiwanie ostatniego wzoru, ale wylądować na końcu meczu.
n
jest taka sama jak w /<CR>
że wykorzystuje ostatnio wzorzec i ostatniej offsetowego, jednak n
zachowuje ostatni kierunek podczas /
zawsze znajdzie następny mecz.
Aby uzyskać dokładne wyjaśnienie tych poleceń i ich opcji, zobacz :h last-pattern
i :h search-offset
.
Czy więc "//" rozpoczyna wyszukiwanie od góry pliku? – paxdiablo
Nie, to wyszukuje z miejsca, w którym się znajdujesz. –
Przesunięcie to (ogólnie) miejsce w pliku, zaczynając od góry. '//' powtórzy wyszukiwanie z miejsca, w którym się znajdujesz, podczas gdy 'n' powtórzy wyszukiwanie od miejsca ostatniego meczu. Nawiasem mówiąc, możesz użyć '//' również w poleceniach zastępczych i globalnych. Przydatne, jeśli masz do czynienia z wyjątkowo trudnym do wykonania dopasowaniem i chcesz go przetestować za pomocą zwykłego wyszukiwania. – Alligator
Jedną z ładnych funkcji //
jest to, że można z niego korzystać za pomocą polecenia s
. Jeśli więc najpierw wyszukujesz plik /Foo
, a następnie postanawiasz go zastąpić przez Bar
, możesz to zrobić bez powtarzania wzorca. Po prostu wykonaj: :%s//Bar/g
Oczywiście jest to o wiele bardziej przydatne, jeśli wzór jest nieco bardziej złożony.
- 1. Wyróżnianie wyszukiwania (hlsearch) nie działa w vim
- 2. Jak wyłączyć wbudowane polecenie w vim
- 3. Jak zmapować długie polecenie bash w vim?
- 4. Vim tekst wyszukiwania w folderze
- 5. Generic: polecenie Pythona w vim?
- 6. Jak pozbyć się wyróżnienia wyszukiwania w Vim
- 7. Czy easy_install udostępnia polecenie wyszukiwania?
- 8. Jak włączyć podświetlanie wyszukiwania ze skryptu vim?
- 9. vim: wyszukiwania i zamiany na „&”
- 10. VIM Przywróć ostatni wzór wyszukiwania
- 11. VIM, Uruchom polecenie na wielu plikach
- 12. Powróć do wyszukiwania znaków w vim?
- 13. LaTex: jak działa polecenie include?
- 14. vim: wieloznaczny grep nie działa w oknach
- 15. Jak automatycznie wykonać polecenie powłoki po zapisaniu pliku w Vim?
- 16. Jak działa funkcja wyszukiwania Pythona?
- 17. Komenda Vim "pokaż moje ostatnie polecenie"?
- 18. Jak usunąć linie wokół wzorca wyszukiwania w vim?
- 19. VIM: Jak wyłączyć podświetlenie wyszukiwania po upływie czasu (X sekund)?
- 20. Vim błąd E492: Nie polecenie Edytor: dd
- 21. Vim - Jak uruchomić polecenie trybu normalnego we wszystkich buforach?
- 22. Błąd Vim E492 - Nie polecenie edytora: PluginInstall
- 23. Vim zbiera polecenie Cscope zamiast ctags?
- 24. Vim: Proste polecenie "jump to file"?
- 25. vim-flake8 nie działa
- 26. Polecenie webpack nie działa
- 27. Polecenie ftp_nlist nie działa
- 28. Uruchom polecenie vim z linii poleceń
- 29. vim przyrostowe zatrzymanie wyszukiwania na końcu pliku
- 30. vim: autoindent nie działa
Najczęściej zadawane pytania mówią dość wyraźnie: "narzędzia programowe powszechnie używane przez programistów", więc nie sądzę, żeby to miało być zamknięte. Nie widzę wielu księgowych ani pracowników biurowych używających Vima :-) – paxdiablo
Haha, a także cały tag poświęcony Vimowi. – Chetan