【初学者】Vimerへの第一歩。

# はじめに
プログラミングを学習し始めて9ヶ月目の私が最近、知り合いのエンジニアの影響でVimに興味を持ち始めました。
なるべくマウスやトラックパッドを使用しない**「脱マウス思考」**も取り入れたので、
**「そのためにやっていること」**を記事にしました。

# 環境
私のmacbookはJIS配列で、Vimを操るためにはUS配列がいいと聞いたので「Apple Wireless Keyboard」を即ポチりました。
- macOS
- US配列

# macのキー設定を変更する
まず始めたのは、
macのアプリ間の移動やデスクトップの表示などのmacOS特有の動きを、`マウスやトラックパッドをなるべく使用せずショートカットキー`を用いる」です！

## 修飾キーの設定(mac設定)
まずはキーを押しやすい配列にカスタマイズしました。

### やり方
「システム環境設定」→「キーボード」→「修飾キー」  
※macの設定だと特定のキーしか変更できません  
→もし変更したい場合は下の**「karabinerの設定」**を参考にしてください。  

下の画像は私が修飾キーで設定したものです。ご参考までに。
<font color="Red">(「F1,F2などのキーFnキーを標準のファンクションキーとして設定」にチェックは入れていません)</font>
![スクリーンショット 2021-03-22 18.18.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706118/aaefdc9d-afd7-724a-b453-d0f5c84f5076.png)

## ショートカットキーの設定

### やり方
「システム環境設定」→「キーボード」→「ショートカット」 

**私が設定したショートカット(よく使う)は以下になります。**
<font color="Red">(US配列で上記修飾キーのためこのような設定になっています。JIS配列や違う修飾キー設定の方はお好みの設定にしてください)</font>

* 「⌘」+「tab」 = アプリの切り替え→**デフォルト設定**
* 「⌘」+「space」 = spotlight検索→**デフォルト設定**([spotlight検索とは](https://support.apple.com/ja-jp/HT204014))
* 「control」+「space」 = かな英切り替え→**オリジナル設定**
* 「fn」+「F11」 = デスクトップ表示→**オリジナル設定**

## karabinerの設定(無料)
現在macbookのキーボードの上にワイヤレスキーボードを乗せて使っています。
そうすると、タイピング中にmacbookのキーボードが反応してしまうのが問題でした。
それを解決するため、[karabiner](https://karabiner-elements.pqrs.org/)というアプリをインストールしました。
ちなみにこのアプリはキーバインドの変更もできます。
- [キーボード無効化](https://bamka.info/keyboard-mukoka)
- [キーバインドの変更](https://pc-karuma.net/mac-app-karabiner/)

# Google ChromeをVim化
正直これを見せられた瞬間、
「脱マウスしよう！！」
と決めたほど衝撃が強かったのがchormeのプラグイン**「vimium」**です。
[これを参考にして設定を行いました](https://qiita.com/satoshi03/items/9fdfcd0e46e095ec68c1)

## よく使うショートカット
### ページの上下移動　下 「 j 」 , 上 「 k 」
閲覧するときにマウスのホイールを回したり、トラックパッドをなぞったりしなくても簡単にスムーズに閲覧できます。
速度を早くしたい場合は、
「d」「u」でより早い上下移動が可能になります。
ほかにも、
ページ最下部へ移動「shift」+「g」
ページ最上部へ移動「gg」

### 前のページに戻る 「 h 」 , 次へ進む 「 l 」
わざわざ左上の矢印にカーソルを合わせて戻ったりしなくても、ひとつキーを押すだけで戻ったり進んだりできます。

### リンクへ飛ぶ 「 f 」
**これが一番感動しました。**
「f」を押すとリンクの隣にキーガイドが表示され、入力するとそのリンクへ飛べます。
もうマウスいりません！
![vimium1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706118/513dd2f4-061e-d678-9035-236ce4c50a85.gif)


### タブ移動　左 「 shift 」 + 「 h 」 , 右 「 shift 」 + 「 l (エル) 」
chromeで開いているブラウザのタブを左右移動できます。これはvimiumを入れていなくても、
「tab」+「control」で右
「tab」+「control」+「shift」で左
に移動できます。
問題なのが、<font color="red">カーソルが入力待機状態だと「H」,「L」と入力</font>されてしまう点です。
そういう時は、上記の「tab」+「control」で移動するか、**「esc」を押してからにする**かです。
私は後者の方法で解決しています。

###  コピーしたテキストで一発検索「 shift 」 + 「 p 」
いつも検索をするとき、「何らかのテキストをコピーして検索バーに貼り付けて検索をする」
といった方法を取るときがありますが、これを使えば
**「⌘」+「c」でコピーして「p」を押すだけですぐに検索をしてくれます。**




### その他
- 検索バー「o」
検索バーが表示されます。

- ブックマーク検索バー「b」
自分がブックマークに登録しているワードを入力して飛びます。
<font color="red">※ブックマーク名を覚えていないと多用できないです</font>

- 新規タブ　「t」 , 「⌘」+「t」

- 消したタブを元に戻す　「⌘」+「shift」+「t」

- タブを消す　「⌘」+「w」 , 「x」

- テキストの選択 「v」(「c」)
これも今まではマウスを使わないと成せなかったもののひとつで、感動しました。
が、結構手こずってしまうのでトラックパッドを使っちゃってます。

# VSCodeでVimの設定
拡張機能の[「Vim」](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim)をインストールします。
参考：[VSCodeで始めるVim](https://qiita.com/jintz/items/d357478271179c90ffab)
## よく使うコマンド
|コマンド  |説明  |
|---|---|
|h,j,k,l  |上下左右の移動  |
|i|カーソルの左から挿入モードへ|
|a|カーソルの右から挿入モードへ|
|I|行の先頭から挿入モードへ|
|A|行の終端から挿入モードへ|
|v|ビジュアルモードへ|
|esc|通常モードへ戻る|
|control+c|通常モードへ戻る|
|u|戻る|
|control+r|戻る|
|x|カーソルの下の1文字削除|
|dd|1行削除|
|yy|1行コピー|
|p|カーソルの右(下)に貼り付け|
|di"|""の中身を削除|
|yi"|""の中身をコピー|
|⌘+0|ディレクトリを対象にする|
|⌘+1|コードを対象にする|

# おわり
まだこれらをはじめて一週間ほどなので手が馴染んでいませんが、どんどん慣れて一人前のVimerを目指したいと思います。
最後まで見ていただきありがとうございました。