AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 789055
Accepted
treuss
treuss
Asked: 2025-01-04 06:17:54 +0800 CST2025-01-04 06:17:54 +0800 CST 2025-01-04 06:17:54 +0800 CST

如何防止 xfce4-terminal 将 shift-pgup/pgdown 传递给 vim

  • 772

在最近的 Ubuntu 升级之后,在 xfce4 终端中使用 vim 的行为发生了变化。快捷键“Shift+Page Up”和“Shift+Page Down”在 xfce4 终端中分别映射到“向上滚动一页”和“向下滚动一页”,即它们模拟了 UNIX 终端数十年来的行为。

不幸的是,一旦我在终端中启动 vim,似乎这些键就不再被处理了,因为它不会将终端回滚到启动 vim 之前的内容。使用 xterm 而不是 xfce4-terminal,一切都按预期工作。是否有任何设置可以让我恢复旧的 UNIX 行为,并且不会让终端根据当前在 shell 中运行的内容而采取不同的行为?

xfce4-terminal 是 1.1.3,vim 是 9.1。

vim
  • 2 2 个回答
  • 23 Views

2 个回答

  • Voted
  1. Best Answer
    egmont
    2025-01-04T19:33:32+08:002025-01-04T19:33:32+08:00

    终端有两个屏幕:正常屏幕和备用屏幕。

    正常屏幕是您通常与 shell 交互、运行非全屏实用程序的地方。它有一个回滚缓冲区。

    备用屏幕是全屏实用程序(例如文本编辑器)通常(但不一定)切换到的位置。备用屏幕没有回滚缓冲区。

    判断您处于备用屏幕上的一种方法是,退出应用后,终端的先前内容将恢复。如果应用停留在正常屏幕上,则无法执行此操作。

    VTE 是 Xfce 终端背后的终端仿真小部件,它至少在十年内一直具有相同的行为,并且这种行为最近没有改变:如果在正常屏幕上,则所述键会滚动缓冲区,如果在备用屏幕上,则在里面运行的应用程序会接收所述按键事件来执行任何它想做的事情。

    虽然我认为这种可能性极小,但 Xfce 终端可能会以某种方式试图劫持此按键并做一些聪明的事情,并且该逻辑最近发生了变化。我发现更有可能的是您的 Vim 配置已更改:它现在切换到备用屏幕,而您不希望它这样做。检查您的 Vim 是否确实切换到备用屏幕(退出时会恢复终端的上一个屏幕),如果您正在寻找它,请在您的 Vim 配置中禁用它。有很多与“Vim”“正常屏幕”“备用屏幕”或类似关键词的网络搜索匹配的结果,我觉得在这里重复解决方案毫无意义。


    (顺便说一句,让我提一下,终端仿真器之间可能会有细微的差别。例如,Xfce Terminal(VTE)在备用屏幕上时,根本不允许您访问正常屏幕的回滚缓冲区。相应地,滚动条占据了其插槽的整个高度,好像没有任何内容可滚动。与此相反,当您在备用屏幕上时,Xterm 允许您滚动回到正常屏幕的回滚。它不允许您使用上述热键执行此操作,因为它们会被发送到应用程序(就像在 VTE 中一样),但它允许您通过使用鼠标拖动滚动条来执行此操作。)

    • 0
  2. Gene
    2025-01-07T03:55:20+08:002025-01-07T03:55:20+08:00

    我经常遇到这种情况:我运行一个命令,它会脱口而出很多“东西”。

    我不需要尝试在该终端中编辑,只需打开一个新终端并在该终端中编辑即可。

    一种方法是通过菜单。我可以在各种位置/大小中打开它。如果它在“奇怪”的位置,我会运行一个我称之为“kt”的本地脚本,并将其链接到 gt 和 xt。

    
    #!/usr/bin/perl
    #
    # SCCS ID    : @(#) Not in SCCS
    #  xt or kt 
    #   --geometry=120x40-90+230
    #     120 columns
    #      40 lines
    #      90 pixels from right edge
    #     230 pixels down from top
    #    --zoom=1   Multiplies size by 1.2 (1-7 valid)
    #    --color-text=black  Valid colors Single word
    #    --color-bg=white  Valid colors Single word
    #    --font=10   Font point size
    #
    $XCOLS = $ENV{'XCOLS'};
    
    if ( $XCOLS > 0 ) {
    
      $XLINES = $ENV{'XLINES'};
      $arg = "--geometry=${XCOLS}x$XLINES";
    }
    
    foreach $a ( @ARGV ) {
    
      if ( -x $a ) {
    
        $ex = " --execute $a";
    
      } else {
    
        $arg = $arg . " $a";
      }
    }
    
    # The colors and font can be overidden from the command input.
    
    `/usr/bin/xfce4-terminal --color-text=black --color-bg=white --font 10 --hide-menubar  $arg $ex&`;
    
    • 0

相关问题

  • Centos7 - 最小安装:echo $TERM 给我 'linux' 和 'tput colors' 给我 '8'。如何改变它?

  • 如何在不安装 nano 的情况下摆脱“nano not found”警告?

  • 在 Vim 中删除到命令行末尾

  • 如何在 vim 中使用 :e 忽略目录?

  • 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve