vimの折りたたみに関する混乱-無効にする方法は?


116
  1. :私は、ファイルを開くと、それはこのようになります ここに画像の説明を入力してください か、これでも ここに画像の説明を入力してください
  2. すべての折り畳みを開くと、別のバッファーに移動して戻ったときに、折り畳みが再び閉じられます。
  3. それを使用できるようにするにはzR、バッファを開くたびに適用する必要があります。

私はこれらを以下で設定してい.vimrcます:

set foldlevelstart=99
set foldlevel=99

折りたたみを無効にする方法、または少なくとも開いているバッファを閉じないように別のバッファに移動する方法を教えてください。


2
vimを最初に起動するときに、実行:set foldlevel:set foldlevelstartて設定を確認します。私の初期の推測では、これらの値はどこかでリセットされています。これらの値をvimrcに追加すると、すべてが期待どおりに機能します。
クレドックス

回答:


209

あなたは一人じゃない。

set nofoldenable    " disable folding

7
これはvimdiffには影響しないことに注意してください。vimが差分ウィンドウを作成するとき、foldenableオプションを上書きするようです。私が見つけた唯一の回避策は、のcontextサブオプションをdiffopt本当に巨大なものに設定することです。例:set diffopt+=context:99999
ローレンスゴンサルベス2014年

14
それはだったのvim-値下げ。vim-markdownによる折りたたみを無効にするには、次を使用しますlet g:vim_markdown_folding_disabled=1
BenjaminGolder


2
以下のgltsのソリューションのほうが好きです。折りたたみ可能を切り替えるには、「zi」を使用します。vimに関するいくつかの大きな問題の1つは、覚えておくべきことが非常に多いことです。「折りたたみ可能」の代わりに「ジ」のような小さなものは神から送られました!
ティエリー

1
doesntのは、私のために働くように見える:( Pythonのコードはまだ折り畳まれている。
WEIMA

55

その場で折り畳みを無効(および有効)にする最も簡単な方法は、ziです。

zi'foldenable'、と同様にトグルする通常モードコマンドです:set foldenable!

記憶法: "fold i nvert"。を参照してください:h zi


44

set nofoldenable〜/ .vimrcに追加して、折りたたみを無効にします。


@マグナス:vimdiff同一の行がたくさん表示されないようにするために、意図的に行われています。ユースケースが異なるため、の影響を受けませんnofoldenablezRすべての折り目を開きます。折りたたみを無効にする設定については知りませんvimdiff。(折りたたみが邪魔にならない場所の1つだからです。)
DevSolar 2014年

16

こちらが記事です折りたたみがクールな理由を簡潔かつ簡潔にまとめをます。1行の理由は、折りたたみによって非常に大きなファイルをナビゲートすることが簡単になるためです。

折り畳みを有効にしたまま、常にすべての折り畳みを開いたままにする場合は、vim wikiにその方法が表示されます。 興味のあるメソッドは、おそらくautocommandメソッドでしょう。

" Tweak the event and filetypes matched to your liking. 
" Note, perl automatically sets foldmethod in the syntax file
autocmd Syntax c,cpp,vim,xml,html,xhtml setlocal foldmethod=syntax
autocmd Syntax c,cpp,vim,xml,html,xhtml,perl normal zR

また、使用する言語のカスタム折りたたみ方法を検索することをお勧めします。「vim <ここに言語を挿入>折りたたみ」とググるだけで、いくつかのオプションが表示されます。好みの折りたたみ方法が見つかるまで、さまざまなオプションを試してみてください。


4

.vimrc同じ問題が発生したため、ファイルに次の行を追加しました。

autocmd FileType * exe "normal zR"

このコマンドは、ファイルを自動的に開くたびに実行されます。だからあなたはバグを見ることはなく、折りたたみ機能も失われません)


3

もう1つ追加するだけで、議論のポイントまで完成します。

コードの折りたたみを有効にするには:

:set foldenable 要するに、 :set fen

コードの折りたたみを無効にするには:

:set nofoldenable 要するに、 :set nofen

コードフォールディングを有効にするzf,zo etc:set fdm=xxxx、一般的な値がどこにあるかの設定に応じて、希望どおりのすべてのコマンドが得られますexpr,syntax,manual etc.


1

申し訳ありませんが、関連する質問に答えているのですが、次のように折りたたみをオフにした状態で2つのファイルを表示すると便利です。

vim "+set nofen" -O file1 file2

1

Vimは、特にvimdiffを使用する場合に、折りたたみを無効にすることを驚くほど困難にします。
上記の投稿された解決策はどれもうまくいきませんでしたが、これはうまくいきました(〜/ .vimrcに追加):

au WinEnter * set nofen
au WinLeave * set nofen

1

私が設定しfoldlevel=20foldlevelstart=20使用しますfoldmethod=syntax。それは私がvimで正しい折りたたみで作業するのに役立ちます。

set nofoldenable 折りたたみを無効にしますが、必要な場合があります

vim.wikia

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.