2009-03-27 4 views
1

Ich benutze Vim, um Manpages zu lesen. Aber ich habe Probleme bei der Suche nach Variablen. Zum Beispiel verwende ich:So finden Sie '-s' in einer vim Suche

/\<-s\> 

für die Suche nach "-s", aber es findet nichts. Grrr. Ich sehe es in der Datei. Was mache ich falsch?

Antwort

8

\< entspricht dem Anfang eines Wortes, und - normalerweise wird nicht als ein Wort Zeichen betrachtet. Machen Sie :set iskeyword?, um zu sehen, welche Zeichen als Wortzeichen gelten.

Try this:

:set iskeyword+=- 
/\<-s\> 

dann sollte funktionieren. Siehe :h /\< und :h 'iskeyword'.

+1

Brian ist der einzige Mann, der die Emacs vs. vim Debatte beantworten sollte. – ojblass

2

/-s funktioniert gut für mich.

+0

auch Das Problem ist, ich es wort begrenzt werden soll. Es gibt viele Strings. – Leonard

+0

": set hi" und "nnnnnnnnn ..." sind deine Freunde. Ich meine ernsthaft, wie viele "-s" wirst du sehen? Einhundert? –

+0

Obwohl auf den zweiten Gedanken ... Es ist schön zu wissen, * warum * die von Ihnen gepostete Regex hat nicht funktioniert. Danke Brian. –

0

Suchen Sie, wo die man-Seite die Funktion von -s beschreibt? Verwenden Sie ^\s*-s\>, um nach Zeilenanfang, einer beliebigen Anzahl von Leerzeichen und dann nach Ihrer Flagge zu suchen.

Andernfalls, wenn Sie nicht Ihre iskeyword ändern möchten, dann könnten Sie verschiedene Regex für Ihr Trennzeichen versuchen. Sie könnten \s-s\> verwenden, obwohl dies nicht "-s" (in Anführungszeichen) findet.

Siehe :help pattern-overview

Verwandte Themen