| 51行目: | 51行目: | ||
|-  | |-  | ||
|<code>:5r file1</code> || 5行目にfile1を全てコピー  | |<code>:5r file1</code> || 5行目にfile1を全てコピー  | ||
|-  | |||
|<code>:w! newfile</code> || 書き込み権限がない場合の一時しのぎ  | |||
|}  | |}  | ||
2019年5月25日 (土) 09:23時点における版
天才ビル・ジョイが作ったエディタ。
初期設定
| コマンド | 説明 | 
|---|---|
vi ./vimrc | 
オプションを記載 | 
set -o vi | 
bash を viモードに変更 | 
環境とシェル
| コマンド | 説明 | 
|---|---|
:set nu | 
行番号表示をオン | 
:set showmatch | 
()や{}の対応表示をオン | 
:set autoindent  | 
自動インデントモード | 
:set hlsearch | 
検索時のハイライト表示をオン | 
:set wrap | 
長文を折り返す | 
:set all | 
全てのオプションを表示 | 
:sh, ^D | 
シェルを起動、終了 | 
:!command | 
コマンドを実行 | 
:n,m! command | 
n行目から m行目まで command でフィルタ処理 | 
:r !command | 
コマンドを現在のファイルに読み込む | 
起動とファイル操作
| コマンド | 説明 | 
|---|---|
vi file1 file2 file3 | 
file1とfile2をオープン | 
:r file1 | 
現在行直下にfile1を全てコピー | 
:5r file1 | 
5行目にfile1を全てコピー | 
:w! newfile | 
書き込み権限がない場合の一時しのぎ | 
画面分割
| コマンド | 説明 | 
|---|---|
:sp file1
 | 
(SeParate) file1 を横分割で開く | 
:vs file1
 | 
(Verticle Separate) file1 を縦分割で開く | 
Ctrl + w + j/k/l/h
 | 
下/上/右/左のウィンドウに移動 | 
Ctrl + w + [3+/3-]
 | 
ウィンドウの横軸を3つ広げる/縮める | 
Ctrl + w + [3>/3<]
 | 
ウィンドウの縦軸を3つ広げる/縮める | 
:ar | 
起動中のファイルをリスト表示 | 
:n | 
(next) 次のファイルへ移動 | 
:rew | 
先頭のファイルへ移動 | 
:last | 
最後のファイルへ移動 | 
:e file2 | 
file2を編集する | 
:e#, Ctrl + ^ | 
直前のファイル編集へ戻る | 
:only | 
編集中ファイル以外を全て閉じる | 
テキスト移動
| コマンド | 説明 | 
|---|---|
h, j, k, l
 | 
左、下、上、右 | 
w, W, b, B
 | 
前、後の単語(大文字は大きいジャンプ) | 
e, E
 | 
