コマンドvimについて(初歩的な部分)

この記事は ウェブクルー Advent Calendar 2018の8日目の記事です。
昨日はk5jpWCさんの「業務フロー、整理してますか？」でした。
8日目は@hosokawaが担当致します。よろしくお願い致します。




#はじめに
centosにおいていつもはviを使うのですがvimの方が多機能でオシャレなので少し調べました。基本的な操作を行うまでを記載しております。
御見苦しい点など多々ありますでしょうがどうぞご容赦ください。

# vimとは
Viという世界でも広く使われているテキストエディタの拡張版
VimScriptというものでVimの拡張を自由に表現することが出来る

要するにviの細かいカスタマイズが出来る進化したバージョン。

# インストール
ソースコードからインストールする場合もありますが今回はyum(パッケージ管理ソフト)を使います。

```
$ yum -y install vim-enhanced
```

# とりあえず使ってみる
vimには通常のノーマルモードと入力時のインサートモードがあります。
ノーマルモードではテキストの閲覧のみで入力は出来ません。
入力時はインサートモード、カーソル移動などをするときはノーマルモードで移動したほうが安全です。

以下が簡単な操作です。

| 操作内容　　 | コマンド 　　
|:-----------------------------|------------------------------:|:--------------:　　　　　　　　　|
|インサートモード | a or i  |
|ノーマルモード| esc          |           
| ↑          |k           | This         
| ↓          |j           | column       
| →          |l           | will         
| ←          |h           | be           
| 一文字削除  |x| center       
| 一行削除  　|dd  | aligned   
|次行を新規行として挿入しインサートモード|　　　(インサートモードにて)o　　　　　　
|設定内容を保存して終了        |(ノーマルモードにて):wq or :x
|設定内容を保存せず終了             |(ノーマルモードにて):q!          |



vimで開いてノーマルモードからインサートモード(a)、入力したらノーマルモード(esc)に戻し保存(:wq)。て流れです。

続いては移動コマンドです。全てノーマルモードで行います。~~（移動はノーマルモード、入力はインサートモード。

| 操作内容　　 | コマンド 　　
|:-----------------------------|------------------------------:|:--------------:　　　　　　　　　|
|0　　　　　 | 行頭へ|
|$　　　　   |　行末へ        |           
|gg          |   ファイルの先頭へ       |          
| G        |   ファイルの最終行へ        |        
| /       | マッチする文字を検索し移動 |          
| w       | 次の単語の先頭へ          |
|e 　　　　 |単語の最後へ|
|b  　　　　　|前の単語の先頭へ|
|Ctrl+f　　　　　　|次のページへ
|Ctrl+b       　 |前のページへ

| 操作内容　　 | コマンド 　　
|:-----------------------------|------------------------------:|:--------------:　　　　　　　　　|
|y| コピー|
|Y　　　　   |　行をコピー        |           
|p          |   ペースト       |          
| P       |   現在位置にペースト        |        
| x       | カーソル下の一文字を削除 |          
| d       | 削除          |
| D　　　　 |行内のカーソル以降を削除|
|dd  |行を削除|
|u|元に戻す|
|C-R|操作を進める
|r|変更(一文字)|
|R|変更(入力したもの全部)|
|c|　一文字消してインサートモードへ |           
|C|   一行消してインサートモードへ  |          
|A|   行末に移動してインサートモードへ |
|a| カーソルの一つ右からインサートモードへ |  
|I| 行の始まり(文字の開始位置)からインサートモードへ |
|>|右へインデント|
|<|左へインデント|
|gu|	小文字へ
|gU|大文字へ
|. | 事前の操作を繰り返す|



ここまではviとほとんど変わりません。
以降がvim特有のコマンドになります。

# テキストオブジェクト
| 操作内容　　| コマンド 
|:--:|:------------:|
|daw　　　　|　　　　 　　　　カーソル前後の単語を削除する
|da　　　　　　|  カーソル前後()に囲まれた部分を()も含めて削除する　　　　　　　　　　　
|di　　　　|　  　　カーソル前後の()に囲まれた部分を削除する
|ca　　　 |   カーソル前後()に囲まれた部分を()も含めて変更する
|ci　　　 |　　　　カーソル前後の()に囲まれた部分を変更する
|das　　　|　　　　　　　　　          　カーソル前後の文を削除する
|dat　　　|　　　　　　　　　　カーソル前後のタグを削除する

基本的な操作は以上になります。
続いてvim特有のモードについてご紹介します。

# ビジュアルモード
ビジュアルモードではテキストを文字単位、行単位、矩形単位で選択し、選択したテキストに対してVimのコマンドを適用出来ます。
Vimでは3種類のビジュアルモードが使えます。
文字単位で選択するビジュアルモード、行単位で選択するビジュアルラインモード、矩形(長方形)で選択するビジュアルブロックモードの3種類です。
ノーマルモードで下記コマンドを入力するとそれぞれのビジュアルモードが使用できます。


| 操作内容　　 | コマンド 　　
|:-----------------------------|------------------------------:|:--------------:　　　　　　　　　|
|文字単位|v|
|行単位|V|
|短径|ctrl+l|
|ビジュアル解除|Esc|





----------------------------------

明日は、wc-takaharaさんです。よろしくお願い致します。

ウェブクルーでは一緒に働いていただける方を随時募集しております。
お気軽にエントリーくださいませ。

[開発エンジニアの募集](https://hrmos.co/pages/1004681658307198976/jobs/0000005)
[フロントエンドエンジニアの募集]
(http://www.webcrew.co.jp/recruit/creative.html)