我们知道使用 less 打开一个文件,进入 less 界面后按 v 键可调出编辑器。

1% less /var/log/syslog

但是当你用 less 查看来自管道的信息时,例如:

2% echo "less is awesome" | less

进入 less 界面后按 v 键,你将得到以下错误提示:

Cannot edit standard input  (press RETURN)

我希望即使在查看管道信息时也能调出 vim 编辑器,于是

3% echo "V pipe $ vim - \n" > /tmp/lesskey
4% lesskey -o ~/.less /tmp/lesskey
5% echo "try it" | less

进入 less 界面后按 V 键(大写)即可。


多用在终端,在终端命令的输出结果中,可以利用 less + vim 回滚和检索。
终端中的颜色,由特殊字符控制。在输出管道中,提前用 ansi2txt 删除这些特殊字符,恢复成纯文本后交给 vim。
less 的版本:

less 590 (GNU regular expressions)

终端窗口区当前显示的结果(窗口区):

% grep pipe ~/.lesskey
v pipe . ansi2txt | vim - \n

终端窗口历史缓存中的结果(缓冲区):

% grep pipe ~/.lesskey
V pipe \^ ansi2txt | vim - \n