この記事はAdvent Calendar 2019 49日目の記事です。
始めに
この記事は全て個人の見解なので気を悪くしてしまったらブラウザバックしましょう!
さて、お前はだれ?
はい、19の亀茶です。ひっそりと活動をしているので、ほとんどの人とは初めましてですね。この気に僕の存在をしっかりと目に焼き付けときましょう(まぁ得なことは何もありませんが...)
ところでtraPには至る所に全強(ここではプログラム関係強め)がいます。僕も全強を目指してはいますが口に出すのも恐ろしいくらいです、あ、記事にはしてますが...
そんな強強の方々ってもの凄いスピードでコーディングしてずっとキーボードをカタカタ言わしている、そんな感じしませんか?僕はします。
そしてそんな方々のPC画面をチラ見する訳ですね、するとどうやらVSCodeとVimっていうエディタが有名らしい!ってことが分かるのです。
すると当然どちらがカッコ良さそうか調べ出す訳です、はい完全に形から入ってますね、まぁ気にしないでおきましょう。そしてそこからこんな結論が出されるのです...
「Vimってカーソル移動とか全部キーボードで完結するらしいぞ!何それエモい!!」
はい、まぁつまりVimってカッコ良さそう...って記事です。
Vim
さてさて、少し長い「始めに」が終わったところで、本格的にVimについてお話をしたいなと思うのですが、残念な事に僕はVimの機能のうちまだ1割も使いこなせていません!
僕が強強Vimmerなら「ここで僕のコーディングを見て下さい(gif画像バーン!)」とできるのですが、できないのでここでは自分がVimを使い始めて「この機能は便利だなぁ」と感じたものを書いていきたいと思います。なので、コマンドに関する詳しい説明等は省いてます。お気持ちを知って欲しいなぁと思って書いてるので...ちなみに僕は宗教戦争に巻き込まれたく無いのでそこら辺はあしからず。
- モード
僕が始めにVimを使い始めた時、一番始めにつまづいた概念です。なにせVimを起動して文字を入力しようとしても何も反応しないんだから...
Vimについてググればすぐに分かることなのですが、Vimには主にノーマルモード、挿入モード、ビジュアルモード、コマンドモードのモードがあり。これらを上手く使用する事で高速編集が実現するのです!
ここで数少ない僕が知っている機能を少し紹介したいと思います。
%
%
%
...
みたいなコードを書きたいとしますね?(ちなみに.texのコードのコメントのつもりです)
この場合
ノーマルモードから挿入モードに移行する時に、書きたい%
の個数を打ちます。そして、挿入モードに移行した後%
を打って<ESC>
キーを打ちます。するとどうでしょう、一気に%
が補完されたではありませんか!
- テキストオブジェクト
最も僕が使用する機能ですね。具体的な例としては以下がありますね
void hoge(int hoge, int hoge){...}
みたいなコードがあるとしますね。ここでカーソルがvoid
のi
にあるとしますね(凄い設定ですねこれ)そしてこのvoid
の単語を消したいとします。そんな時はとりあえず<Esc>
キーを押してノーマルモードに移行しますそして脳死でdiw
と入力します。
するとですね、なんと消えるんですねvoid
が!
凄くないですか!これ!初めてこの機能使った時ちょっとした感動を覚えました僕
しかしこれで驚くのはまだ早いですよ!
さらに(...)
みたいに括弧の中を削除したい、そんな時ありますよね
そんな時は()
の中にカーソルを持ってきて、これまた脳死でdi(
またはdi)
と入力します。すると...
もう言わなくても分かりますね、そう、消えるんです!きれいに!
普通の場合ってわざわざカーソルを(
に持ってきてそこから)
まで移動させてdelete
とする必要があるのですが、そんなまどろっこしい事はしなくて済むのです!
- マクロ(マイクロマクロ)
気が付いたら同じ作業繰り返してるような気がする〜
そんな経験はありませんか?僕は今日ありました
丁度下のようなコードを書こうとした時です(ちなみに...
の部分はあと数十個ぐらい?)。
hogehoge(hoge, 100)
hogehoge(hoge, 200)
hogehoge(hoge, 300)
...
いちいちコピペして数字の部分だけ変えて〜
とか面倒臭くてできたものじゃありません!
そんな時にこの作業をマクロに記憶させておけば良いのです。
具体的に言えばノーマルモードでq
とおしてそのあとマクロを割り当てたいキーa~z,A~Z
を押します。するとマクロの記憶が始まるのでそこでyyp$100*
ここで*
の部分にはCtrl
キーを押してa
を押してください。ここまでが記憶させておきたかったコマンドの部分なのでq
を押してマクロの記憶を終了します。
そして記憶させたコマンドをn回行いたい!
ってときはn@*
(この*
は自分が割り当てたキーを押してください)と入力します。
すると一瞬で面倒臭かった作業が一瞬で終わってしまうのです!
どうです?感動しましたか?
- ユーザー数とコミュニティ
少し調べてみたのですがVimはどうやら昔から愛されていたエディタらしく、そのコミュニティが活発みたいなのです。具体的には年に一回VimConfという国際カンファレンスが開催されるらしいのです!
凄そう...恐れ多くて僕は行けませんね
またこの記事とは別にVimのアドベントカレンダーがあるのでそこを覗きにいくのもまたよろしいのかも!
どうでしたか?少しVimに興味を持っていただけたでしょうか?
ちなみにこの記事で書かれていた<Esc>
キーを入力する代わりにCtrl+c
やCtrl+[
でも同じ様な働きをしてくれます。
今回の記事はこれで終わりです!
明日はTAMAGOさんとgymnemaさんの記事です!
楽しみ〜