vimとは
コマンドライン上で呼び出すことのできるエディターです。
CUI(コマンド・ユーザー・インターフェース)で使われることを前提に設計されたエディターです。
Unix/Linux系のOSを使っている人は、vimに触れる機会があると思います。それで、Vimでコンフィグを書き換えなければ行けないなんてことも多々あります。
さらに、サーバ上で直接的にソースや設定ファイルに変更を加えるときも、vimを使います。
なので覚えておいて損はないと思います。
vimの使うメリット
- キーボードだけで操作できるから慣れればとても生産性が上がる。
- sshでリモート開発などですごい役に立つ
- 何にしろかっこい(個人的な意見w)
vimを触れる前に基本だけ抑えよう
vimは、 6つの基本モードに加えて、6つのモードがあります。
そのうちの「NormalMode」、「InsertMode」、「VisualMode」の3つのモードについて今回は紹介していきたいと思います。
開いた時の状態を、NormalModeといい、NormalModeでは文字を打っても受け付けてくれません。
NormalModeで主にできることは、カーソル移動、コピー、削除などです。 ※詳しくは下のコマンド一覧で!
InsertMode とは、その文字どおり、文字を打ち込むときに使います。
InsertMode も起動方法は、基本的に i で起動させます。起動したら下に[– INSERT –]と表示されるはずです。
(他にも入力モードの起動方法はあります。※下のコマンド一覧に書いておきます。)
入力モードの終了方法は「esc」キーです。
VisualModeについてはあとで説明します。
vimを起動させよう
ターミナルからの軌道になると思います。
一応Linuxコマンドの最低限の復習をしましょう。
コマンド | 内容 |
---|---|
cd | ディレクトリの移動 |
ls | ディレクトリの一覧表示 |
pwd | カウントディレクトリーの表示 |
mkdir | フォルダーの作成 |
touch | ファイルの作成 |
cd ~ | ホームディレクトリーに移動 |
実際にvimを起動させていきます。
vim
と打つだけです。
もし、sample.textというファイルをvimで起動したいのなら
vim sample.text
と打てばsample.textを開いてvimが起動します。
※同じディレクトリにいる必要があります。
vimに触れよう
まずはカーソルの移動から覚えましょう。
コマンド | 内容 |
---|---|
h | カーソルを左に移動 |
j | カーソルを下に移動 |
k | カーソルを上に移動 |
l | カーソルを右に移動 |
とても基本的な操作です。必ず使うので覚えておきましょう。
十字キーでも操作は可能ですが。それではVimの意味がないので h,j,k,l を使いましょう。]
入力と保存、終了をやってみよう!
コマンド | 内容 |
---|---|
i | カーソルの位置から入力モードを起動 |
a | カーソルの位置から1つ進めて入力モードを起動 |
o | カーソルの位置から改行して入力モードを起動 |
:w | 保存 |
:q | 実行中のタブを閉じる |
:wq | 保存して終了 |
:q! | 保存せずに終了 |
ZZ | 上書き保存し、viを終了 |
:xa | 変更があるタブを保存してすべてのタブを閉じて、ターミナルに戻ります |
3つもモードについて少し説明します。
コマンド | 内容 | 起動方法 |
---|---|---|
NormalMode | カーソルの移動。他のモードへの移行。テキストのコピー、カット、ペースト。 | Esc |
InsertMode | テキストの入力、編集。 | a/i/o |
VisualMode | テキストの選択。 | v |
VisualModeは、vを打ってそのあとに選択したいところをカーソルを移動して選択するだけです。
そのあとは、削除なり、コピーなど行いたい操作を行ってください。
コマンドを覚えよう
全部覚える必要はないですが、ここにあるのは一部ですので自分が必要としているものから覚えていきましょう。
コマンド一覧
※文末に ! をつけると強制っという意味になる。
キー | 動き |
---|---|
------------------移動系------------------ | |
^ | 現在行の先頭に移動 |
$ | 現在行の末尾に移動 |
ctr + f | ページ送り |
ctr + b | ページ戻し |
gg | 先頭に移動 |
G | 最終行に移動 |
w | 次の単語の先頭に移動 |
b | 前の単語の先頭に移動 |
e | 次の単語の末尾に移動 |
------------------削除系------------------ | |
x | 一文字削除 |
c | VisualModeで選択した範囲を消してInsertModeで終わる |
ci | 括弧の中身だけを消す |
ciw | カーソルの下にある1単語を消してInsertModeに入る |
cit | htmlのタグに囲まれている中を消します |
dw | カーソルから右側にある単語を消す |
daw | カーソルの下にある単語を消す |
D | カーソルから右側にある文を全て消す |
S | カーソルのある1行を全て消してInsertMode起動 |
------------------その他------------------ | |
dd | 行をカット |
yy | 行をコピー |
p | ペースト |
u | 戻る (ctr + z) |
/[文字]+return | 検索(n:下方向に検索 N:上方向に検索) |
-----------------↓おすすめ↓----------------- | |
:!{shellコマンド} | vim内でshellのコマンドが使えます |
Control+v | 元のカーソル位置から動いたところまでを箱型で選択 |
ggVG | 全選択 |
Touch Bar搭載で[esc]がと思った方へ
ctr + [ で同じ動きをしてくれますし、こっちの方が指の動きが小さく済む気がします。
自分的におすすめなので、もしよかったら試してみてください。