Vim: сопоставление пробелов в конце строки, но не строк, состоящих из одного пробела - PullRequest
4 голосов
/ 30 октября 2011

Я понимаю, что в vim я могу выделить конечные пробелы в конце строки, используя

match /\s\+$/

Теперь я хотел бы исключить те строки, которые содержат ровно один пробел, из сопоставляемых. Как мне это сделать? (Это не обязательно должна быть одна строка / регулярное выражение.)

Ответы [ 2 ]

2 голосов
/ 30 октября 2011

match /\(\S\zs\s\+$\)\|\(^\s\{2,}$\)/

Это должно сработать - разбить его на 2 части

Часть 1 - поиск пробелов в конце строки, в которой есть другие элементы: \(\S\zs\s\+$\)
не пробел \S,
затем начните сопоставлять \zs,
1 или более пробелов в конце строки \s\+$

ИЛИ соответствует \|

Часть 2. Поиск нескольких пробелов, которые составляют всю строку: \(^\s\{2,}$\)
начало в начале строки ^
поиск не менее 2 пробелов \s\{2,}
в конце строки $

1 голос
/ 30 октября 2011

Это соответствует всем строкам, которые содержат более одного пробела, исключая строки, содержащие один пробел.

match /\s\s\+$/
...