この記事はソニックガーデン ソニックガーデン 若手プログラマ Advent Calendar 2024の12日目の記事です。
はじめに
ソニックガーデンには徒弟制度というものがあります。
わたしのような若手社員は弟子として親方の指導のもと業務に従事します。
ソニックガーデンの習わしとして弟子は親方の開発環境に揃えます。
ということで私はvimとRubyMineに入門しました🙌
とりあえず
vimとはなんぞやという方でvimに興味がある方はvimtutorをやってみましょう!
ターミナルでvimtutor
を実行すると開始できます。
最低限覚えておきたいコマンド
プログラミングを始めたての頃、.zshrc
をvimで編集したことがあり戸惑いました。
戸惑っている方、下記を覚えておけばなんとかなります!
-
i
: インサートモード- こちらで入力できるようになります
-
esc
- エスケープを押すことで各モードから抜けることができます
-
:q!
: 保存しないでエディタを終了(escで抜けてから) -
:wq
: 保存してエディタを終了(escで抜けてから) -
h, j, k, l
- カーソルキーでも移動できますがこちらで移動できると便利です
個人的vimのメリット
- キーボードで操作を完結できる
- 開発中にタッチバッドやマウスを触る機会が減る
-
h,j,k,l
でのカーソルの移動に慣れるとカーソルキーで移動するよりも速い - キーリピートの速度を上げるとvimでの開発体験がよくなります
個人的に便利だと感じたコマンド
カーソルの移動
- h: 左、j: 下、k: 上、l: 右
置換
user.id
user.name
user.image
:%s/user/current_user
とすると下記のように置換できます
current_user.id
current_user.name
current_user.image
-
:%s
- ファイル全体に反映
-
s
- 1行に反映
-
/gc
- 置換するかどうかを確認しながら置換できる
-
Replace with current_user (y/n/a/q/l)?
- y(yes): 1つずつ置換していく
- n(no): 置換せず次の対象に移動する
- a(all): 全て置換
- q(quit): 置換せず終了
- l(last): 1つ置換して終了
-
/g
- 1行に複数の置換対象がある場合、まとめて置換できる
- :s/user/current_user/g
"#{user.id}: #{user.name}" ⇩ "#{current_user.id}: #{current_user.name}"
ファイルの移動
コマンド | |
---|---|
shift + g | ファイルの一番下に移動 |
gg | ファイルの一番上に移動 |
shift + [ | 段落ごとに上へ移動 |
shift + ] | 段落ごとに下へ移動 |
インサートモード
- 文字を入力できるようになります
コマンド | |
---|---|
i | カーソルは前 |
shift + i | 行の最初に移動してインサートモード |
a | カーソルは後ろ |
shift + a | 行の末尾に移動してインサートモード |
o | 改行してインサートモード |
shift + o | 上の行でインサートモード |
文字列検索
user.id
user.name
user.image
コマンド | |
---|---|
/user | nで次のuserに移動 / Nで前のuserに移動 |
?user | nで前のuserに移動 / Nで次のuserに移動 |
コピー・ペースト・カット
コマンド | |
---|---|
yy or shift + y | コピー |
p | 下の行にペースト |
shift + p | 上の行にペースト |
dd | カット |
RubyMine
IdeaVimというプラグインを入れるとvimで開発できます!
RubyMineとvimに興味がある方はぜひ使ってみてはいかがでしょうか。
おわりに
最後までお読みいただきありがとうございました!
少しでもvimやRubyMineに興味を持っていただけていたら嬉しいです。
経験者の方、vimのおすすめコマンドやRubyMineの便利機能などぜひ教えていただきたいです!
ソニックガーデン 若手プログラマ Advent Calendar 2024の13日目は@bassarさんです。
お楽しみに!
参考リンク