VsVimのすゝめ (2) : VSおさらい編
記事の一覧
注意
この記事では例えばCtrl
キーとV
キーとを押す場合に、VSのショートカットキーについて言及する場合はCtrl + V
といった感じで表記しますが、VimでのショートカットキーについてはC-v
といった表記をします
VSの便利な機能達
VsVimの便利さを語る前にそもそもVSで元からどういう事ができるのかに触れようと思います。
機能、といいながら取り敢えずショートカットでよく使うのを列挙してみました。VSは特にデバッグ周りを簡単にできる便利機能が本当にたくさん入っているので探してみると幸せになれると思います。
ファイル移動
Ctrl + Tab
マジクソ便利。開いたファイルの履歴を持っていてくれる。履歴は使うたび更新されるので、例えば.h
と.cpp
を行き来するのも同じキーを押すだけ。楽。キーが押しやすいのも良。
Ctrl
を押したままTab
を複数回押すと履歴を更に遡れる。
実は開いてるウィンドウに移動したりもできるので、キーボードから手を離さず君の起こしたその素晴らしいコンパイルエラーの箇所を見に行くことも出来る。最高にクール。
左右に移動したい時に矢印とかいうダサいもの使わなくても行ければもっとクールだったのにな
宣言/定義に移動
(Ctrl +) F12
Alt + F12
言わずもがな。Altを押していると現在の位置に宣言/定義を表示できる。宣言へ移動は実はCtrl + F12
らしいが特にCtrlを押さなくても宣言に移動できる
全ての参照を検索
Shift + F12
一応シンボルで検索はかけてるみたいで同じ名前の関数(例えばupdate()
とか)でも、どのクラスのアップデートかとか見てくれるんだけど、絞って表示がないせいでイマイチの使い勝手の子。一応テキスト検索もしてるのでコメント欄とかも拾ってくれたりする。ソートもできないし…小規模コードだったらこれで充分
単語単位で移動
Ctrl + 左右キー
例えば
nomalEnemyGeneratedNum = nomalEnemyPreGeneratedNum + normalEnemyGeneratedNumAtThisStep;
みたいなクソコードがあった時に、左右キーで移動すると時間がかかるけど単語単位で動けば一瞬。シングルトン使った処理書いてたりすると長くなるよね、わかる(白目)
矢印とかいうゴミを使わなければ最高だった
インクルードされたファイルに移動
Ctrl + Shift + G
#include"hoge.h"
のhoge.h
の位置にカーソルがある時に使うとhoge.h
(ファイル)に移動できる。いや、F12でいけるようにしようよ
前の位置に戻る
Ctrl + -
移動系をした後に元に戻るのに便利。ちなみにShift
もおしておくと逆方向に戻れる。
現在のファイルを自動インデント
Ctrl + K , Ctrl +D
神。インデント戦争とか言う不毛なものからドロップアウトできる。Tabだろうがスペースだろうが、設定すればいいんじゃないですかね。僕はどっちでもいいのでしてません。
気になるあの子がスペース派だとわかった瞬間設定を変えてこのショートカットを全てのソースで叩く、そういう青春もあるかもしれません。ただし、ソリューションもしくはプロジェクト内に複数設定を混在させるのはやめようね。
ショートカットはキルデスで覚えるとよろしい(?)ちなみに選択範囲のみインデントしたい場合は選択してCtrl + K , Ctrl + F
。ケンタッキーフライドチキンとか覚えとけばいいんじゃないすかね(適当)Ctrl
押しながらKD
はCtrl
押しながらAKF
と同じ。AK47とかで覚えとけばいいかもだけどKDで足る。
関数の定義を自動生成
Ctrl +.
して選択肢から「関数名
でファイル名
の定義を作成」
これは地味に便利。hoge.h
でこれを使った場合、ちゃんとhoge.cpp
に定義を作ってくれるしインクルードもしてくれる。厳密にどう言う判定なのかは謎。
本来はCtrl + .
は確かヒントか何かを出すキーだったはずだけどこれしか使ってない
出てきた選択肢を矢印で選択しないといけないのが辛い
補完
Ctrl + Space
シンボルで補完が出るのでスコープが違う変数がかかったり、ありもしないメンバが候補に出たりは(基本的に)しない。また、候補の横のアイコンからそれが関数なのか変数なのか等もわかる。
テンプレート引数のところで使おうとするとうまく動かないのなんとかならないですかね。
関数の宣言の参照
Ctrl + Shift + Space
関数の引数を確認したり出来る。カーソル位置の引数は太文字で表示される。オーバーロードされている場合、自分で宣言を選べる。前はデフォルトは自動で検知した合致する型のオーバーロードが表示されてたけど今は自分で選ばないといけないみたい
行ごと移動
Alt + 上下キー
行ごと移動する。上に移動する時は1行上が1行下になることになる。
矢印…
リネーム
Ctrl + R, Ctrl + R
シンボル単位で名前を変えてくれる。
名前を考えるのが苦手な僕のコードは取り敢えずclass Hoge
やvoid Fuga
が暗躍跋扈する。動くようになってcommitが近づいてきたらこいつの出番。素晴らしいコードの出来上がりで今日も拙者お疲れって感じ。
純粋仮想関数周りでたまにうまくリネームされないので何度かやらないといけなかったりする。
検索
Ctrl + F
Ctrl + Shift + F
まあこれはどこでも同じ。VSで特に嬉しいことがあるとすれば合致する文字列がファイルのどこにあるか右側を見るとわかる。あと選択範囲内のみで検索可能。Shift
を押すと検索結果を一覧表示できる。目grepなどが出来たり
置換
Ctrl + H
これも同じ。VS上で特段変わる事と言えば選択範囲内のみに置換を適用する事ができるとか。新しい系列のクラス作るの面倒な時は既存のをコピって範囲選択して置換したりするのは内緒。選択範囲置換、意外と使い勝手いい。
矩形選択
Alt + 選択
選択はキーボードかマウスかで。矩形選択後にそのまま入力すると複数行に変更が入るのが便利な時がある。あとこれで範囲絞って置換が使える場面も稀にある。
矢印かマウスを使わないといけないのが玉に瑕
ステップアウト/ステップイン/ステップオーバー
F10
: ステップオーバー
F11
: ステップイン
Shift + F11
: ステップアウト
簡単に使える。最強機能なのに初心者だったりすると意外と使ってない人が多い気がする。かくいう僕も先輩に教えてもらって知りました。まあ、こういうの意外と気づくタイミングないよね。
ブレークポイント
F9
楽。これとステップ実行でめっちゃデバッグ捗る
ビルド
F5
Shift
も押すとでビルドを中止できる
コード内容を適用
Alt + F10
デバッグ実行中などにコードを変更した場合に、再度ビルドしなくてもコードの変更内容を反映できる。UIとかの位置の調節とかに便利。ただし、例えば初期化などの位置を書き換えた場合に遡及的に変更が反映されるわけではないので注意。
情報を表示する
Ctrl + K, Ctrl + I
カーソルのある位置のものについて情報を表示する。変数のコメントを見たいときや赤波線の内容を確認したいときなどに便利
取り消し
Esc
大体の行動(検索窓を開くなど)を取り消して戻れる。実行後に戻すのはundo。あくまでこれは「しようかと思ったけどやっぱやーめた」とかに使う
ブックマーク
Ctrl + K, Ctrl + K
: 登録/解除
Ctrl + K, Ctrl + N
: 次のに移動
Ctrl + K, Ctrl + P
: 前のに移動
欲しい機会があるかはわからんが、たまに3箇所以上を行き来する必要があったりするときは便利。もしくは1つだけ登録してホーム的な使い方もできる
コピー
Ctrl + C
選択しないで押すと1行をコピーできる
切り取り
Ctrl + X
何を今更と思うかもしれないけど、選択せずに使うと1行を消せるのでたまに使う
1行切り取り
Ctrl +(Shift +) L
1行切り取る。Shiftを押すとクリップボードには入らず1行削除になる。
過去のクリップボード履歴から貼り付け
Ctrl + Shift + V
Vを連打した数だけ前のやつが見れる。何気にこれ欲しいと思ってて気付いてない人いそう。
折りたたむ/展開する
Ctrl + M,Ctrl + M
コードの規模が大きくなって来たらとりあえずこれで折りたたんで全体を眺めたりする。そもそもそんな状態の時はファイルわけをしようという話だけどなかなかそれが難しい時もあるんだよね、うん
コメントアウト/アンコメント
Ctrl + K, Ctrl + C
: コメントアウト
Ctrl + K, Ctrl + U
: アンコメント
頻度は高くないけど便利。ストレスが減るし、気軽にコメントアウトできる。
行頭/行末,ファイルの先頭/末尾に移動する
Home
: 行頭に移動する
End
: 行末に移動する
Ctrl + Home
: ファイルの先頭移動する
Ctrl + End
:ファイルの末尾に移動する
Home
,End
キー意外と使わんやろ?Vim使わないなら便利やで。
画面単位で上下に移動する
PgUp
PgDown
Vimを使えない悲しい環境なら便利なので使ったほうがいい。画面単位で上下できるよ
Ctrl
つけると画面内の一番上/下に移動出来るけどこれは滅多に使わん
まとめ
はい、とりあえずVSのオススメ機能を並べました。「そうそうこれ便利」みたいなのから「こんな機能あったのか」みたいなのもあったかもしれません。ちなみに全機能一覧なんかもあるから調べるといいかも。
VSの記事みたいな感じになってるけどそろそろVimについての話を始めようかと思います。
前の記事 : VsVimのすゝめ (1) : 背徳編 次の記事 : VsVimのすゝめ (3) : Vim説明編