見出し画像

はじめてGolandを使うときに知っておくと便利なショートカット集

こんにちは、エンジニアの土屋です。

早いもので2020年も残すところ約2ヶ月となりました。今年は本当にあっという間でした。
依然としてコロナの脅威は収束の目処が立っていませんが、Go to トラベルやGo to Eatなどを利用する方も増えてきていて、徐々にwithコロナな感覚が社会に浸透してきているように感じています。

さて、この一年の自分の仕事を振り返ってみて特に印象的だったのが、初めてGolangに触れ、新たな業務アプリケーションを1から作成したことでした。

この案件の技術的な部分ついては弊社エンジニアの西尾さんが丁寧にまとめてくれていますのでご興味があればぜひ読んでみてください。

この記事の目的

VSCodeしか触ったことがない私がIDE(Goland)を使ってみて感じた感動を同じように初めてGolandを触る方にシェアすることで世の中に一つでもハッピーが増えればと思いこの記事を書かせていただきました!
Let's Go To Goland!

Golandとは

JetBrains社製のGolangに特化したIDE(統合開発環境)です。
強力な補完機能やデバッグ機能、豊富な拡張ツール等Golang開発の生産性を大きく向上させてくれます。

なぜGolandなのか

VSCodeでもGo開発は可能ですし、何より無料というのが大きな魅力です。
しかし、自分は月額約1000円を払ってでもGolandを使うことにしました。
理由は以下のとおりです。

① デバッグ設定などといった設定周りに時間をかけたくなかったため(開発期間に余裕がなかったので)
② VSCodeだとメソッドジャンプなどの一部機能の挙動がイマイチだと感じたため(しっかり設定すれば上手くいくかもしれません)
③ Golandならテストファイルをテンプレート付きで作成できるため
④ 共同開発者がGolandを使っていたためエディタの差異でコミュニケーションコストが掛かるのを防ぐため

お役立ちショートカット集

Action:Search Everywhere

コマンド:shift + shift
できること:ファイル、型、アクションなどの検索
ファイル名検索がとても便利です。
他にもAction名で検索すればショートカットを忘れても処理を実行することができます。

スクリーンショット 2020-10-25 17.47.42

Action:Find in Path

コマンド:cmd + shift + F
できること:プロジェクト内の文字列検索
VSCodeと違うのはコードブロックが表示されて、この画面の中でコード修正できる点です。これがDX的には意外と大きな差だったりします。

スクリーンショット 2020-10-25 17.53.06

Action:Replace in Path

コマンド:cmd + shift + R
できること:プロジェクト内の文字列検索および置換
Find in Pathの置換版です。VSCodeにもある機能ですが、やはり便利な機能です。

スクリーンショット 2020-10-25 17.59.11

Action:Add Selection for Next Occurrence

コマンド:ctrl + G
できること:ファイル内の同一文字列の選択
ファイル内の選択箇所以降で同一文字列を上記コマンドを実行するごとに選択(キャレットを追加)していきます。
Replace in Pathとの使い分けとしては選択したい文字列が他の文字列に部分一致してしまう場合などには安全のためにこちらで選択して修正するようにしています。

スクリーンショット 2020-10-25 18.09.53

Action:Extend Selection

コマンド:option + ↑
できること:意味のある単位で選択範囲を拡張
これはとても便利な機能です。
たとえば、「Hello」上のどこかにカーソルがある状態で上記コマンドを実行すると、「Hello」が選択され、その後実行していくと「Hello, World」→「"Hello, World"」→「("Hello, World")」のようにいい感じに選択範囲が広がっていってくれます。
長い変数名やメソッド名を選択する際に重宝します。

また、先程のAdd Selection for Next Occurrenceとの合わせ技が強力です。
長いメソッドの一部を修正する際にExtend Selectionで選択してAdd Selection for Next Occurrenceを何回か実行することでファイル内の該当メソッドの把握(検索)と修正が簡単に行えます。(各箇所自分の目で確認していくので一括置換で間違って修正してしまうリスクを回避できます)

Action:Clone Caret Below (Above)

コマンド:option + option(押したまま) + ↓ (↑)
できること:上下どちらかにキャレットを追加
キャレットはすべて同じ動きをするのでshift + ←(→)で矩形選択することもできます。

スクリーンショット 2020-10-25 18.25.25

Action:Go to Test

コマンド:cmd + shift + T
できること:テストファイルとコードファイルの切り替え、テストファイルの作成
単体テストを書いているときに関連ファイルを開くことでタブが増えてテストに対応するコードファイルを見失ってしまうことが多々ありましたが、このコマンドを知ってからは探す必要がなくなりテスト作成が捗るようになりました。

Action:Back

コマンド:cmd + [(トラックパッドでも可)
できること:直前に開いていたファイルを開く
VSCodeにもある機能ですが、トラックパッドで「戻る or 進む」ができるのは直感的で感動しました。
メソッド定義へジャンプしていく内に迷子になってしまうことが多々ありましたが、これを知ってからは定義を追っていくことへの心理的なハードルが下がりました。

Action:Recent Files

コマンド:cmd + E
できること:最近開いたファイルが一覧で表示される
デバッグなどで多くのファイルを開いたときに活躍します。
さくっと一つ前に戻りたいときはBack、一覧で確認したいときや数個前に戻りたいときはRecent Filesというように使い分けています。

スクリーンショット 2020-10-25 18.38.15

まとめ

Golandは本当に多機能なので、まだまだ知らない機能がたくさんあります。
Tipsやドキュメントを見て「こういうこともできるのか」という気付きをコツコツと蓄積していくことがエディターマスターへの道のりなのかもしれません。

エディターだけの話ではないですが、何にしても不便さに慣れるのではなく不便さを解消する方法を探求していくのがいいエンジニアなのかなと思うので、その意識は今後もしっかりと持っていければと思います。

この記事が気に入ったらサポートをしてみませんか?