更改和恢复 pastetoggle

Change and restore pastetoggle

假设我的pastetoggle设置为<F10>,如果我运行echo &pastetoggle它打印出<80>k;(问题1)我怎么能达到其值作为字符串 "<F10>" 而不是此 <80>k; 代码。我的意思是可以根据 pastetoggle 的值将变量设置为 "<F10>" 吗?

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

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

您可以通过

获取"actual"值
:set pastetoggle?

要捕获它,您必须使用 :redir 和字符串提取:

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