Angenommen, ich habe einen Text wie den folgenden.Ist es möglich, das n-te Vorkommen eines Musters mit n in vim zu markieren?
Der Mann geht, und der Mann isst.
Wie soll ich Substitution verwenden, um es in das folgende umzuwandeln?
Der Mann 1 geht, und der Mann 2 isst.
Ich weiß, ich :%s/\<man\>//gn
kann die Anzahl der Vorkommen des Wortes zählen man
und ich weiß /\%(\(pattern\).\{-}\)\{n - 1}\zs\1
die n-te Auftreten Muster finden. Aber wie markiere ich das n-te Vorkommen?
Jede Hilfe wird herzlichst geschätzt; Danke im Voraus.
Nur eine kleine Zugabe. Wenn Sie das nicht zu Ihrem vim-Skript hinzufügen wollen, dann sollten Sie wahrscheinlich globale Variablen verwenden, zB 'let g: count = 0' oder zumindest vars:' let b: count = 0'. Über den Variablen-Namespace können Sie ': help internal-variables' einlesen. –
Maya dies sollte wie folgt geändert werden:':% s/man \ zs \ ze/\ = '' .Count()/'. Danke, das ist eine große Hilfe für mich! – awllower
@awllower. Eigentlich wollte ich '\ zs' verwenden, aber in der Eile habe ich den anderen benutzt. Vielen Dank! –