マスタリングVimを読んで知らなかったことをメモしていくメモ
https://gyazo.com/da1a18e9b10cf4aef285e582ac3d14a5
jiroshin.icon 知らなかったことメモ
ctrl + w + H/J/K/Lでウィンドウの位置を変更
アクティブウィンドウの位置を移動できる。
changeコマンド
テキストの一部を削除して即座にインサートモードに入ることができる。
たとえば、
ci"で""のなかのテキストを削除してインサートモードに入る。
cwで現在カーソルの位置から単語の終わりまでを削除してインサートモードに入る。
changeコマンドは複合コマンドなので他にも様々な使い道がある。
jiroshin.icon 似たようなコマンドにdeleteコマンドがある。cをdに変えるだけ。たとえばdi"で""の中のテキスト削除。
折り畳み
set foldmethod=indentでインデント単位で折り畳みできるようになる。
折り畳みの開閉は za
すべての折り畳みを開く方法は zR
すべての折り畳みを閉じる方法は zM
.vimrcにautocmd BufRead * normal zRを追記おけばバッファを読み込んだ時に全部の折り畳みを開いた状態にしてくれる。
:行番号でその行に移動
いつもは行番号ggで移動していた。こっちのコマンドモードで行番号の方が良さそう。
テキストオブジェクトは2種類ある
インナーオブジェクト(iを前置する)とアウターオブジェクト(aを前置する)。
アウターオブジェクトは周囲の半角スペースやカッコを含み、インナーオブジェクトは含まないという違いがある。
changeやdeleteコマンドと組み合わせているiやa はこれのこと。
遅いプラグインを見つける方法
vimを起動する時にvim --startuptime <ファイル名なんでもいい.log> とすることでプラグインの読み込みにかかった時間がlogファイルに記述される。遅いプラグインや読み込んでいるプログインを探したい時は便利そう。
Leaderキー
Leaderキーを設定しておけばキーマッピングで余った(マッピングがない)キーを探す苦労が減りそう。↓ こんな感じで使うことができる。
code:vim
" leader+wでファイルを保存
noremap <leader>w :w<cr>
Leaderキーはキーマッピングのネームスペースみたいなもの。
set mapleader = '設定したキー' で設定することができる。
複数ファイルの文字列を一括で置換する方法