タグ付けされた質問 「folding」

テキストファイルの内容を単一の輪郭線で置き換えることにより、テキストファイルの領域を視覚的に非表示(およびトグル)にする機能。

1
Enterをクイックフィックス以外のカスタムコマンドにマップする方法
折りたたみをすばやく開閉できるように、再マップ<cr>(Enter)しましたza。 ただし、クイックフィックスウィンドウを使用してEnterキーを押すと、エラーのある行にジャンプしなくなりました(クイックフィックスウィンドウに存在しない折り畳みを開閉しようとしているため)。 クイックフィックスウィンドウに入るときに、マッピングを無効にするか、ローカルで再設定する方法はありますか?

2
行をまたがって隠す方法はありますか?
これが私のユースケースです: 私はたくさんのコードを持っていますが、スタイルの強制により、それぞれの開き括弧と閉じ括弧の前後に改行を書きます。 例: function func(args) { statement 1; statement 2; if (condition) { statement 3; } } これは素晴らしくて読みやすいですが、これはスペースの無駄な無駄だと思いますが、私のチームメイトは私に同意しません。基本的に、これはコードをチェックインする方法であり、それがそれです。 Vimの機能を使用して画面の不動産を節約しながら、詳細な方法でコードを書くことができるのではないかと考えていました。私はそれをタイプアウトすることを気にしません、ただスペースをより効率的に使用したいだけです。たぶん、Vimに不要な空行を自動で折りたたむことができると考えました。 構文規則を使用してこれを設定するのは少し難しいことに気づきます。何を書いても既存の構文規則と競合するように思えるためですが、最初の試みとして、衝突しないこれらの規則を書くことを決めました。 syntax match aaaaaaaaa "\vabcd" conceal cchar=A syntax match bbbbbbbbb "\vef\ngh" conceal cchar=B ここでの2番目のルールは、私が望むものに近いもので、開き角括弧の場合は次のようなものです/\v\{(\n\s*){2,}:開き角括弧に改行の2以上の任意の数を指定し、その後に空白のみを付けます。 ただし、vimの内部では次のことが起こります。 abcd行を入力すると、A期待どおりに非表示になります。 ef1つの行とgh次の行に入力すると、両方の行がで非表示になりBます。 ef\nghこの方法で垂直バッファスペースを節約できるように、2行が1行に隠されることを本当に望んでいました。 しかし、私は今、それがおそらくVimの実装の詳細な問題であることを理解しています。行の折りたたみは、コードの折りたたみが解決する問題であり、おそらく隠蔽に関する限り、範囲外です。 だから、やりたいことをやる方法がまだあるのかな。多分どういうわけか折りマーカーを使用していますか?問題は、空の空白だけを折りたたむ必要があることです。

2
Python docstringの折りたたみ
WIKIによると、スクリプトは構文に基づいて折りたたむことができます。誰かがPython docstringを折り畳むための解決策を持っていますか? 基本的に、私が必要なのは次のように折り畳むことだけです""" text between triple quotation marks """: ありがとう。

1
折りたたみを使用してドキュメント内の表示行の数を数えますか?
foldlevel新しく開いたドキュメントを自動的に設定して、できるだけ多くのドキュメントが画面に収まるようにするプラグインを作成したいと思います。(つまり、短いドキュメントを完全に開いた状態で開き、長いドキュメントを開くとほとんど折りたたむようにします。) 現在の折りたたみ状態または特定の折りたたみレベルを前提として、ドキュメントに表示される行数を報告するvimの組み込み関数はありますか?(つまり、閉じた折り目は1行としてカウントされますが、表示するために下にスクロールする必要がある行もカウントされます。)

2
オートコンプリート中にfoldexprを無効にする方法はありますか?
vimのfoldメソッドがオートコンプリートの効率に影響を与えることに気づきました。たとえばC-N、低速で、C-X L比較的高価なfoldexprs を含む中サイズのファイルではひどく遅いです。 オートコンプリートの実行中にfoldexprを参照することの価値がわからないので、これを何らかの方法で無効にして、使用可能なオートコンプリートを取得できるようにします。 助言がありますか? 編集:テストケース テストケース:プラグインなし。これだけで、これは可能な限り最小の foldexpr関数でなければなりません(呼び出しを数えることを除いて、完全に役に立たない).vimrc: let g:c = 0 function! Myfoldexpr() let g:c = 1 + g:c return '0' endfunction 空白のドキュメントからvimを起動します。Vim独自のヘルプファイルの最初の100行をコピーし、オートコンプリート行を実行して、10番目の提案を選択し、foldexprが呼び出された回数を確認します。 :help y100j:q P:set foldexpr=Myfoldexpr() :set fdm=expr O<C-X><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><C-L><Esc> :echo g:c 2088 これは、100行のファイルで、比較的短い行であり、foldexprは2088回呼び出されました(ただし、最初にfoldexprを設定するときにこれらの100が実行されます)。効率的なfoldexprは明らかに優れていますが、プログラマーは多くのfoldexprに質問するため、それらは必ずしも自明ではなく、実行時間が数千倍になると、オートコンプリートまたはインデントのどちらかを選択して生産性を高めることができます。貪欲/怠惰であること両方を使用できるようにしたいと思います!かなりよく確立されたいくつかのfoldexprベースの折りたたみプラグインを書き直そうとする以外に(phpの折りたたみを書き直してみましたが、何日か実行可能な状態に最適化しようとしたので、phpのfoldexprをあきらめました)、おそらく使用する方法がありますfdm=manualオートコンプリートなどの前にマッピングする必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.