Chciałbym wymienić mecze, kiedy trafię:
/example
aby zobaczyć, gdzie są wszystkie mecze naraz.
" put in your ~/.vimrc file
" START search related configs and helps
"
" ignore case when searching
set ignorecase
" search as characters are entered, as you type in more characters, the search is refined
set incsearch
" highlight matches, in normal mode try typing * or even g* when cursor on string
set hlsearch
" yank those cheat commands, in normal mode type q: than p to paste in the opened cmdline
" how-to search for a string recursively
" :grep! "\<doLogErrorMsg\>" . -r
"
" how-to search recursively , omit log and git files
" :vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`
" :vimgrep /srch/ `find . -type f -name '*.pm' -o -name '*.pl'`
"
" how-to search for the "srch" from the current dir recursively in the shell
" vim -c ':vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`'
"
" how-to highlight the after the search the searchable string
" in normmal mode press g* when the cursor is on a matched string
" how-to jump between the search matches - open the quick fix window by
" :copen 22
" how-to to close the quick fix window
" :ccl
" F5 will find the next occurrence after vimgrep
map <F5> :cp!<CR>
" F6 will find the previous occurrence after vimgrep
map <F6> :cn!<CR>
" F8 search for word under the cursor recursively , :copen , to close -> :ccl
nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
" omit a dir from all searches to perform globally
set wildignore+=**/node_modules/**
" use perl regexes - src: http://andrewradev.com/2011/05/08/vim-regexes/
noremap / /\v
"
" STOP search related configs and helps
node_modules
? - - Jak wyrażenia regularne perla zmieniają domyślne działanie Vima? - - Oto jak zaprojektowałem moje wyszukiwanie plików .tex askubuntu.com/a/789769/25388 Byłoby miło nauczyć się od Ciebie, jak to ulepszyć. Nie jest to zbyt intuicyjne, więc często zapominałem o logice.W dłuższej formie:
Możesz pominąć wzorzec / wyrażenie regularne, a Vim ponownie użyje poprzedniego wyszukiwanego hasła.
Ciekawostki: grep narzędzie zostało nazwane po tej sekwencji poleceń.
źródło
:g//
- ponieważ p (rint) jest akcją domyślną, możesz ją również pominąć.:g/
jest jeszcze krótsza!--context 9
?:%s/regular-expression//gn
It wyprodukuje coś takiego:X matches on Y lines
Możesz również wykonać:
g/pattern/#
który wydrukuje wybrany wzór i numer linii.
źródło
#
nie jest to wymagane. Domyślnie pokazuje numery liniijeśli chcesz przejrzeć tę listę i szybko przeskakiwać między dopasowaniami, rozważ użycie
:vimgrep example %
lub
:grep example %
Spowoduje to zapełnienie „listy błędów” wszystkimi dopasowaniami, dzięki czemu będzie można
:copen
wyświetlić je wszystkie w buforze quickfix, nacisnąć klawisz Enter w określonej linii, aby przejść do tego dopasowania, lub użyć poleceń takich jak:cn
i,:cp
aby przejść tam iz powrotem.szczegółowe wyjaśnienie znajduje się w mojej odpowiedzi na podobne pytanie
źródło
E499: Empty file name for '%' or '#', only works with ":p:h"
MacVim 8.1Właśnie nauczyłem się nowego
Location List
:!Wpisz,
:lvim foo %
aby wyszukaćfoo
w bieżącym pliku, i wprowadź wszystkie dopasowania zawierającefoo
na liście lokalizacji .Wpisz,
:lopen
aby otworzyć listę lokalizacji w oknie quickfix, po którym jak zwykle można w pełni nawigować.Użyj
:lnext
/:lprevious
to, aby przejrzeć listę (użyj tpope / unimpaired mapping, aby uzyskać najlepsze wrażenia)źródło
Inną możliwością jest użycie poleceń dołączania wyszukiwania plików.
Spowoduje to wyświetlenie wszystkich wystąpień słowa pod kursorem. Może to być jednak więcej niż potrzebujesz, ponieważ przeszuka również wszystkie pliki zawarte w bieżącym pliku.
Ale fajną rzeczą w tym poleceniu jest to, że ekran wyników wyszukiwania pokazuje również liczbę dopasowań, oprócz numeru wiersza każdego dopasowania.
aby zobaczyć wiele wariantów.
Uwaga o
Można to dalej zredukować do
ponieważ, jak powiedzieli inni, p (rint) jest akcją domyślną.
źródło
[I
z kontekstem, jak na grep--context 9
?możesz otrzymać ładne
quickfix
okno z dopasowaniami z twojego aktualnego wzorca wyszukiwaniabardzo przydatne, jeśli wcześniej utworzyłeś złożony wzorzec wyszukiwania przy użyciu tylko
/pattern
Edycja : właśnie dowiedziałem się, że działa to również dla wszystkich otwartych buforów
źródło
Użycie
:set hlsearch
podświetli wszystkie dopasowania na żółto, umożliwiając łatwe skanowanie pliku w poszukiwaniu dopasowań. Może to jednak nie być to, czego chcesz, po wyszukaniu: g // p wyświetli listę dopasowańźródło
:nohl
aby usunąć najciekawsze miejsca, gdy już ich nie potrzebujesz.Aby rozwinąć to ... zamiast
możesz też pisać bezpośrednio
lub, ponieważ p (rint) jest domyślną akcją dla polecenia: g (lobal), można to skrócić do
I zamiast p (rint) możliwe są inne akcje, np. D (elete). Zobacz: help: global
źródło
Jeśli masz
:set number
, powyższe polecenie wyświetla również numery linii.Jeśli nie
:set number
, towyświetli numery linii.
źródło
Napisałem do tego kawałek kodu. W rzeczywistości unika problemów w
vimgrep
. Działa nawet z nienazwanymi plikami. I jest łatwiejszy w użyciu.Kiedy nazywasz to wzorem, otwiera okna lokalizacji ze wszystkimi dopasowaniami.
To może być rozkaz
Wszystko, co musisz zrobić, to wpisać
:Mat pattern
Używam również następującego mapowania, aby uzyskać dopasowania do bieżącego wyboru wizualnego.
źródło
Ctrl-f, aby wyświetlić wszystkie wyniki wyszukiwania:
źródło