こんにちは。
かれこれ5年くらいVimを使っている者です。
この度、ちょっと色々Vimの使い方を改めて調査してみたら、5年も使ってるのにVimの機能を全然使えてなかったことが判明したので、備忘録として記事にしておきます。
新しいプラグインを入れるとか言ってる場合じゃないぜ。話はデフォルトの機能をそこそこ使えるようになってからだ。
Qiitaって備忘録を書く場所ってことでいいんですよね?合ってます?
最初のプランでは、まず一通り「既に使っている機能」を列挙して、その後「今回学んだ機能」を書こうと思ったのですが
「既に使っている機能」が多すぎるので、後者だけ書くことにしました。
レベル感を伝えるために簡単に書くと、/
で検索とかy
でヤンク(コピー)とか:e
でファイルを開くとかは既に使ってます。
では。
ノーマルモード
Ctrl+w
シリーズ
これ、でかいです。複数のファイルを同時に開いて、片方のファイルの内容を確認しながらもう片方のファイルを編集する、っていう場面、結構ありますからね。
Ctrl+w s
ウィンドウ分割。:split
か:sp
でも同じことができます。
Ctrl+w hjkl
カーソルを各方向のウィンドウに移動
Ctrl+w c
カーソルのあるウィンドウを閉じる(close)
Ctrl+w o
カーソルのあるウィンドウだけ残して他を閉じる(only)
この辺のウィンドウ操作をわかっていなかったせいで、例えば:help
とかやって別ウィンドウでヘルプが出た後、そのウィンドウをどうすれば元の操作に戻れるのかがわからなくて困ってました。困ってるなら調べて解決しとけやって話なんですけど。
次行きます。
yy
一行ヤンク(コピー)
今まで、Shift+v y
ってやってました。一行選択→ヤンクってことですね。yy
の方が速いですね。
gg
文頭に移動 G
文末に移動
いままでは9999k
とか9999j
とかやってました。ダサいですね。
Ctrl+v I
短形挿入
エルじゃなくて、大文字のアイです。Ctrl+v Ctrl+i
ってことです。
まとめてコメントアウトするときとかに便利ですね。
そういうプラグインもありますけど、とりあえずデフォルト機能でできるので覚えておこう。
インサートモード
Ctrl+c
Ctrl+[
インサートモードを抜ける
これはやはり最速でやりたい操作ですね。めちゃめちゃ頻繁にやるので。
今までは親指と中指でESC
と英数
を同時押しして抜けてました。
(私の環境はmacの日本語キーボード)
一度完全に左手をキーボードから上げることになるので無駄が大きい。
英数
も押す理由は、確実に日本語入力モードを抜けたかったからです。
ノーマルモードで日本語入力をすることはありませんからね。
今後はとりあえずCtrl+c
で慣れることを目指そう。
jj
にキーバインドするという方法もあるようですが、とりあえずデフォルトで出来るところまでやってみる。
ここはまだ最適化の余地がありそうだなあ。
Ctrl+h
一文字削除
バックスペースと同じ機能です。
バックスペースはキーボードの右上にあるので、それよりもこのショートカットの方が素早く押せますね。
Ctrl+u
行頭まで削除
途中まで書いて「やっぱやめた!」って言う時に便利らしいです。覚えとこう。
Ctrl+g j(k)
前の行(次の行)に移動
これ、時々やりたい場合があるんですよね。
インサートモードのまま行移動。覚えておきましょう。
Ctrl+n
補完
これですよ!これが今回二番目の大きな学びです(一番はウィンドウ操作)
Vimの保管機能あったんですね。ないと思ってた。
長い関数名とか全部打ち込んでましたよ。ようやるわ。
これはちょっと、ガンガン使って慣れよう。だいぶ速くなるはず。
Ctrl+e
補完ウィンドウを閉じる
Ctrl+n
とセットですね。
プラグイン
NERD tree
冒頭で「プラグインとかいれてる場合じゃない」みたいなこと言いましたが、これだけ入れました。
いちいちVimを抜けずにファイルを操作できます。
ウィンドウ操作と組み合わせて使うと便利です。
それでは!
Macで、一瞬でインサートモードを抜けて、確実に日本語入力も解除する方法があったら教えてください!