vimとは
Vimという名称は、オリジナルのviエディタに近づくことを目標として、開発当初Vi IMitation(viの模倣)の略とされていた。しかし、やがてviを超えることを目指してVi IMproved(viの改良)とされるようになり、今日ではオリジナルのviを大きく上回る機能を持つに至っている。
[参考wiki]https://ja.wikipedia.org/wiki/Vim
vimには4種類のモードがある
ノーマルモード
"ESC"でノーマルモードになる編集モード
"i"で編集モードになる。(--insert)コマンドモード
ノーマルモードからコロン:を打つとなる。→戻る時は"ESC"ビジュアルモード
"v"でビジュアルモード(選択モード)になる
上記の4つは当たり前のように知って、使えるようになっておきましょう。
以下からは、より具体的な操作方法を見ていきます。
【ファイルの保存】
:w → 変更点の保存(ノーマルモード→:w)
:w → ファイル名 →名前をつけて保存
:q → 終了
:q! → 変更点を無視して強制終了!
:e ファイル名 → 他のファイルを開く
ファイルの保存も基本中の基本ですね!
【移動系コマンド】
これをそつなく扱えるようになると非常に手際よく作業できます。
gg → 一番上にカーソル
shift + g(G)→一番下にいく
ctrl + b →一画面上にいく
ctrl + f →一画面下にいく
w → 次の単語の始まりにカーソルがいく
b → 一つ前の単語の始まりにカーソルがいく
^ → 行頭へカーソル移動
$ → 行末へカーソル移動
f + "文字" → 文字までジャンプ, ;で次にいく
% → 対応する括弧にジャンプ
【選択系(ビジュアルモード)について】
v → 文字単位のビジュアルモード
shift + v(V) → 行単位のビジュアルモード
ctrl + v →句形単位
<応用>
【全選択】
gg V G → ggで一番上に行って,Vで行単位のビジュアルモードになって→一番下までいく
【カット、コピー、削除】
x →カット
dd → 行単位のカット消したい時は
数字dd → 複数行のカット
p → 貼り付け
yy → コピー
【検索】
n → 下方向に検索
N → 上方向に検索
*→今カーソルがある位置の単語を下方向に検索
#→今カーソルがある位置の単語を上方向に検索
【置換】
:s/変更するもの/変更語のもの →でカーソルにあっている行を置換する
:s/変更するもの/変更語のもの/g →でカーソルにあっている行のもの全て置換する
:%s/変更するもの/変更後のもの/g →で全体の中で置換
:%s/変更するもの/変更後のもの/gc→のようにcを最後につけると置換する前に確認が入る
【操作の取り消し】
これもよく使います。操作しながら覚えていきましょう。
u → 前の操作を取り消す
ctrl + r → 取り消しを取り消す
【windowの分割】
いくつもターミナルやvimを開くことはよくあるので使えるとgood!
:sp(スプリット)→縦に分割する。上でhtml,、下でcssを編集したいなどするときに使う。
画面分割したら「ctrl + w」+ w →で画面を下に行く。
:vs→横に分割する。
【タブの切り替え】
:tabnew →新規タブを開くことができる
:tabe (開くファイル)→で新しいタブで開くファイルも指定できる
gt→でタブを変えることができる
:tabcloseでtabを閉める
vim -p (ファイル名) (ファイル名)でファイル名の数だけタブを開いて
. (ピリオド):直前の操作を繰り返す
【インデントの調整】
= → インデントを揃える
「gg」→「 shift+v」→「 shift+g」→ 「=」で全ての文に対してインデントを揃える
【補完機能】
ctrl + n → で、「session」と入力したいときに「se 」+ 「ctrl+n」でsessionと出てくる
【短形選択】
ノーマルモード + 「ctrl + v」 +「shift + i」+ 「入力したい文字」で選択した文字列に一気に文字を挿入することができる。
【テキストオブジェクト】
citとうつと単語が消えて挿入モードに入る
c /d /y → chnage (delete & insert)
i/a → 中身か全体か
t/"/)/] → tag
cit→タグの中身を消して挿入モード
cat→タグで囲われたとこ全部を決して挿入モード
di"→"で囲われた中身を消す
【便利な設定を使う】
.vimrcに書いておくと良いですね。
:set number →行番号を表示
:set nonumber →行番号を非表示
:syntax on →コードに色をつける
:syntax off →コードの色をつけない
:set tabstop=数字 →タブの文字数を設定する
:set ignorecase →検索のときに使われるもので大文字小文字の場合分けをしなくて良いときに使う。
:set noignorcase →小文字だけと設定できる