hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

Vim入門した

例えば,ペアプロしていて,ちょっと打たせてくださいとか言って,エディタがVimで全然打てない,ということがよくあったので,最低限使えるようになろうと思った.
チュートリアルを読んだ.以下,そのメモ.

起動

vim 起動
vim ファイル名 ファイルを指定して起動
vimtutor チュートリアルを開く

ファイル読み書き

:w ファイル名 指定したファイル名で保存
:r ファイル名 指定したファイルをカーソルの位置に挿入する(これ使うことあるんだろうか)

入力

i 入力
A 行末に移動して入力
o 下の行で挿入モードになる
O 上の行で挿入モードになる
a カーソルの次に挿入する

モード

ESC ノーマルモード
i 挿入
v 選択

コピー,ペースト

y コピー
p ペースト
d 切り取り

カーソル移動系

hjkl 一文字移動
w 次の単語の先頭
e 次の単語の最後
$ 行末
C-g カーソルの位置を表示する(下にいろいろ出る)
数字 G n行目に移動する
gg ファイルの最初に移動
G ファイルの最後に移動
% 対応する括弧に移動

削除

x C-d
dd 一行削除

d+移動でその方向に消える

de M-d
dw M-d C-d
dh C-h
dj なんかたくさん消える
dk なんかたくさん消える
dl C-d
d$ C-k

繰り返し

先に数字を打つ

やりなおし

u やりなおし
U 1行やりなおし
C-r やりなおしのやりなおし

どのくらいやりなおしてるか,下にいろいろ出る

置き換え

r 一文字上書き
R 入力しただけ上書きする
c+いろいろ いろいろ置き換え(d+いろいろと同じ感じ
cw 単語を置き換え

検索

/ 次を検索(C-s)
? 前を検索(C-r)
n 検索中に次を検索
N 検索中に前を検索
C-o 元いた場所に戻る
C-i 戻る前の場所に戻る

(インクリメンタルに検索されるわけではない)

置換

:s/before/after 行内で最初に見つかったものを置換
:s/before/after/g 行内を全て置換
:s/before/after/c 行で最初に見つかったものを対話的に置換
:s/before/after/gc 行内を全て対話的に置換
:556,576s/before/after/g 556行目から576行目まで全て置換
:556,576s/before/after/c 556行目から576行目まで行の最初に見つかったものを対話的に置換(最初に見つかったものだけy/n/とか言われるので,実用的でないと思う)
:556,576s/before/after/gc 556行目から576行目まで全て対話的に置換
:%s/before/after/g ファイル内を全て置換

選択中に:sすると選択範囲だけできる

外部コマンドの実行

! ls ~ とか
Enterで終わる


検索をignore caseにする

:set ic
:set なんたら でいろいろ設定できる

ヘルプ

:h なんたら

まとめ

ファイルの編集くらいはできるようになったと思う.
Vimperatorと同じだと思えば容易に覚えられそう.