![更改提示颜色时复制/粘贴无法正常工作](https://linux22.com/image/141281/%E6%9B%B4%E6%94%B9%E6%8F%90%E7%A4%BA%E9%A2%9C%E8%89%B2%E6%97%B6%E5%A4%8D%E5%88%B6%2F%E7%B2%98%E8%B4%B4%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
打开提示,尝试执行以下操作:
- 输入此代码:
export PS1="\e[1;30m-30-\e[m >"
- 用鼠标复制它(选择代码+复制它(当我启用鼠标选择时我有自动复制))
- 关闭提示
- 打开一个全新的提示
- 立即粘贴(SHIFT INS)
- 键入“HOME”键和“END”键,您将看到光标转到逻辑位置(代码的开始和结束)
- 现在按 ENTER 键
- 你提示改变颜色
- 立即粘贴(SHIFT INS)
- 输入“HOME”键和“END”键,你会看到光标转到不合逻辑的位置(偏移问题)
这意味着如果我将颜色应用于提示,我将无法复制/粘贴+更改复制的代码...
注意:我在这里问这个问题是因为我认为这是一个问题在这里但似乎它只与我试图分配的内容有关:export PS1="\e[1;30m-30-\e[m >"
... 我没有发现任何问题。它应该只是改变提示的颜色(实际上它就是这样做的)。但它似乎做了一些我没看到的事情。有人知道它可能是什么吗?
答案1
您需要将转义序列成对括起来\[
,\]
否则您将遇到偏移问题。
答案2
user1274247 是对的,您需要包含转义序列。
这是我的 PS1 的样子。
\[\033]0;\u@\h:\w\007\]\[\033[01;31m\]\h\[\033[01;34m\] \w \$\[\033[00m\]