1

図のように、閉じた折り目にカーソルがあるとします。

代替テキスト http://dl.getdropbox.com/u/175564/foldEdit.png

Vimで折り畳みを開かずにSMALLAPPSのタイトルを編集するにはどうすればよいですか?

4

1 に答える 1

2

折りたたまれたブロックの最初の行を編集しますか?それとも、折りたたみが閉じられたときに表示される文字列を編集しますか? 前者なら折り目を開けないと無理だと思います。後者の場合は、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;
于 2009-05-23T23:57:54.107 に答える