mac上的less使用扩展正则表达式比如\b
less
我的问题是less用不了一些正则表达式的扩展功能, 比如word boundary. 对此我感到很困惑, 因为man less说, 它用的是system regex library, 但查看man 7 re_format
, 发现ENHANCED FEATURES
中是支持\b
也支持\<
, 但是我用less两个都用不了. 我怀疑是less源码中没有用enhanced选项. 正在我一筹莫展(实际上是怀疑自己没事找事的合理性)的时候, 我决定用源码安装试试看. 发现果然可以设置regular expression library.
mv ~/Downloads/less-563 ~/bin && cd ~/bin
- ⏹️
sh configure --with-regex=pcre2
, 发现没有pcre2 brew install pcre2
sh configure --with-regex=pcre2
make
make install
安装完成, 查看which less
, 发现已是/usr/local/bin/less
. less某个文件, 发现\b
也可以使用了.
设置man的pager为新安装的less
但是man默认的pager还是less, 怎么办? echo "export MANPAGER=/usr/local/bin/less" >> ~/.bash_profile
. 发现man less
就可以用\b
了.
这个功能有多实用呢? 比如我看到set --
, 我想知道set的--
选项是干啥的. 当然这件事用web查也挺快的, 但在man page中, 众所周知, --
经常用于长命令, 因此无关结果会非常多. 我就可以这样查: (?!\w)--(?!\w)
.有点爽!