寄存器内容转存至变量的实现问题求助
寄存器内容转存变量的解决方案
嘿,我来帮你搞定这个问题!首先得说,你遇到的交换方法失效的情况太正常了——毕竟变量初始值是未知的(比如''?''这种不确定值),交换操作本质是把两者的值互换,结果就是寄存器里的有效内容被变量的垃圾值覆盖,完全达不到转存的目的。
那靠谱的做法其实是直接读取寄存器内容赋值给变量,这也是大多数场景下的标准操作,给你举几个常见环境的例子:
Vim脚本场景:用
getreg()函数读取寄存器内容,直接赋值给变量" 把寄存器a的内容存到全局变量g:my_var let g:my_var = getreg('a')要是担心变量初始值有残留,还可以先清空再赋值:
let g:my_var = '' let g:my_var = getreg('a')Shell脚本场景:如果是系统剪贴板这类寄存器(比如X11的剪贴板),可以用工具读取后赋值
# 把系统剪贴板内容存到my_var变量 my_var=$(xclip -o)同样,怕初始值干扰的话,先销毁变量再赋值:
unset my_var my_var=$(xclip -o)
你提到有一种实现方式可行,要是这个可行方式不是直接赋值的话,可以补充下你用的具体语言/工具环境,我能帮你进一步优化方案,或者解释为什么另一种方式行不通~
内容的提问来源于stack exchange,提问作者Foxy
相关产品推荐
相关产品推荐

