更改和恢复 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
假设我的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