2017-04-24 7 views
0

現在のバッファのテキスト全体を取得しようとしています。私はそれが '%'で表されていると信じています(SnoringFrogの答えはhttps://vi.stackexchange.com/questions/2319/is-there-a-text-object-for-the-entire-bufferです)。vimで現在のバッファのテキスト全体を取得できません

:call Check() 

エラーがある:私は、次のコマンドでそれを呼び出す

function Check() 
    echo % 
endfunction 

:しかし、機能を以下とすると、エラーを与える

問題であり、それがどのように解決することができ
Error detected while processing function Check: 
line 1: 
E15: Invalid expression: % 
E15: Invalid expression: % 

答えて

1

コンテキストに応じて、%は、1,$の範囲のショートカットまたは現在のバッファに関連付けられたファイル名のプレースホルダにすることができます。

最初のケース(あなたのリンクにあるもの)では、まったく意味のないエコーされることはありません。

ファンクションで使用する場合は、2番目のケースではexpand('%')に拡張する必要があります。

とにかく、%はあなたが望んでいないので、それは重要ではありません。にすべてです。あなたがしたいのは:help getline()

function Check() 
    echo getline(1,'$') 
endfunction 
+0

はい、あります。しかし、空白行は無視されています。 getline関数から得られたリストにそれらを含めることもできます。 – rnso

+0

いいえ、空白行は無視されません。 – romainl

関連する問題