chciałbym notować wyniki, kiedy uderzę:Jak wyświetlić listę wyników wyszukiwania Vima?
/example
tak, że widzę, gdzie wszystkie mecze są na raz.
chciałbym notować wyniki, kiedy uderzę:Jak wyświetlić listę wyników wyszukiwania Vima?
/example
tak, że widzę, gdzie wszystkie mecze są na raz.
" 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
Podświetli wszystkie mecze na żółto, co umożliwi łatwe zeskanowanie pliku w poszukiwaniu dopasowań. Że nie może być to, co chcesz, choć, po poszukiwaniach,: g // p daje wymienione mecze
powinno być ': set hlsearch' nie ': hlsearch'. –
Przydaje się również mapowanie ': nohl', aby wyczyścić najważniejsze momenty, gdy już ich nie potrzebujesz. – Kos
:g//p
W swojej dłuższej formie:
:global/regular-expression/print
można pominąć wzór/regex a Vim ponownie użyje poprzedniego wyszukiwanego hasła.
Ciekawostki: Narzędzie grep zostało nazwane po tej sekwencji poleceń.
Aby rozwinąć ten ... zamiast
/example
:g//p
można również pisać bezpośrednio
:g/example/p
lub, jak p (rukuj) jest akcja domyślna: G (skroniowe) komenda, można ją skrócić do
A zamiast p (rint), inne akcje są możliwe, np. kasować). Zobacz: help: globalne
Można również zrobić:
g/pattern/#
że będzie wydrukować wzór, który chcesz i numer linii.
+1 dla numerów linii. – iamnotmaynard
Niezły.Ale jeśli masz już włączone numery linii, "#" nie jest wymagane. Domyślnie pokazuje numery linii –
jeśli chcesz wyglądać na tej liście i skakać szybko pomiędzy meczami, należy rozważyć użycie
:vimgrep example %
lub
:grep example %
To będzie zapełnić „Lista błędów” ze wszystkimi wyników, aby można było użyć ich :copen
, aby wyświetlić je wszystkie w buforze quickfix, naciśnij klawisz Enter w konkretnej linii, aby przejść do tego dopasowania, lub użyj komend, takich jak :cn
i :cp
, aby przejść w tę iz powrotem.
do dokładnego wyjaśnienia, patrz my reply to a similar question
+1 dla możliwości nawigowania w wynikach wyszukiwania! –
Inną możliwością jest użycie zawierać polecenia wyszukiwania plików.
[I
Spowoduje to wyświetlenie wszystkich wystąpień słowa pod kursorem. Może to być jednak więcej, niż potrzebujesz, ponieważ przeszuka także wszystkie pliki zawarte w bieżącym pliku.
Ale miłą rzeczą w tym poleceniu jest to, że wyświetlacz wyników wyszukiwania pokazuje także liczbę dopasowań, oprócz numeru wiersza każdego meczu.
:help include-search
aby zobaczyć wiele wariantów.
Wzmiankę o
:g//p
ta może być zmniejszona do dalszego
:g//
ponieważ, jak mówili inni, p (rukuj) jest domyślne działanie.
Czy można uzyskać wynik z '[I' z kontekstem, jak na grep' --context 9'? –
Właśnie nauczyłem się nowego: Location List
!
Wpisz :lvim foo %
, aby wyszukać foo
w bieżącym pliku i wprowadź wszystkie dopasowania zawierające foo
do listy lokalizacji .
Wpisz :lopen
, aby otworzyć listę lokalizacji w oknie quickfix, w pełni nawigacyjnym.
Zastosowanie :lnext
/:lprevious
się do po liście (stosowanie tpope/bez utraty wartości mapowania dla najlepszych doświadczeń)
jest ustawienie, które ma domyślnie: lopen? – lkraav
Dobra wskazówka! To doprowadziło mnie do tego odwzorowania, które automatycznie rozszerza słowo pod kursorem i nie lopen w jednym cyklu: nnoremap
g/pattern
Jeśli masz :set number
, powyższe polecenie wyświetla numery linii, jak również.
Jeśli nie masz :set number
, następnie
g/pattern/#
wyświetla numery linii.
można uzyskać ładny quickfix
okno z meczów tworzą aktualną wyszukiwarki wzór
:vim // %
:copen
bardzo przydatne, jeśli uprzednio wykonane złożony wzorzec wyszukiwania przy użyciu tylko /pattern
Edit: Właśnie się dowiedziałem, działa to również dla wszystkich otwartych buforów
:bufdo vimgrepadd // %
:copen
Ctrl-F, aby wyświetlić wszystkie wyniki wyszukiwania:
nmap <C-f> :vimgrep /<C-r>//g %<CR> \| !:copen <Enter>
bardzo lubię swoją r5- F8 pomysłów. Byłoby miło mieć tutaj kilka wizualizacji/wyników tych poleceń. Jak działa F8? Przeszukuje tylko bieżący katalog? - - Pominięcie dir jest niestandardowe - - dlaczego 'node_modules'? - - W jaki sposób wyrażeń regularnych perla zmienia domyślne funkcjonowanie Vima? - - Oto, w jaki sposób zaprojektowałem moje wyszukiwanie plików .tex https://askubuntu.com/a/789769/25388 Byłoby miło uczyć się od ciebie, jak to poprawić. Nie jest to tak intuicyjne, że często też zapomniałem o logice. –
node_modules jest katalogiem zawierającym wiele kodu js z modułów npm, jeśli tworzysz front-endy ... to tylko przykład ... –
wykonaj kopię zapasową .vimrc i dodaj te ustawienia, załaduj je: więc%, a następnie spróbuj uruchomić polecenie "pomaga" w poleceniach ... vim jest trudne - trzeba powtarzać te tysiące razy, ale gdy je opanujesz, będziesz się śmiać @ Każdy, kto wskaże ich nowe funkcje interfejsu użytkownika interfejsu użytkownika. .. –