ファイルの一部をVimで個別の垂直分割ウィンドウとして開くことは可能ですか?
100行のファイルがあり、40行目から60行目までは、ファイルのその部分により焦点を合わせるために、メインウィンドウ内の個別のロックされたウィンドウとして分割された「タブ」としてレンダリングしたいとします。そこで行った変更は、メインウィンドウのファイル全体にも反映されます。
私は非常に長いファイルを持っているので、その内容をより適切に管理するためにそのようなものを実装したいと思います。
すでに指摘したように、同じバッファーを表示する分割を使用して、ほとんどの方法でそこに到達できます。
:vsplit
または
:split
ファイルの特定のセクションのみを表示する場合、それを行う1つの方法は、関心のない部分を折りたたむことです。ファイルの任意の部分を折りたたむ方法はいくつかあります。
最も簡単な方法は、ビジュアルモードで表示したくない行を選択し、zf
マッピングを使用して折りたたむことです。
折り畳みにマークを使用することもできるので、見たいテキストのすぐ上にマークを置き、ファイルの先頭に移動してから、そのマークまで折りたたむと、次のようになります。
ma
gg
zf'a
折り畳みはウィンドウごと(分割)であるため、同じバッファーがそれぞれに表示されている場合でも、1つのウィンドウに折りたたまれても他のウィンドウには影響しません。
フォールドの作成で問題が発生した場合は、foldmethodをmanualに設定してみてください。
:set foldmethod=manual
これは実際には非常に簡単で、ありがたいことに構成は必要ありません。ファイルを開いたら、を実行します
:vsplit
またはキーボードショートカット
<C-w>v
同じことをします。これにより、同じバッファに別のウィンドウが作成されます。これを行うことの良い点は、1つの分割で行った変更が、他の分割に自動的に適用されることです。保存する必要もありません!
このように機能する理由は、バッファが1つだけで、同じバッファに複数のビューがあるためです。
あなたもすることができます
:split
または
<C-w>n
これは同じように機能しますが、水平分割があります。
この一般的なアプローチは、任意の数のバッファー、分割、およびタブに拡張できます。
注意深く読み、新しい分割で行った変更を元のファイルに反映させたいことを確認する前に、以下を投稿してください。これは私の答えをほとんど時代遅れにします。誰かに役立つ場合に備えて、これはここに残しておきます。
これからインスピレーションを得ました: http://vim.1045645.n5.nabble.com/How-to-read-specific-lines-from-a-file-into-current-buffer-td1180012.html
~/.vimrc
を開いているとしましょう。
最初に分割して新しいファイルを開くことができます:vsp file
その後
:r! sed -n '22,25p;26q' ~/.vimrc
22行目から25行目をfile
に配置します
これはスクリプト化してリファクタリングできると確信しています。時間があれば可能性を検討します。