【问题标题】:How to use an inputdialog variable in a "for loop"?如何在“for 循环”中使用 inputdialog 变量?
【发布时间】:2012-03-25 17:09:47
【问题描述】:

“我不知道如何在函数或 for 循环中使用输入对话框中的变量。 Inputdialog 被视为一个字符串,我不能在 for 循环或函数中使用它。

p.e.:

if !exists("myvar")  
let myvar= "which variable?"   
endif   
let a = inputdialog(myvar) 

for n in range(1,3) 
 put = a
endfor

如果 p.e. var a = n
我希望这是输出:

1
2
3

但它会将其作为输出:

n  
n   
n   

(“a”被视为字符串而不是运算符)

我做错了什么?
如何让 vim 将 inputdialog 的值识别为运算符而不是字符串?

【问题讨论】:

  • 但是您的代码是正确的,它会打印它应该打印的内容。我不确定您要做什么,请编辑并重新制定。
  • @lzap 我重新编写了文本。希望我说清楚了。
  • 希望put = a 做什么?它将把 var 'a' 的内容设置为 inputdialog(),如果它设置为 'n',那将是放在缓冲区中的内容。如果你想要'n'的值,为什么不使用put = n?恐怕我没有得到你想做的事。
  • @El Isra - 我想做更复杂的操作并让用户通过 inputdialog 插入它。我的问题是“如何将变量从 inputdialog 发送到“for 循环”并将其用作变量而不是字符串?
  • :help :exec:help eval()

标签: function variables vim input for-loop


【解决方案1】:

更改命令

:put =a

:put =eval(a)

也可以使用

:exe 'put =' a

但是,如果存储在a 变量中的字符串包含字符 干扰 Ex 命令语法或命令行模式快捷方式,以上 如果不转义所述字符,命令将无法正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2018-08-24
    • 2019-12-19
    • 1970-01-01
    相关资源
    最近更新 更多