gpt4 book ai didi

zsh - Tmux 在 zsh shell 的命令提示符下包含粘贴模式问题

转载 作者:行者123 更新时间:2023-12-04 12:12:10 25 4
gpt4 key购买 nike

这样的问题步骤:

  1. 将文本“kill-server”复制到系统剪贴板
  2. 点击 Prefix : 进入 tmux 命令提示符
  3. 点击command+v粘贴

结果粘贴文本是 200~kill-server201~ 而不是 kill-server。这个奇怪bracketed paste mode text not 发生在 shell 提示符下,但出现在 tmux 命令提示符下,我曾尝试 turn off bracketed paste mode但没有运气。

出现此问题的环境:

  • Mac OS 10.11.1、iTerm、zsh 5.0.7、Tmux 2.1
  • Mac OS 10.10.1、iTerm、zsh 5.1.1、Tmux 1.9

没有这个问题的环境:

  • Mac OS 10.11.1、iTerm、bash、Tmux 2.1

最佳答案

我将此作为答案发布,因为它有点太长而且我需要一些格式...所以就这样吧。

我只能使用 zsh 5.1+ 进行复制。没有理由认为 5.0.x 会出现问题,因为括号内的粘贴模式是 introduced in 5.1 .您可能在测试中做错了什么,或者您的设置可能有些特殊,在这种情况下您必须更好地解释。此外,iTerm2 可能在其中没有任何作用,因为我可以在 Terminal.app 中很好地重现(当然它们可能都有相同的缺陷......)。

考虑到括号粘贴模式是 ZLE 的一项功能,我认为(免责声明:本段的其余部分纯粹是我的猜测)真正的问题是 tmux 使用底层 shell 的行编辑功能(ZLE,在 zsh 的情况下)在其命令提示符中提供更好的编辑体验(例如,您可以在那里访问所有 Emacs 样式的快捷方式),但它的命令提示符是一个愚蠢的术语,并且不理解括号中的粘贴序列。所以我们在 tmux 中遇到了两种终端仿真模式的奇怪情况,一种是相当聪明的,发生在每个 Pane 中,另一种是愚蠢的,发生在它的命令提示符中。

解决方案和变通方法:

  1. 这可能值得向 tmux 报告。 https://github.com/tmux/tmux/issues .

  2. 关闭 ZLE 括号粘贴。它确实有效,你可能做错了。如果你不介意在 tmux 中丢失括号中的粘贴,你可以将以下内容放在你的 shell 初始化序列中的某个地方:

    (( $+TMUX )) && unset zle_bracketed_paste
  3. 在 iTerm2 中,您可以使用高级粘贴(编辑->选择性粘贴->高级粘贴...,或 ⌥⌘V)。只需取消选中“方括号粘贴模式”,您就不会看到转义序列。

关于zsh - Tmux 在 zsh shell 的命令提示符下包含粘贴模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33452870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com