Vim

Last-modified: 2013-04-23 (火) 23:28:24
 

概要

ほとんどの UNIX 系 OS にデフォルトで搭載されているエディタです。
慣れてないと使えません。

使いこなすのは難しいですが、一度覚えてしまえばどの UNIX 環境でも使えます。
(Emacs が標準で入っていないことも多いです)

コマンド一覧

*1

Vim の操作はすべてコマンドで行います。
コマンドを覚えないと、編集も終了もできません。

コマンドをすべて覚える必要はありませんが、多くのコマンドを覚えていると操作が早くなります。

:から始まるのはexコマンドです。最後に Enter を押してください。
exコマンドとVimのコマンドと同じ動作のものがありますが、どちらを使っても構いません。

凡例

  • n
    任意の整数を表します
  • x
    任意の一文字を表します
  • <C-a>
    Ctrl を押しながら a
  • pattern
    検索パターンを表します
  • :w[rite]
    :write コマンドと、その省略形 :w を表します

移動系

文字単位*2h
j
k
l
gj表示行で下
gk表示行で上
単語単位w
W次 (記号無視)
b
B前 (記号無視)
e単語の末尾
E単語の末尾 (記号無視)
文単位)
(
段落単位}
{
セクション単位]]
[[
行単位0行頭
$行末
^行頭 (空白以外)
+次の行の行頭
-前の行の行頭
n|カレント行のn文字目
H画面の最上位行
M画面の中央行
L画面の最下行
nH上からn行目の行
nL下からn行目の行
スクロール<C-f>次の画面
<C-b>前の画面
<C-d>半画面次へ
<C-u>半画面前へ
<C-e>1行次へ
<C-y>1行前へ
z<Enter>カレント行の画面の一番上に表示
z.カレント行を画面の中央に表示
zz
z-カレント行を画面の一番下に表示
行番号nGn行目へジャンプ
:nn行目へジャンプ
ファイル単位ggファイルの先頭
Gファイルの末尾

検索

/ ? は Enter を押すと実際に実行します。

ファイル単位/pattern順方向にパターン検索
?pattern逆方向にパターン検索
n最後の検索を同じ方向で繰り返す
N最後の検索を反対の方向で繰り返す
/最後の検索を順方向で繰り返す
?最後の検索を逆方向で繰り返す
行単位fxカーソルより後ろにある x へジャンプ
Fxカーソルより前にある x へジャンプ
txカーソルより後ろにある x の直前の文字にジャンプ
Txカーソルより前にある x の直前の文字にジャンプ
;直前のカレント行内検索を繰り返す
,直前のカレント行内検索を反対方向で繰り返す

編集系

挿入iカーソルの前に挿入
aカーソルの後に挿入
I行頭に挿入
A行末に挿入
oカーソルの下へ新しい行を作り挿入
Oカーソルの上に新しい行を作り挿入
変更r文字を変更
cw(カーソル位置以降の) 単語を変更
cmotionカーソル位置と移動コマンドmotionの移動先の間にあるテキストを変更
S一行全体を変更
cc一行全体を変更
Cカーソル位置から行末まで変更
c$カーソル位置から行末まで変更
s文字を文字列で置き換える
削除x文字を削除
Xカーソルの前にある文字の削除
dw単語の削除
ddカレント行の削除
:d[elete]カレント行の削除
dmotionカーソル位置と移動コマンドmotionの移動先の間にあるテキストを削除
D行末まで削除
ヤンクyw単語をヤンク
yyカレント行をヤンク
dmotionカーソル位置と移動コマンドmotionの移動先の間にあるテキストをヤンク
ペーストpカーソルの後にペースト
Pカーソルの前にペースト
取り消しu最後の操作の取り消し
Uカレント業の復元
やり直し<C-r>取り消し操作をやり直す
:red[o]同上
その他J2行の連結

ファイル

終了ZZファイルに書きこんで終了 (変更がある場合のみ)
:x[it]ファイルに書きこんで終了 (変更がある場合のみ)
:wqファイルに書きこんで終了
:q[uit]終了
ZQ終了 (変更されていても無視する)
:q[uit]!終了 (変更されていても無視する)
書き込み:w[rite]書き込み
:up[date]書き込み (変更がある場合のみ)
開く:e[dit] filefileを新しいバッファに開く
:enew無名バッファを作成する
ファイル名の変更:f[ile] fileファイル名をfileに変更

バッファ

バッファ移動:bn[ext]次のバッファへ移動
:bp[revious]前のバッファへ移動

シェル

ディレクトリ:pw[d]カレントディレクトリを表示
:cdカレントディレクトリを移動

定型操作

文字コードの変換

以下の操作はノーマルモードで行ってください。

コマンド省略形解説
:set fileencoding=文字コード:se fenc=文字コード文字コードの設定を書き換えます
 

文字コードには、以下のような文字列が指定できます。

設定値文字コード
utf-8UTF-8
euc-jpEUC-JP
iso-2022-jp日本語 JIS
cp932Shift_JIS

文字コードを指定して開き直す

ファイルを開いたけど文字化けしている場合など、文字コードを指定して開きたい場合に使います。

コマンド省略形解説
:edit ++encoding=文字コード:e enc=文字コード文字コードを指定して開き直す
 


*1 半分自分のメモです(あ
*2 矢印キーでも移動できますが、それが許されるのは小学生までです。