точное совпадение в regrex при использовании vim, man или less

при использовании vim, man или less, я хочу сделать точное совпадение в regrex

например, при использовании человека, я хочу проверить аргумент '-c'

если я использую

/'-c' 

совпадение может быть -cim -covert …… blabla

но я хочу только совместить '-c'

как выполнить точное сопоставление? благодаря!

2 Solutions collect form web for “точное совпадение в regrex при использовании vim, man или less”

Более короткое выражение vim, чтобы гарантировать, что символы не предшествуют или не следуют

 /\(^\|\s\)\@<=-c\> 

Человек / меньше эквивалент:

 /(^|\s)-c\b 

Дополнительное объяснение (Vim):

Вероятно, наиболее полезной частью регулярного выражения Vim является -c\> которая просто говорит «Ищите» -c ', но только если никакие буквы не появятся сразу после ». В большинстве случаев вы, возможно, избегаете просто искать с помощью /-c\> , но для полноты я включил выражение, чтобы проверить, что происходит до '-c'. Это выражение является \(^\|\s\)\@<= , что выглядит сложным только потому, что синтаксис регулярных выражений Vim является немного более подробным (в котором он требует, чтобы вы избегали группировки круглых скобок и «или»). Выражение \(^\|\s\) означает «начало строки или пробельный символ». Когда вы помещаете \@<= после этого, это означает: «На самом деле это не так, просто убедитесь, что оно доходит до следующей части регулярного выражения» (что действительно полезно для операций поиска и замены). Практически, вам, вероятно, не нужна часть \@<= . Вы можете сократить его дальше, опуская это и добавив \v , что говорит Vim, что вы не избежите причудливого синтаксиса. Это будет выглядеть как /\v(^|\s)-c> .

Объяснение человека / меньше эквивалента:

Гораздо проще. Для синтаксиса регулярного выражения, используемого less (который является основным пейджером по умолчанию), \b – это то же самое, что и Vim \> , и вам не нужно избегать круглых скобок или символа канала. Он просто ищет строку «-c», которая встречается в начале строки или сразу после символа пробела и гарантирует, что после нее не появятся другие буквы.

В vim используйте

 /\(^\|\s\)-c\($\|\s\) 

less :

 /(^|\s)-c($|\s\) 

Вы можете использовать границы isk и word в vim, но это также будет соответствовать другим вещам, которые могут быть параметрами; безопаснее явно искать пробелы.

  • Как вы отслеживаете, почему плагин Vim не работает?
  • Vim: поддержка мыши потеряна после использования netrw в xterm
  • Изменение цвета статусной линии в haskell-vim-now
  • GVim, скомпилированный из источника, открытого через SSH -X, не копирует пасту при выборе
  • Объединить zipfile: с scp: чтобы открыть удаленный zip с vim
  • привязка ключа режима vi только в обычном режиме
  • Каковы наилучшие инструменты программирования общего назначения в дополнение к Vim?
  • С crtl-p я могу открыть файл за пределами текущего дерева?
  • Карта охватывает esc для RHEL 5?
  • Неудовлетворенные зависимости
  • Насколько отличается Элвис от Вима?
  • Linux и Unix - лучшая ОС в мире.