Как использовать переменную inputdialog в цикле for? - PullRequest
1 голос
/ 25 марта 2012

"Я не могу узнать, как использовать переменную из inputdialog в функции или для цикла. Inputdialog рассматривается как строка, и я не могу использовать ее в цикле for или функции.

pe:

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

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

если pe var a = n
Я ожидаю это как вывод:

1
2
3

, но это дает как вывод:

n  
n   
n   

(«a» рассматривается как строка, а не как оператор)

Что я сделал не так?
Как я могу позволить vim распознавать значение inputdialog как оператор, а не как строку?

1 Ответ

1 голос
/ 26 марта 2012

Измените команду

:put =a

на

:put =eval(a)

Также возможно использовать

:exe 'put =' a

Однако, если строка хранится в a переменная содержит символы, которые мешают синтаксису команд Ex или сочетаниям клавиш в режиме командной строки, приведенная выше команда не будет работать правильно без экранирования указанных символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...