Ну, во-первых, в зависимости от того, что вы хотите, может быть более простой подход.\<\>
зависит от настройки iskeyword
, поэтому, если вы хотите изменить их, чтобы они всегда работали на СЛОВАХ, вы можете просто изменить эту настройку.Но если вы хотите использовать оба, это не сработает.
Вот самое короткое, что я могу придумать:
" \< for WORD
\S\@<!
" \> for WORD
\S\@!
Объяснение:
\S\@<!
\S
означает «непробельный символ», а \@<!
означает «Соответствует нулевой ширине, если предыдущий атом НЕ совпадает непосредственно перед тем, что следует».
\S\@!
\S\@!
НЕ сопровождается непробельным символом.
Использование этих lookaheads / lookbehinds более элегантнопотому что вам не нужно указывать начало / конец строки.
Есть ли способ определить мой собственный атом для этого?
К сожалению, не такЯ знаю.Вероятно, ваша лучшая ставка будет выглядеть примерно так:
cnoreabbrev <something> \S\@<!
cnoreabbrev <something> \S\@!
Стоит отметить, что они будут соответствовать пустым строкам, тогда как \<\>
- нет.Это то, что вы обменяете на короткое регулярное выражение.