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.

  1. mv ~/Downloads/less-563 ~/bin && cd ~/bin
  2. ⏹️ sh configure --with-regex=pcre2, 发现没有pcre2
  3. brew install pcre2
  4. sh configure --with-regex=pcre2
  5. make
  6. 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).有点爽!

posted @ 2021-01-24 09:59  Tokubara  阅读(153)  评论(0编辑  收藏  举报