2016-08-05 3 views
1

Vim putコマンドを含むスクリプトを実行しようとしています。私は文字列にタブ文字が必要です。次のコードは動作しますが、 '\ t'は一重引用符で解釈されません。文字列を二重引用符で置き換えると、最初の二重引用符がコマンドを終了したことを示すエラーメッセージが表示されます。 コードは...Vim putコマンドで二重引用符を使用できない(したがってエスケープシーケンスはありません)

let a=range(0,5) 
for i in a 
    put=i . '\t' . printf('\t%c', i) 
endfor 

出力が...

0\t\t 
1\t\t 
2\t\t 
3\t\t 
4\t\t 
5\t\t 

誰もが何か提案を持っていますされていますか?私は '\ t'を実際のタブ文字に置き換えて欲しい。

答えて

0

リテラル文字列の代わりに二重引用符を使用します。

let a=range(0,5) 
for i in a 
    put=i . \"\t\" . printf(\"\t%c\", i) 
endfor 

また、かなりこれを短縮するmap()を使用することができます。より多くのヘルプを参照してください

put=map(range(5), 'printf(\"%d\t\t%c\", v:val, v:val)') 

:h string:h literal-string

+0

あなたは、出力を確認しましたか? Vim 7.4では動作しません。 – Mikey

+0

これで、あなたの応答を編集して二重引用符をエスケープしました。私はあなたが文字列の中で引用符をエスケープし、これを試していないと思った。 – Mikey

+0

@Mikeyクォートは、それ以外の場合に '' 'がコメントの開始とみなされるために必要です。 –

関連する問題