粘贴到 SSH 终端时最后一个字符大写并且不允许我编辑它

问题描述 投票:0回答:1

我正在 Mac 上运行终端并通过 ssh 连接到 Linux 主机。 我在将文本复制并粘贴到终端时遇到了 2 个问题:

  1. 当我在 Mac 上运行本地终端命令(不是通过 ssh)时,有时我粘贴的文本周围会出现奇怪的字符,例如
    00~pastedtext01~
    。 我用谷歌搜索了一下,发现这显然是由于“括号粘贴”造成的。 当这个问题发生时,我可以通过运行命令
    printf '\e[?2004l'
    来解决这个问题。
  2. 当我 ssh 进入我的 Linux 主机时,当我粘贴文本时,它通常会大写我要粘贴的内容的最后一个字符,并且光标将变成灰色,我将无法键入其他字符或从我粘贴的内容中删除字符。粘贴的。 此时我唯一的两个选择是要么 ^C 中断到下一行而不运行命令,要么按 Enter 并运行混乱的命令。 它不会 100% 发生。 如果我复制某些内容,然后重复将其粘贴到 shell 中,大约 90% 的情况下都会出现此问题。 我不知道为什么它显然是不确定的。 我认为这也可能是由于“括号粘贴”问题造成的,但无论我运行命令
    printf '\e[?2004l'
    set enable-bracketed-paste off
    多少次,问题仍然存在。 当我退出并重新 ssh 到主机时,它甚至仍然存在,所以我知道这不是由于运行像 vim 这样的任何程序,因为即使在我 ssh 到主机后,问题仍然会发生。 有人可以帮忙吗??? 这正在扼杀我的生产力!

以下是包含此问题的粘贴内容:

Paste with issue

我知道有人沿着这些思路提出了其他问题,例如来自 Stack Exchange 的this,但这些帖子中的任何答案都对我不起作用,所以我认为我的问题可能与那些问题略有不同...

ssh terminal copy-paste paste
1个回答
1
投票

检查您的 ZSH 配置

cat ~/.zshrc

检查在

plugins=(...)
中是否找到
safe-paste
。如果存在,请编辑配置并删除
safe-paste

if grep -q "safe-paste" "~/.zshrc"; then   # checks if str in contained in file
    sed -e s/safe-paste//g -i ~/.zshrc     # if so, it replaces the str with nothing
fi

作为单行:

if grep -q "safe-paste" "~/.zshrc"; then; sed -e s/safe-paste//g -i ~/.zshrc; fi
© www.soinside.com 2019 - 2024. All rights reserved.