您可以结合其他答案的绑定思想来获得令人满意的滚动行为:在vim中工作,可在终端上自动更改为复制模式,并在到达底部时退出,仍然允许您在man,less和journalctl中使用鼠标滚轮。
我的代码:
bind -n WheelUpPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Up Up Up Up" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
bind -n WheelDownPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Down Down Down Down" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
您可以在grep -e'man'部分添加其他需要箭头键滚动的命令
我多次添加了发送键,因此鼠标滚轮上的一个刻度将一次滚动4行