どのようにアクティブにするするVimでコードを折りたたむ?
変更する必要がありますか~/.vimrc
?
z+ a、z+ c、z+を入力しましたが、o何も起こりません。
折りたたみに関する記事は次のとおりです。Vimでコードを折りたたむ。
答え1
基本的な折りたたみ
Vimのデフォルトの折りたたみ方法は、手動で折りたたみを作成することです。そうしないと、記載されているようにmanual
使用したり、折りたたみを閉じたり開いたりすることはできません。ただし、次の方法で折りたたみを作成できます。zazozczf{motion}
ノーマルモードzfまたは視覚的モード、たとえば、zfj現在の行と次の行の折りたたみを作成します。ノーマルモデル。
縮小基準indent
@Anthon許可された答えは、折りたたみ方法をに設定する方法を説明しますindent
。つまり、折りたたみはインデントレベルによって定義されます。
縮小基準syntax
より便利には、現在のバッファの言語構文に基づいて折りたたみを自動的に生成できます。プログラミング言語を使用している場合はそれを呼び出します。エル、折りたたみ定義があります。エル(たとえば、Vimプラグインをインストールすると、折りたたみ情報がエルたとえば、次のように定義されます。精力C/C++ の場合、またはPythonモードPythonの場合)折りたたみ方法を次のように設定しますsyntax
。
set foldmethod=syntax
それはすべてです。折りたたみを処理するための最も便利なコマンドは次のとおりです。
- zoカーソル位置で折りたたまれた部分を開きます。
- zShift+oカーソル位置のすべての折りたたみを開きます。
- zcカーソル位置で折りたたみを閉じます。
- zm
foldlevel
一つずつ増えます。 - zShift+m開いている折りたたまれた部分をすべて閉じます。
- zr
foldlevel
1つ減ります。 - zShift+は0rに減少します
foldlevel
。すべての折りたたみ部分が開きます。
答え2
いいえ、リンクしたページのコマンドを自分のページに入れる必要はありません。コマンドプロンプトを表示するには、コマンドを~/.vimrc
実行してから入力するだけです。:
vim
ただし、次の行を入力すると:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
あなたが提供したリンクに示すように、~/.vimrc
ファイルで折りたたみを使用するたびにそのリンクを入力する必要はありません。set nofoldenable
ファイルが「正常に」開いていること、つまり折りたたまれていないことを確認してください。
答え3
体系的に使用する必要はありません。私は通常、モーションやセクションごとに手動で折りたたみを選択します。たとえば、1つの段落を折りたたむことはzfip
、次の20行を折りたたむことですzf20j
。za
切り替えと削除に使用されますzd
。
これにはより多くの作業が必要ですが、折りたたまれた部分が当面の作業を反映する可能性があります。
答え4
誰でもデフォルトの折りたたみ方法を変更し、新しいファイルが開かれたときに自動折りたたみを停止するには、以下のvim設定ファイルにこのコードを追加してください。
setlocal foldmethod=syntax
setlocal foldlevelstart=99
setlocal foldmethod
Manual
デフォルトの折りたたみ方法を変更し、foldlevelstart
ファイルを開くと自動折りたたみを停止します。この値を変更して自動折りたたみレベルをカスタマイズできます。ここで文書を確認してください。https://neovim.io/doc/user/options.html#'foldlevelstart'