こんにちは。
この記事は、Vim Advent Calendar 2018 その2 6日目の記事です。
今回の記事について
画面分割の使い方についての記事です。
画面分割で使用するコマンド
コマンドはこんな感じです。詳しくは、:h :spに書いています。
- 分割
:sp:vs:new - 移動
<c-w>h<c-w>j<c-w>k<c-w>l - 場所
<c-w>H<c-w>J<c-w>K<c-w>L - サイズ
<c-w>= - 解除
<w-o>
画面分割の手順
:vs<cr> → 画面移動
:vsコマンドが常に最適1ではないですが、考える時間を考慮すると固定化した方が早くなります。
私は、「ここに分割しよ」よりも「分割しようかな」ってことが考えてしまいます。その後「どこに分割しようかな」って考えます。この思考だと、分割した方が早くなります。感じろって感じです。
また、:vsを選択したのは打ちやすいからです。人→薬だからです。
他の:sp <c-w>s <c-w>vは、少し打ちにくいです。
aiの使い分け(おまけ)
だったら、全部固定化した方が早いのでは思いますが、aとiは使い分けています。htmlをよく使うからかな。
例えば、こんな感じのタグがあったとします。
<div class="container">
最初に、閉じタグがないのでスラッシュを挿入します。yypa/<esc>
<div class="container">
</div class="container">
次に、余分な属性を削除します。f C>
<div class="container">
</div>
最後にクラスmb-4を追加します。?"<cr>i mb-r<esc>
<div class="container mb-4">
</div>
こんな感じで、aとiを使い分けます。
aとiは、入力先がすでに頭に浮かんでいるため使い分けが可能になります。
また、aとiの前に移動コマンドを挟んでいるため、考える時間(一緒だけれど)があります。
画面分割を使う場面について
分割方法を書いたので、使う場面について考えます。
私が使うのは、こんな感じです。順に考察していきます。
- 複数のファイルを同時に編集
- コードの一部を編集
- メモの作成
- ブックマークとして利用
複数のファイルを同時に編集
html, css, js を同時に編集したい場合があります。
打ち込んだ単語の入力チェックでよく*を利用しています。*が使えない場合は、コピーして検索しています。
単語が長い場合はコピーしますが、打ち込んだ方が早いので、この手法をとっています。
ちなみにカーソルが移動しないように改造しています。
nnoremap * :<C-u>set hls<CR>:let @/ = '\<'.expand("<cword>").'\>'\|echo @/<CR>|"
コードの一部を編集
一部分を切り取って、編集します。
大きいファイルだと、関数の範囲を見失うことが多々あります。
別ファイルとして編集すると見やすくなります。
また、先頭、末尾の移動は楽な為、操作性が格段に上がります。
ついでに、失敗した場合に、元に戻すのが楽になります。
メモの作成
単語帳として利用したりします。調べた結果を張り付けてコピーしたりして利用します。vimは、選択操作も優れているので素早く編集できます。
ブックマークとして利用
別のファイルを編集したくなってまた戻ってくるときや、同一ファイルの別の場所を見たくなった場合などもすぐに戻れます。
別機能でマークを設定できるみたいですが、マーク場所を忘れてしまいます。そのため画面分割を使用しています。 :h m
:tabについて
:spと同じ感じで、:tabコマンドも存在しますが、画面を大きく取りたい場合に使用します。使い道は、ほぼ同じになります。
-
:spコマンドなどがあります。 ↩