単語の末尾(大文字は大きいジャンプ) | 
), (
 | 
次、前の文章へ | 
}, {
 | 
次、前の空行で区切られたブロックへ | 
%
 | 
括弧の終端へ | 
行移動
| コマンド | 説明 | 
|---|---|
[Enter]
 | 
次の行 | 
0, ^, $
 | 
カレント行の先頭、文字先頭、末尾 | 
-
 | 
上の行の文字先頭 | 
H
 | 
(Head) 画面の最上行 | 
M
 | 
(Middle) 画面の中央行 | 
L
 | 
(Lass) 画面の最下行 | 
nH, nL
 | 
上、下から n行目 | 
z[Enter]
 | 
カーソル位置を画面の一番上に | 
z.
 | 
カーソル位置を画面中央に | 
z-
 | 
カーソル位置を画面の一番下に | 
スクロール
| コマンド | 説明 | 
|---|---|
[Ctrl] + [Y], [Ctrl] + [E]
 | 
1行ずつ上、下にスクロール | 
[Ctrl] + [U], [Ctrl] + [D]
 | 
半画面ずつ上、下にスクロール | 
[Ctrl] + [B], [Ctrl] + [F]
 | 
1画面ずつ上、下にスクロール | 
検索
| コマンド | 説明 | 
|---|---|
tx
 | 
カレント行内でカーソルより後方にある x の直前にジャンプ | 
Tx
 | 
カレント行内でカーソルより前方にある x の直前にジャンプ | 
fx
 | 
カレント行内でカーソルより後方にある x にジャンプ | 
Fx
 | 
カレント行内でカーソルより前方にある x にジャンプ | 
[;], [,]
 | 
カレント行の文字検索を前方、後方に繰り返す | 
/pattern
 | 
前方にパターンを検索 | 
?pattern
 | 
後方にパターンを検索 | 
*
 | 
カーソル上のテキストを検索 | 
n, N
 | 
直近の検索を前方、後方に繰り返す | 
置換
| コマンド | 説明 | 
|---|---|
:s/old/new/
 | 
カレント行の最初の old を new に置換 | 
:s/old/new/g
 | 
カレント行の全ての old を new に置換 | 
:5s/old/new/g
 | 
5行目の全ての old を new に置換 | 
:%s/old/new/, :1,$s/old/new/
 | 
ファイル全ての old を new に置換 | 
:%s/old/new/c
 | 
ファイル全ての old を逐一確認しながら new に変換 | 
~
 | 
大文字/小文字に変換 | 
行番号とマークによるジャンプ
| コマンド | 説明 | 
|---|---|
[Ctrl] + [G]
 | 
ファイル名、状態、カレント行番号の表示 | 
gg
 | 
ファイル先頭にジャンプ | 
G
 | 
ファイル末尾にジャンプ | 
:n
 | 
n行目にジャンプ | 
mx
 | 
現在位置を x としてマーク | 
`x
 | 
x にジャンプ | 
挿入と変更
| コマンド | 説明 | 
|---|---|
i, a
 | 
カーソルの前、後にテキストを挿入 | 
I, A
 | 
行の先頭、末尾にテキストを挿入 | 
O, o
 | 
カーソルの上、下にテキストを挿入 | 
r
 | 
一文字変更 | 
cw
 | 
単語変更 | 
cc
 | 
カレント行を変更 | 
c + [motion]
 | 
モーションで指定した場所までを変更 | 
C
 | 
行末まで変更 | 
R
 | 
重ね書き | 
s, S
 | 
1文字、カレント行をテキストに変更 | 
Ctrl + w, Ctrl + u
 | 
入力中の単語を削除。入力中の行を削除 | 
3iFOO
 | 
FOO が3回入力。Vim によるテキスト編集はプログラミング | 
削除とヤンク
| コマンド | 説明 | 
|---|---|
x, X
 | 
文字を前方、後方に削除 | 
dw
 | 
単語を削除 | 
dd
 | 
カレント行を削除 | 
D
 | 
行末までを削除 | 
d + [motion]
 | 
モーションで指定した場所までを削除 | 
yw
 | 
単語のヤンク | 
yy, Y
 | 
カレント行のヤンク | 
y + [motion]
 | 
モーションで指定した場所までをヤンク | 
P, p
 | 
削除、ヤンクしたテキストをカーソルの前、後にペースト | 
"aY
 | 
レジスタa にカレント行を登録 | 
"aP
 | 
カーソルの前に、レジスタa のテキストをペースト | 
:reg
 | 
レジスタ一覧 | 
[Ctrl] + [R] a
 | 
(挿入モードで)レジスタa をペースト | 
[Ctrl] + [R] +
 | 
(挿入モードで)クリップボードをペースト | 
その他
| コマンド | 説明 | 
|---|---|
.
 | 
直近の編集コマンドの繰り返し | 
v, V
 | 
文字、行の選択 | 
ggVG
 | 
ファイル内全てを選択 | 
u, U
 | 
アンドゥ、カレント行の復元 | 
[Ctrl] + [R]
 | 
リドゥ | 
J
 | 
2行の連結 | 
exアドレスと活用
| コマンド | 説明 | 
|---|---|
1,$, %
 | 
ファイル内全ての行 | 
x,y
 | 
x行目から y行目まで | 
[0], [.], [$]
 | 
ファイルの先頭、カレント行、最終行 | 
:3,5d
 | 
3行目〜5行目を削除 | 
:.,$d
 | 
カレント行からファイル最終行までを削除 | 
:3,5m0
 | 
3行目〜5行目をファイル先頭に移動 | 
:3,5m10
 | 
3行目〜5行目を10行目に移動 | 
:3,5co$
 | 
3行目〜5行目をファイル最終行にコピー | 
保存と終了
| コマンド | 説明 | 
|---|---|
[ESC], [Ctrl] + [
 | 
挿入モードへ | 
:e!
 | 
一番最初の状態へ戻す | 
:w, :w!, :wa
 | 
保存、強制的に保存、オープンしているファイルを全て保存 | 
:3,5w newfile
 | 
3〜5行目を newfile として保存 | 
:3,5w>>file
 | 
3〜5行目を file に追記 | 
ZZ
 | 
保存して終了 | 
:q, :q!
 | 
終了、変更を破棄して終了 | 
Q
 | 
viモードを終了して exモードに切り替える | 
:vi
 | 
viモードに戻る |