Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos iTerm2和x2013;使用鼠标滚动较少的输出_Macos_Terminal_Scroll_Mouse_Iterm - Fatal编程技术网

Macos iTerm2和x2013;使用鼠标滚动较少的输出

Macos iTerm2和x2013;使用鼠标滚动较少的输出,macos,terminal,scroll,mouse,iterm,Macos,Terminal,Scroll,Mouse,Iterm,我刚刚从OSX终端切换到iTerm2,我似乎失去了一项功能。 在终端中,我可以用鼠标滚动less命令的输出,因为我已经安装了 但是,当我尝试在iTerm2中滚动更少的输出时,窗口的滚动条反而会移动。 奇怪的是,在vim上滚动的效果与预期的一样 如何在iTerm2中使用鼠标滚动更少的输出?目前尚未实现 iTerm 2问题跟踪程序中有一个关于实现它的未决问题 iTerm2问题现在标记为“已修复”- 但解决办法是添加一个隐藏选项,因此它不是立即显而易见的 如何启用新的alternateMouseCro

我刚刚从OSX终端切换到iTerm2,我似乎失去了一项功能。 在终端中,我可以用鼠标滚动
less
命令的输出,因为我已经安装了

但是,当我尝试在iTerm2中滚动
更少的
输出时,窗口的滚动条反而会移动。
奇怪的是,在
vim
上滚动的效果与预期的一样


如何在iTerm2中使用鼠标滚动
更少的
输出?

目前尚未实现


iTerm 2问题跟踪程序中有一个关于实现它的未决问题

iTerm2问题现在标记为“已修复”- 但解决办法是添加一个隐藏选项,因此它不是立即显而易见的 如何启用新的
alternateMouseCroll
选项

作为Filippo Valsorda(补丁的作者), 一旦您安装了iTerm2的夜间版本(1.0.0.20140629中仍不存在), 只需运行以下命令:

$ defaults write com.googlecode.iterm2 AlternateMouseScroll -bool true
重新启动iTerm2,所有窗口都会报告上下箭头键退出时的滚动事件 当终端处于“备用屏幕”(直接寻址)模式时 用于less、vim、emacs等程序

对于提供额外鼠标支持的vim和emacs等应用程序, 您仍然希望启用鼠标报告模式,
由于此自动模式开关仅启用滚动。

最后,我花了很多时间在这方面四处寻找,但运气不佳,最简单的步骤是:

  • 安装2.9测试版

  • 完成


  • 现在它在iTerm2中实现,可以通过

    设置->高级->滚轮在交替屏幕模式下发送箭头键,并将其更改为


    defaults write com.googlecode.iterm2 AlternateMouseScroll-bool true
    仍然有效,但它只是更改了相同的设置)

    这不是OP的问题,但对于任何试图在tmux中实现此功能的人来说,这里有一个代码片段要添加到您的tmux.conf中,以使其能够处理备用屏幕(例如less,vim)正确地说:

    # Check if copy-mode or any mouse flags, then send mouse events
    # or check if we're in alternate screen end send navigation keys (up, down)
    
    bind -n WheelUpPane if-shell -Ft='#{?pane_in_mode,1,#{mouse_any_flag}}' \
            'send -Mt=' 'if-shell -Ft= "#{alternate_on}" \
            "send -t= Up" "copy-mode -et= ; send -Mt="'
    bind -n WheelDownPane if-shell -Ft= '#{?pane_in_mode,1,#{mouse_any_flag}}' \
            'send -Mt=' 'if-shell -Ft= "#{alternate_on}" \
            "send -t= Down" "send -Mt="'
    

    注意,这不需要,但也不会对其造成伤害。

    最新版本的less支持
    --鼠标和相关标志,因此无需将箭头键发送到备用屏幕。

    听起来您安装了某种第三方软件,因为终端不支持在使用鼠标滚动时向tty发送输入,所以它只知道如何滚动滚动条。@ChrisPage确实不错。我忘了我很久以前安装的。我在问题中澄清了这一点。是的,这是在这里和iTerm2邮件列表中回答我的问题时添加的。太棒了!除了在
    tmux
    内部时不起作用之外
    less
    tmux
    的内部,它会像滚动条访问tmux窗格历史记录时通常那样进行响应。我有点挠头。我现在不能研究这个问题,但我想知道是否有办法告诉
    tmux
    以一种特殊的方式对待
    less
    。我认为tmux(正确地…)认为less不会处理鼠标滚轮,因此它会继续覆盖滚轮功能。根据Filippo Valsorda的评论,我怀疑您需要在
    ~/.tmux.conf
    文件中添加
    set window option-g mode mouse on
    ,我有iTerm 2.1.1,我已经尝试了这里的所有内容。在iTerm 2上的Vim中,我只是用鼠标滚轮上下滚动(不起作用),然后点击上下箭头键,窗口顶部弹出一个小通知,询问我是否希望鼠标滚轮在图形程序中滚动。点击是的,一切都很美好。不错。:)SE最大的弱点之一是,这里没有一个可靠的机制来推广更多像这样的最新答案,除非有很多人投票或OP回来改变被接受的答案。这似乎对iterm2 build 3.1.5不起作用,有什么线索吗?@dongiulio尝试重新启动终端和/或mac?在iTerm2 3.1.5中,此解决方案运行良好,无需重新启动。当使用git diff时,在3.2.6中不起作用。有什么建议吗?