2012-03-25 16 views
1

"関数またはループの入力ダイアログから変数を使用する方法を見つけることができません InputDialogは文字列として表示され、forループまたは関数では使用できません"forループ"でinputdialog変数を使用する方法は?

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 

( "" 文字列として見られているといない演算子として)

私が間違って何をやりましたか?
どうすればvimにinputdialogの値を文字列ではなく演算子として認識させることができますか?

:put =eval(a) 

+0

しかし、あなたのコードは正しいです、それは必要なものを印刷します。私は何をしようとしているのか分からず、編集して再調整してください。 – lzap

+0

@lzapテキストを改訂しました。私は自分自身を明確にしたいと思っています。 – Reman

+0

'put = a'は何を期待しますか?これは、 'inputdialog()'で設定されたvar 'a'の内容を入れ、 'n'に設定されていればバッファに格納されます。 'n'の値が必要なら 'put = n'を使わないのはなぜですか?私はあなたがしたいことを得ていないのではないかと心配しています。 – Raimondi

答えて

1

変更コマンド

:put =a 

a変数に格納されている文字列はと干渉文字 が含まれている場合は、しかし

:exe 'put =' a 

を使用することも可能ですExコマンドの構文またはコマンドラインモード前述の コマンドは、上記の文字をエスケープしないと正しく動作しません。

+0

ありがとう。これは私が検索したものです:) – Reman

関連する問題