【问题标题】:Getting strange characters when pasting into my iterm2 terminal粘贴到我的 iterm2 终端时出现奇怪的字符
【发布时间】:2017-12-04 13:30:01
【问题描述】:

我在 Mac Sierra 上使用 iterm2 v 3.0.15。我无法从其他地方(例如网页上的文本)剪切和粘贴到我的终端中。例如,我突出显示网页中的一些文本,按 Command + C,转到终端,然后按 Command + V,我得到

localhost:myproject nataliab$ 00~on the next01~

注意我的文字前后的“00~”和“01~”。当我剪切并粘贴到文本编辑器或其他地方时,我看不到这些字符。当我剪切并粘贴到 iterm2 终端时,如何消除这些特殊字符的出现?

【问题讨论】:

    标签: copy-paste paste iterm2


    【解决方案1】:

    我遇到了同样的问题,但无法弄清楚问题发生的原因,但使用 Command + Q 关闭 iTerm2 并重新打开它可以解决问题。

    【讨论】:

    • 那是一把大锤子。你可以用printf '\e[?2004h'修复它。
    • @dbenhur,你的评论也是一把大锤。将建议的命令放在哪里?
    • @Fábio,...嗯? “大锤子”通俗地说是指你用太大的力来修理东西(并且可能同时破坏其他东西)。我不明白这如何适用于 dbenhur 的评论,它更加专注和细致入微。
    【解决方案2】:

    set t_BE= 添加到 .vimrc 以禁用括号粘贴模式应该可以解决此问题。 你可以参考:https://gitlab.com/gnachman/iterm2/issues/5698

    【讨论】:

      【解决方案3】:

      我最近也开始在 iterm2 中遇到这种行为。杀死并重新启动会话可以修复它,但会丢失上下文。我发现这条关于bracketed paste mode 的评论并尝试printf '\e[?2004h' 退出括号粘贴模式并修复终端,它对我来说效果很好。

      【讨论】:

        【解决方案4】:

        我的解决方案:

        printf '\e[?2004l'粘贴到iTerm2终端,然后按enter

        【讨论】:

        • 这种东西可以以某种方式添加到PS1 以保证您始终处于括号粘贴模式吗?
        • 您能解释一下这究竟是做什么的,以及为什么它可以解决问题吗?帮助人们理解问题对于学习至关重要,只是给我们答案在短期内会有所帮助,但不会增加提问者的理解。
        • 虽然是的,这解决了问题,但特别有趣的是它不能粘贴到 Mac 的终端;你必须把它输入一遍。让我大吃一惊的是,标准键盘输入在 2019 年无法在 Mac 上运行。
        • @PaulLammertsma 是的,它可以粘贴到 iTerm2 和终端中
        • 此命令禁用“括号粘贴模式”。见explanation。见other answer
        【解决方案5】:

        我认为这是一个括号粘贴问题

        1. 编辑 -> 选择性粘贴 -> 高级粘贴

        2. 取消选中“括号粘贴模式”

        3. 重启终端

        【讨论】:

        • 这是这里的实际解决方案
        • 确实——这对我也有用。我想知道如何启用此选项。有快捷键吗
        【解决方案6】:

        $ printf '\e[?2004l'

        它解决了我的问题。但有趣的是当我粘贴上面的命令时,它也粘贴如下

        00~printf '\e[?2004l'01~

        【讨论】:

          【解决方案7】:

          在终端窗口中输入reset,然后按回车键。现在,尝试在终端中粘贴内容,它应该可以正常工作。

          【讨论】:

          • 这是一个简单但强大的答案。顺便说一句,⌘+R 是 iTerm2 中reset 命令的快捷方式,所以只需按⌘+R
          • 这个解决方案确实有帮助,但知道是什么导致了这个问题吗?
          • 我可以确认这行得通,但是怎么会呢?
          【解决方案8】:

          我无法保证此修复的条件,因为我一直在摆弄上述解决方案,但对我来说解决问题的是:

          iTerm2 → Preferences → Keys → 双击编辑⌘v的目标 → 在Speed下,设置Chuck Size为256B,Interchunck delay 到 100 毫秒。

          【讨论】:

          • 这对我有用。我将 iTerm2 -> 首选项 -> 高级/粘贴板 -> “正常粘贴时要粘贴到每个块中的字节数”设置为 256(全新安装的 iterm2 v. 3.3.9 将该值设置为 667)。我将“...缓慢粘贴时”的值从 16 提高到 64。我没有禁用括号粘贴模式(不是没有 00、01 附加问题)。我最初的问题是从 vsCode 粘贴到运行 python 3(在 OSX 10.15.4 上)的 iTerm2 包括粘贴块的奇怪部分和多次重复。无论如何,这似乎已经解决了。如果该行为返回,将更新。谢谢!
          【解决方案9】:

          要永久禁用包围粘贴模式,请打开首选项,搜索“包围”,取消选中“终端可能启用粘贴包围”

          【讨论】:

          • 这是在 Preferences > Profiles > Terminal > [x] "Terminal may enable paste bracketing"
          • 优秀。由于我无法预见任何需要使用括号粘贴,我喜欢这个永久的解决方案。谢谢。
          • 这个功能很垃圾,谁会默认开启这个功能?
          【解决方案10】:

          printf '\e[?2004h' 应该可以解决问题;还要确保删除尾随和开始的垃圾字符。

          【讨论】:

            【解决方案11】:

            我必须通过shell-->Hard Reset 让它立即工作

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多