Help us understand the problem. What is going on with this article?

「サーバーに入った時にしかvimは使わないよ」と言ってEscを連打していた自分に教えてあげたいコマンド

More than 1 year has passed since last update.

1年前くらいまでvimはサーバーに入った時にしか触っていませんでした。
当時の私にとってvimは何が何だかわからないもので、「うわ、vimでやんなきゃ」と思うくらいでした。
vimでソースコードをある程度いじれるようになった今、「あの時せめてこれだけでも知っていたらあのストレスはだいぶ無くなっていたのでは。。。」と思うものがいくつかあります。
それを紹介しようと思います。

検索

vimを使ってファイルを開いた直後は、ノーマルモードと呼ばれるモードであり、このモードはvimにおける基本のモードとなります。
このモードからiを入力することで挿入モードに移行し、テキストを入力したりすることができます。また、挿入モードの時にEscを押すことでノーマルモードへ戻ります。

vimで開いたファイルの中身を検索するときはノーマルモードでコマンドを実行します。

コマンド 説明
/検索文字 (Enter) 検索文字を検索(vimの画面の一番下にコマンド自体が表示されます)
n (検索した状態で)次へ進む
N (検索した状態で)前へ進む
:noh 検索終了(ハイライト表示オフ)

検索をしても検索文字がハイライトされない場合は、同じくノーマルモードで:set hlsearchというコマンドを打ちます。

挿入モードへ移行するコマンド

ノーマルモードから挿入モードに移行するコマンドはiaが有名かと思いますが、他にもいくつかあります。
使いこなせるとかなり便利に感じます。
これらのコマンドはノーマルモードで実行します。

コマンド 説明
i 現在のカーソル位置から入力を開始する
a 現在のカーソル位置の次から入力を開始する
A 現在のカーソルがある行の末尾から入力を開始する
o 現在のカーソルがある行の次の行に空行を差し込んで、入力を開始する
O 現在のカーソルがある行の前の行に空行を差し込んで、入力を開始する
Esc 挿入モードからノーマルモードへ移行
# | がカーソルです
123|45678 

# "i" → _ を入力
123_45678

# "a" → _ を入力
1234_5678

# "A" → _ を入力
12345678_

# "o" → _ を入力
12345678
_

# "O" → _ を入力
_
12345678 

特にoは便利だと思います。

元に戻す

挿入モードにて間違えて入力してしまった、という時はundoを使うことができます。
こちらのコマンドもノーマルモードで実行します。

コマンド 説明
u undo(元に戻す)
Ctrl + r redo(「元に戻す」を戻す)

移動系コマンド

こちらのコマンドもノーマルモードで実行します。
挿入モードになっている場合やそのほかのモードになっている場合にはEscでノーマルモードにします。

コマンド 説明
gg カーソル位置をファイルの先頭へ移動する
G カーソル位置をファイルの末尾へ移動する
数字 + G 数字の行へカーソルを移動する(10Gだったら10行目へ移動)
Ctrl + e カーソルの位置は移動せず、画面を1行分下へ移動
Ctrl + y カーソルの位置は移動せず、画面を1行分上へ移動
Ctrl + f カーソルの位置は移動せず、画面を1画面分下へ移動
Ctrl + b カーソルの位置は移動せず、画面を1画面分上へ移動

ファイルの先頭/末尾へ移動も便利ですが、画面移動(スクロール)が便利です。
矢印キー連打から卒業です!

保存系コマンド

こちらのコマンドもノーマルモードで実行します。

コマンド 説明
:w 保存
:q 閉じる
:wq 保存して閉じる
:q! 保存せずに閉じる

最後に

これら全部を使いこなすべき、ということではなく、これらの中から一つでも「これできるんだ!」と思ってもらえるものがあれば嬉しいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away