Home/End 键在 tmux 中不起作用

2024-04-21

我目前正在使用 tmux 和 xterm-256color $TERM 变量。当在 tmux 下的 bash 中时,按 home/end 将插入波形符 (~)。在 tmux 之外,home/end 键工作正常。

使用 cat 和 tput,我可以看到生成的序列和预期的序列之间不匹配:

$ cat -v # pressing home, then end
^[[1~^[[4~
$ tput khome | cat -v; echo
^[OH
$ tput kend | cat -v; echo
^[OF

为了解决这个问题,我决定将以下内容添加到我的 .bashrc 中:

if [[ -n "$TMUX" ]]; then
    bind '"\e[1~":"\eOH"'
    bind '"\e[4~":"\eOF"'
fi

这解决了 bash 的问题,但是在其他 readline 程序中,例如在 ipython 等 REPL 中,它仍然会插入表示 home/end 的波形符。

首先为什么这是一个问题?为什么在 tmux 内部和外部生成的序列不同?如何解决这个问题,使其不再是任何程序中的问题?


看来主要问题是对 $TERM 使用 xterm-256color 。我将 $TERM 切换为 screen-256color,问题就消失了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Home/End 键在 tmux 中不起作用 的相关文章

随机推荐

  • 如何在类模板中使用文件范围的命名空间声明?

    C 10 介绍文件范围的命名空间 https learn microsoft com en us dotnet csharp language reference proposals csharp 10 0 file scoped name
  • 安卓蓝牙无法连接

    我遇到这个问题已经有一段时间了 但一直无法解决 我有一个 Android 应用程序 它将所有配对的设备放在列表视图中 当您单击列表项之一时 它将发起连接到该蓝牙设备的请求 我可以毫无问题地获取设备列表及其地址 问题是 一旦我尝试连接 我就会
  • 如何在 AWS 上设置无密码 ssh

    如何在 AWS 集群上的节点之间设置无密码 ssh 以下设置无密码身份验证的步骤已针对 Centos 和 Ubuntu 进行了彻底测试 假设 您已经可以访问您的 EC2 机器 可能正在使用 pem 密钥 或者您拥有具有 root 权限的 u
  • Windows 7 为软件开发人员带来哪些好处? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试将我的开发计算机升级到 W
  • 如何重置 JSESSIONID

    当用户进行身份验证时重置会话 cookie 被认为是一种良好的安全实践 如何用 Java 做到这一点 到目前为止我的尝试是成功的 但我想知道是否有更好的方法 public static HttpSession resetSessionId
  • 车把模板的文件扩展名

    我更改了车把模板的扩展名 并在调用 handlebarjs 编译函数的函数中引用了相同的扩展名 它工作得很好 没有任何问题 但我很好奇是否还有其他人尝试过 如果您认为这可能会因任何原因导致问题 请告诉我 出于某种原因 我觉得扩展名 hand
  • Java 中搜索和排序算法的高效实现

    有没有人有关于常见搜索和排序算法的一组 Java 代码实现的良好参考 剥猫皮的方法有很多种 很容易在网上找到各种算法的 Java 代码 但是 Java 中是否有实现这些不同算法的最有效方法的列表 例如有http www algorithmi
  • 将 float 和 double 值与 delta 进行比较?

    据我了解 必须仔细比较浮点类型的值 以避免固有浮点错误的问题 这可以通过将值与错误阈值进行比较来改进 例如 以下解决方案比简单的解决方案更有用x y test static float CompareRelativeError float
  • 如何通过 jQuery Ajax 发布数据在 PHP 中编码 JSON?

    我有一个 HTML 表单 并在点击提交按钮时将数据发送到 php 文件 ajax url text php type POST data amount amount firstName firstName lastName lastName
  • 单击添加类和删除时切换类

    如果我单击项目 我需要添加类名 如果单击同一项目 则需要删除 ngFor 循环的类
  • Angular Material:如何在注销时关闭所有垫对话框和甜蜜警报

    我想在 Angular 注销时关闭所有对话框 mat dialog 引导模式和甜蜜警报 这是 AngularJS 版本 1 5 中的实现方式 function logout hide mdDialog modal angular eleme
  • 如何将客户端证书与 ftp_ssl_connect 一起使用

    我正在寻找通过 SSL 连接使用 FTP 服务器的最佳方法 通常 推送文件以及获取服务器上的文件列表 该项目的一项要求是我必须使用客户端 X 509 证书作为身份验证过程的一部分 我可以使用 php 函数 ftp ssl connect 来
  • 将我的 apk 推送到 /system/app

    如何推送我的应用程序包 到Android模拟器 system app 文件夹 我已经尝试过使用 adb 推送 myApk apk system app 它给了我这个 failed to copy No space left on devic
  • 如何使用 JSF/MyFaces 创建基于用户角色的条件?

    我必须使用哪些选项才能从 JSP 页面读取当前用户的角色 我知道visibleOnUserRole myRole Tomahawk 组件上的属性 但我需要角色来处理比简单可见性更复杂的事情 The 外部上下文 http docs oracl
  • 在 Python 中插入缺失值

    所有 我希望你能够提供帮助 因为这是我知道我几乎从这里和网上的各种帖子中破解的任务之一 但还没有完全发挥作用 本质上 我在数据库中有以下数据 通过 psql read sql sql cnxn 返回到 Pandas 对象 StartTime
  • 如何在同一服务器上运行 TeamCity 的多个实例?

    我在 Windows 上尝试在同一服务器上运行多个 当前是两个 TeamCity 实例 我选择不安装 Windows 服务 而是通过以下方式运行服务器runAll bat启动命令 当我运行安装程序时 我为每个安装程序选择了不同的端口 名称和
  • 如何在 Javascript 中输入时自动将所有内容变为小写

    当用户在 Javascript 的文本字段中键入文本框的所有字符时 如何将文本框的所有字符变为小写
  • SQL Server 中 COMB GUID 处的时间戳为 8 个字节或时间戳为 6 个字节

    感谢精彩的文章 我们有 COMB GUID 根据目前的实施情况 有两种方法 使用最后 6 个字节作为时间戳 GUID作为多个数据库下的快速主键 http www codeproject com Articles 388157 GUIDs a
  • 如何获取 ion-checkbox 的值

    我使用以下代码显示我的复选框列表
  • Home/End 键在 tmux 中不起作用

    我目前正在使用 tmux 和 xterm 256color TERM 变量 当在 tmux 下的 bash 中时 按 home end 将插入波形符 在 tmux 之外 home end 键工作正常 使用 cat 和 tput 我可以看到生