LoginSignup
4
8

More than 5 years have passed since last update.

vi(vim)でよく使うコマンド@ITプロパートナーズ

Last updated at Posted at 2017-02-16

インターン生がvi(vim)使い始めたので、私がよく使うコマンドを共有します。

(前提条件)本記事内のviとvimの区別について

コメントをいただきましたので追記します。
本記事では、vi と vimのコマンドの差異に関して、 意図的に扱っていません。
というのも、ぬるいWebエンジニアである筆者の観測範囲(CentOS6系、Amazon Linuxの最新)では vi コマンドでエディタを起動しても本記事に掲載したコマンドは使えるため(はっきりと検証していませんが、viコマンドでもvimが起動している模様)、 あえて vivim を意識的に使い分けることは、(社内レベルでは)必要ないという認識です。
もちろん、環境によっては viコマンドで純粋な vi が起動することも当然考えられるので、

  • vi と vim は違うエディタ

という事を心のどこかに止めておくのは、有効な心がけだと思います。

モード変更

コマンド名 内容
ctl+ [ ノーマルモードに戻る
i 挿入モードに変更
I (行頭に移動して)挿入モードに変更
A (行末に移動して)挿入モードに変更
shift + v 行レベルのヴィジュアルモードに変更(行を丸ごとコピーする時とか)
  • ほぼすべてのコマンドは[ノーマルモード]でしか有効になりません。迷子になった時はとにかくctl + [を押すのがいいです。

保存・終了

コマンド名 内容
:w + enter 保存
:wq + enter 保存して終了
:q! + enter 保存せずに終了

移動系

  • アルファベットは、大文字、小文字の区別があるので注意!

行間移動

コマンド名 内容
h, j, k, l カーソルキーの上下左右に相当
ctl+f, ctl+b 一画面進む |戻る
gg ファイルの最初に移動
G ファイルの最後に移動
[数字] gg [数字]で指定した行数に移動

行内移動

コマンド名 内容
0 行頭に移動
^ 行頭に移動(行頭スペースを無視)
f[文字] 行内にある[文字]の位置まで移動
t[文字] 行内にある[文字]の位置の一文字前まで移動

検索移動

コマンド名 内容
/[文字列] + enter 下方向に検索
?[文字列] + enter 上方向に検索

編集系

編集

コマンド名 内容
cw カーソル位置以降から1単語分を削除して挿入モード
ciw カーソル位置にある1単語分を削除して挿入モード
ci[, ci{, ci( カーソル位置を基準に、[], {}, ()で囲まれた範囲を削除して編集モード
C カーソル位置以降から行末までを削除して挿入モード
o (小文字のoオー)カーソル位置の次の行に空行を追加して挿入モード
O (大文字のoオー)カーソル位置の前の行に空行を追加して挿入モード

削除

コマンド名 内容
dw カーソル位置以降から1単語分を削除
diw カーソル位置にある1単語分を削除
di[, di{, di( カーソル位置を基準に、[], {}, ()で囲まれた範囲を削除
dd カーソル位置にある行をまるごと削除
x カーソル位置にある1文字だけを削除

便利コマンド

コマンド名 内容
:set number + enter 行番号を表示

随時増やしていきます :turtle:

4
8
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8