質問
あなたは絵のように閉じた折り畳みにカーソルを持っていると仮定しましょう。
http://dl.getdropbox.com/u/175564/foldEdit .PNGする
をどのようにVimの中で折り目を開くことなくSMALLAPPSのタイトルを編集することができますか?の
解決
あなたは折りたたまれたブロックの最初の行、または折り目が閉じているときに表示される文字列を編集しますか?それはかつてのなら、私はあなたが倍に開くことなく、それを行うことができるとは思いません。それは後者だ場合は、 foldtext のオプションを見てみましょう。これは、任意の式を指定できます。この式は、この文字列を作成するために評価されます。
のドキュメントから:
「foldtext」をその文字列オプションであります 式を指定します。この 式は得ることが評価され、 テキストは閉じた折り畳みのために表示しました。 例:
:set foldtext=v:folddashes.substitute(getline(v:foldstart),'/\\*\\\|\\*/\\\|{{{\\d\\=','','g')
これは、折り目の最初の行を示し、 "/ "、 " /" とし、 "{{{" を除去。 避けるために、バックスラッシュの使用を注意してください によって解釈されるいくつかの文字 ":set" コマンド。それはに簡単です 関数を定義して、それを呼び出します:
:set foldtext=MyFoldText() :function MyFoldText() : let line = getline(v:foldstart) : let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g') : return v:folddashes . sub :endfunction
の代替はマーカーの折りたたみ方法を使用しています。これを使うと、倍のマーカーの前に任意の文字列を入力することができますし、折り目が閉じているときに、それが表示されます。
のドキュメントから:
テキスト内のマーカーがどこ折り目を伝えます 開始および終了。これは、あなたがすることができます 正確に折り目を指定します。この 削除して置くことができます 含むリスクなしに、倍 間違ったライン。 「foldtext」用 オプションは通常、そのように設定されています マーカーの前にテキストがに表示します 折れ線。これは、することが可能になります 倍に名前を付けます。
マーカーが含まれ、またはレベルを有することができ マッチングのペアを使用することができます。含みます レベルは簡単です、あなたが追加する必要はありません。 マーカーを終わらせるとの問題を回避 非マッチングマーカーのペア。例:
/* global variables {{{1 */ int varA, varB;