相当多的程序都有使用 less 输出的命令(例如git blame filename
)。我想在使用 less 时使用我的 vim 配置(例如,<C-j>
而不是使用Pg Down
向下翻页)。我该如何设置?
根据此主题并且将 less 手册页放入export EDITOR=vim
我export VISUAL=vim
的~/.baschrc
应该使用 vim 来执行 less 但是在重新加载终端会话并启动 less 后我没有看到任何变化(例如我不能使用我的页面向下热键)。
答案1
和$EDITOR
变量$VISUAL
定义编辑使用(例如,当您使用“编辑”命令时较少的)。
当程序运行时较少的,他们将其作为寻呼机,而不是作为编辑——他们关注的是的价值$PAGER
。
安装维姆帕杰, 然后:
export PAGER=vimpager
答案2
如果您不想按照接受的答案建议的那样安装 vimpager,我发现有两种较简单的解决方法可以将 stdout 直接发送到 vim。
1) 作为一种非全局的解决方法,您可以将所有内容通过管道传输到 less
<command_outputting_to_less> | vi -
。
2) 更全局地,您可以设置
export PAGER='vi -'
。
我遇到的一个问题是,向寻呼机发送输出的 cmd 可能会将颜色代码放入其中,因为它认为寻呼机应该能够处理颜色代码。要纠正这个问题,您需要通过其他程序删除颜色代码,或者输出程序可以选择删除颜色代码。对于我使用的程序 (git),我更改了它以使其正确输出git config --global color.ui false
。
答案3
我不确定您到底想要什么,但less
其原始安装中有很多类似 vi 的键绑定可供使用。至少在我的 Ubuntu Jaunty 盒子上是这样的。但如果您缺少某些特定功能,您可以使用lesskey
程序重新分配您的键绑定。运行此程序将.less
在您的主目录下创建一个名为的文件。它将是一个文本文件,您可以甚至cat
查看其内容。vi
less
检查手册页less
(查找 KEY BINDINGS)和/或lesskey
命令来完成您想要完成的操作。