如何将man手册中的U+2010连字符转换为U+002D连字符减号?
解决nvimpager中man手册连字符搜索不匹配的问题
有两种可行方法解决这个字符编码不匹配导致的搜索失效问题:
方法一:在nvimpager中自动替换连字符
nvimpager基于Vim,你可以通过配置自动命令,让它打开man页面时自动将U+2010(man手册专用连字符)替换为U+002D(键盘输入的减号)。
编辑nvimpager的配置文件(通常路径为~/.config/nvimpager/init.vim,不存在则新建),添加以下内容:
augroup ManHyphenFix autocmd! autocmd FileType man silent! %s/\u2010/-/g augroup END
保存后,下次用nvimpager打开man页面时,所有特殊连字符都会被替换成普通减号,直接搜索/-e就能找到匹配内容。
方法二:预处理man命令的输出
给man命令设置别名,让它先把输出里的U+2010替换成普通减号,再传给nvimpager。
编辑你的shell配置文件(比如~/.bashrc或~/.zshrc),添加以下别名:
alias man='man "$@" | sed "s/\xe2\x80\x90/-/g" | nvimpager'
保存后执行source ~/.bashrc(或对应shell的配置文件)使别名生效,之后执行man gpg这类命令时,输出已完成字符替换,搜索不会再出现匹配失败的情况。
内容的提问来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

