2010-02-04 8 views
19

Czy istnieje prosty sposób na zapisanie często używanego wzoru Regex, aby móc go ponownie wykorzystać w różnych plikach? Przeglądam wiele plików dziennika i zawsze potrzebuję stworzyć łagodnie złożone wyrażenie (to nie jest nauka rakietowa, ale jest to trudny do powtórzenia), aby znaleźć błędy, więc dobrze byłoby mieć sposób na przypomnienie, bez konieczności zapisywania go w tekście plik i wklej go do wyszukiwanych parametrów za każdym razem.Zapisywanie często używanych wzorów regex w Vimie?

Odpowiedz

2

Wystarczy nacisnąć /, a następnie strzałkę w górę.

Lub utwórz polecenia wywołujące wyszukiwanie regexp.

:command -nargs=0 Errors vimgrep "Error\s*regexp" % | cw 15 

a potem po prostu

:Errors 
+0

Przyszedłem tutaj, szukając sposobu na przywołanie poprzednich wzorców wyszukiwania. Czasem szukam wielokrotnie dla danego wzoru, przerywanego przez szukanie innego wzoru, a ponowne wpisywanie oryginalnego wzoru jest denerwujące. Nie wiedziałem, że możesz uzyskać dostęp do historii za pomocą strzałek w górę i w dół. (Ctrl-P i Ctrl-N również działają.) Dzięki! –

2

Jeśli zacząłeś wpisując komendę w vim, w tym wyszukiwania lub wymienić, naciskając przycisk „w górę” należy szukać w historii do ostatnio używanych poleceń z ten sam prefiks.

3

Istnieje kilka sposobów:

  • utworzyć odwzorowanie, że robi to, co chcesz i dodać go do .vimrc, np: map /foo /[long complicated regex]. Ale pamiętaj, że utrudni to wyszukanie literalnego ciągu znaków "foo", choć można tego dokonać za pomocą poleceń Ctrl-V. Innym sposobem jest użycie innego prefiksu dla niestandardowych wyszukiwań wyrażenia regularnego, np. map ::foo /[complicated regex].
  • Utwórz funkcję, która wykonuje szukanie regex, które chcesz i dodaj do swojej .vimrc.
  • Niektóre kombinacja wyżej
14

Put:

source ~/.regexlist.vim 

do swojego vimrc.

Wykonaj wyszukiwanie. Zdecyduj, że możesz chcieć użyć tego jeszcze raz. Wpisz to dosłownie:

:sp ~/.regexlist.vim<CR> 
olet MyRegExName = '<C-R>/'<ESC> 
:w<CR> 
:so %<CR> 
:q<CR> 

Gdzie <C-R> jest CtrlR, <CR> jest ENTER i <ESC> jest ESC.

Następnym razem chcesz go używać:

/<C-R>=MyRegExName<CR><CR> 

Ctrl-R jest twoim przyjacielem! Ctrl-R a następnie/podciąga ostatnie wyszukiwanie. Ctrl-R, a następnie = pozwala wprowadzić wyrażenie.

0

Utwórz plik, w którym masz zamiar przechowywać wzory regex i pozostaw to otwarte w oddzielnej karcie lub oknie podczas przeglądania plików dziennika.

Aby dodać wzorzec wyszukiwania, które po prostu używany do pliku, wpisz dosłownie:

o<CTRL-R>/ 

Kiedy trzeba użyć wzorca z listy, przejdź do tej linii i wpisać dosłownie:

yyq/p<CR> 

Następnie można przełączać karty/okna, a następnie nacisnąć n lub N, aby wyszukać.