Я хотел бы искать все слова верхнего регистра в файле, но я понятия не имею, как это сделать (или, если возможно). Я нашел это решение здесь, в stackoverflow, но он не работает на vim.
Как искать все слова верхнего регистра в vim?
Ответ 1
Из командного режима, если у вас нет опции ignorecase
:
/\<[A-Z]\+\>
или
/\v<[A-Z]+>
Находит любую строку заглавных букв больше длины, окруженную границами слов. Вторая форма использует "очень-волшебную". :help magic
для деталей
Ответ 2
Самый короткий ответ: /\<\u\+\>
Ответ 3
Если вам нужен список всех совпадающих слов в верхнем регистре (т.е. вас не интересует переход от одного слова к другому), вы можете использовать:
echo filter(split(join(getline(1, '$'), ' '), '\v(\s|[[:punct:]])'), 'v:val =~ "\\v<\\u+>"')
С
-
getline(1, '$')
, который возвращает список всех строк из текущего буфера -
join(lines, ' ')
, который выравнивает этот список строк -
split(all_text, separators_regex)
, которые строят список текстовых элементов - и, наконец,
filter(words, uppercase-condition)
, который выбирает только слова верхнего регистра.