70行目: | 70行目: | ||
!説明 | !説明 | ||
|- | |- | ||
|<code>:sp file</code> | |<code>^w s</code>, <code>:sp file</code> | ||
|(split) file を横分割で開く | |(split) file を横分割で開く | ||
|- | |- | ||
|<code>:vs file</code> | |<code>^w v</code>, <code>:vs file</code> | ||
|(Verticle Separate) file を縦分割で開く | |(Verticle Separate) file を縦分割で開く | ||
|- | |- |
2019年6月3日 (月) 17:59時点における版
天才ビル・ジョイが作ったエディタ。
初期設定
コマンド | 説明 |
---|---|
vi ./vimrc |
オプションを記載 |
set -o vi |
bash を viモードに変更 |
環境とシェル
コマンド | 説明 |
---|---|
:set |
現在セッションのオプションを表示 |
:set nu |
(number) 行番号表示をオン |
:set tabstop=4 |
タブの長さ |
:set shiftwidth=4 |
インデントシフトの初期値 |
:set autoindent |
自動インデントモード |
:set hlsearch |
検索時のハイライト表示をオン |
:set wrap |
長文を折り返す |
:set showmatch |
()や{}の対応表示をオン |
:set list |
タグや空白などの見えない文字が確認できる |
:set all |
全てのオプションを表示 |
:sh , ^D |
シェルを起動、終了 |
:!command |
コマンドを実行 |
:n,m!command |
n行目から m行目まで command でフィルタ処理 |
:r !date |
日時情報がカレント行に書き込まれる |
起動とファイル操作
コマンド | 説明 |
---|---|
vi file1 file2 file3 |
file1とfile2をオープン |
:r file1 |
現在行直下にfile1を全てコピー |
:5r file1 |
5行目にfile1を全てコピー |
:w! newfile |
書き込み権限がない場合の一時しのぎ |
画面分割
コマンド | 説明 |
---|---|
^w s , :sp file
|
(split) file を横分割で開く |
^w v , :vs file
|
(Verticle Separate) file を縦分割で開く |
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 + ^ |
直前のファイル編集へ戻る |
:on |
(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 に置換 |
:23,44s/old/new/g
|
23~44行目内の全ての old を new に置換 |
:%s/old/new/ , :1,$s/old/new/
|
ファイル全ての old を new に置換 |
:%s/old/new/c
|
ファイル全ての old を逐一確認しながら new に変換 |
:%s/\(That\) or \(this\)/\2 or \1/
|
ホールドバッファ1,2によりthis or That と置換 |
~
|
大文字/小文字に変換 |
パターンマッチング(正規表現)による高度な置換は『vi入門83~107p』を確認
ジャンプ
コマンド | 説明 |
---|---|
Ctrl + G
|
ファイル名、状態、カレント行番号の表示 |
gg
|
ファイル先頭にジャンプ |
G
|
ファイル末尾にジャンプ |
23G
|
23行目にジャンプ |
:N
|
N行目にジャンプ |
mx
|
現在位置を x でマーク |
'x
|
x がある行の先頭にジャンプ |
`x
|
x にジャンプ |
挿入と変更
コマンド | 説明 |
---|---|
i , a
|
カーソルの前、後にテキストを挿入 |
I , A
|
行の先頭、末尾にテキストを挿入 |
O , o
|
カーソルの上、下にテキストを挿入 |
s , S
|
1文字、カレント行をテキストに変更 |
r
|
一文字変更 |
cw
|
単語変更 |
cc
|
カレント行を変更 |
c + [motion]
|
モーションで指定した場所までを変更 |
c + nG
|
カレント行からn行目までを変更 |
C
|
行末まで変更 |
R
|
重ね書き |
10i#-
|
#- の組み合わせを10回入力。Vim によるテキスト編集はプログラミング |
Ctrl + t
|
(挿入モード)右にインデント |
Ctrl + d
|
(挿入モード)左にインデント |
>>
|
右にインデント |
3<<
|
3行まとめて左にインデント |
削除とヤンク
コマンド | 説明 |
---|---|
Ctrl + w , Ctrl + u
|
入力中の単語を削除。入力中の行を削除 |
x , X
|
文字を前方、後方に削除 |
dw
|
単語を直後の空白とセットで削除 |
de
|
単語のみを削除 |
dd
|
カレント行を削除 |
D
|
行末までを削除 |
d + [motion]
|
モーションで指定した場所までを削除 |
d + nG
|
カレント行からn行目までを削除 |
yw
|
単語のヤンク |
yy , Y
|
カレント行のヤンク |
y + [motion]
|
モーションで指定した場所までをヤンク |
y + nG
|
カレント行からn行目までをヤンク |
P , p
|
削除、ヤンクしたテキストをカーソルの前、後にペースト |
レジスタの活用
コマンド | 説明 |
---|---|
:reg
|
レジスタ一覧 |
"a5Y
|
レジスタa にカレント行から5行を登録 |
"AY
|
レジスタa にカレント行を追記 |
"bp
|
レジスタb の内容をペースト |
Ctrl + r + a
|
(挿入モードで)レジスタa をペースト |
Ctrl + r +
|
(挿入モードで)クリップボードをペースト |
exエディタの活用
コマンド | 説明 |
---|---|
% , 1,$
|
ファイル内全ての行 |
0 , . , $
|
ファイルの先頭、カレント行、最終行 |
Q
|
exエディタを起動 |
:vi
|
viモードへ戻る |
:3,5d
|
3行目〜5行目を削除 |
:.,$d
|
カレント行からファイル最終行までを削除 |
:3,5m0
|
3行目〜5行目をファイル先頭に移動 |
:3,5m10
|
3行目〜5行目を10行目に移動 |
その他
コマンド | 説明 |
---|---|
.
|
直近の編集コマンドの繰り返し |
v , V
|
文字、行の選択 |
ggVG
|
ファイル内全てを選択 |
u , U
|
アンドゥ、カレント行の復元 |
Ctrl + r
|
リドゥ |
J
|
2行の連結 |
:ab IBM International Business Machines
|
IBM を入力すると勝手に正式名称を展開してくれる |
:ab
|
ab に登録されている略語の一覧 |
保存と終了
コマンド | 説明 |
---|---|
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モードに戻る |
vim
コマンド | 説明 |
---|---|
hoge |
hoge |