Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimの使い方で新しい事を学習したのでまとめ(ウィンドウ操作、インサートモード時のショートカットなど)

$
0
0

こんにちは。

かれこれ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+cCtrl+[インサートモードを抜ける

これはやはり最速でやりたい操作ですね。めちゃめちゃ頻繁にやるので。
今までは親指と中指でESC英数を同時押しして抜けてました。
(私の環境はmacの日本語キーボード)

一度完全に左手をキーボードから上げることになるので無駄が大きい。

英数も押す理由は、確実に日本語入力モードを抜けたかったからです。
ノーマルモードで日本語入力をすることはありませんからね。

今後はとりあえずCtrl+cで慣れることを目指そう。

jjにキーバインドするという方法もあるようですが、とりあえずデフォルトで出来るところまでやってみる。

ここはまだ最適化の余地がありそうだなあ。

Ctrl+h一文字削除

バックスペースと同じ機能です。
バックスペースはキーボードの右上にあるので、それよりもこのショートカットの方が素早く押せますね。

Ctrl+u行頭まで削除

途中まで書いて「やっぱやめた!」って言う時に便利らしいです。覚えとこう。

Ctrl+g j(k)前の行(次の行)に移動

これ、時々やりたい場合があるんですよね。
インサートモードのまま行移動。覚えておきましょう。

Ctrl+n補完

これですよ!これが今回二番目の大きな学びです(一番はウィンドウ操作)
Vimの保管機能あったんですね。ないと思ってた。
長い関数名とか全部打ち込んでましたよ。ようやるわ。
これはちょっと、ガンガン使って慣れよう。だいぶ速くなるはず。

Ctrl+e補完ウィンドウを閉じる

Ctrl+nとセットですね。

プラグイン

NERD tree

冒頭で「プラグインとかいれてる場合じゃない」みたいなこと言いましたが、これだけ入れました。
いちいちVimを抜けずにファイルを操作できます。
ウィンドウ操作と組み合わせて使うと便利です。

それでは!

Macで、一瞬でインサートモードを抜けて、確実に日本語入力も解除する方法があったら教えてください!


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>