Vim 更改和恢复粘贴切换

Vim 更改和恢复粘贴切换,vim,paste,Vim,Paste,假设我的pastetoggle设置为,如果我运行echo&pastetoggle,它将打印出k(问题1)如何将其值设置为字符串”,而不是此k代码。我的意思是,是否可以根据粘贴切换的值将变量设置为” 现在,如果我运行let@a=&pastetoggle,然后运行echo@a,它将输出相同的k字符串,但如果我在之后运行let&pastetoggle=@a并运行echo&pastetoggle它将打印出Xk(问题2)为什么?(问题3)如何根据@a中的值设置pastetoggle?k是的内部键码表示形式

假设我的
pastetoggle
设置为
,如果我运行
echo&pastetoggle
,它将打印出
k(问题1)如何将其值设置为字符串
,而不是此
k代码。我的意思是,是否可以根据
粘贴切换
的值将变量设置为

现在,如果我运行
let@a=&pastetoggle
,然后运行
echo@a
,它将输出相同的
k字符串,但如果我在之后运行
let&pastetoggle=@a
并运行
echo&pastetoggle
它将打印出
Xk(问题2)为什么?(问题3)如何根据
@a
中的值设置
pastetoggle

k
的内部键码表示形式;不幸的是,正如您所发现的,它无法保存,然后重新分配给
&pastetoggle

您可以通过以下方式获得“实际”值:

:set pastetoggle?
要捕获这些信息,您必须使用
:redir
和字符串提取:

redir => setOutput
    silent! set pastetoggle?
redir END
let pasteToggleKey = matchstr(setOutput, 'pastetoggle=\zs.*')
echo pasteToggleKey

谢谢,它完全满足了我的需要,所以我对你的答案投了赞成票。但这是一个有点复杂的解决方案,所以我等了几天,看看是否有人有一个更简单的解决方案。