目的
vimを使い始めたが、よく忘れるので、知ったことを書きとめて、出来れば早く覚えたい。
移動
ge b w e
<- <- ---> --->
This is-a line, with special/separated/words (and some more).
<----- <----- --------------------> ----->
gE B W E
^
<-----------
.....This is a line with example text.
<---------------- ---------------->
0 $
("....."は空白文字があることを示します)
(vimのhelpより)
検索
コマンド | 動作 |
---|---|
* | カーソルの下の単語を検索する |
編集
ノーマルモードでのコマンドと動作。
コマンド | 動作 |
---|---|
o | カーソルがある行と次の行の間に空行を追加する。 |
O | カーソルがある行の上に空行を追加する。 |
I | カーソルがある行の最初の非空白文字に移動し、挿入モードを開始する。 |
A | カーソルがある行末に移動し、挿入モードを開始する。 |
~ | カーソル位置の大文字/小文字を変更し、カーソルを次に進める。 |
J | カーソルがある行と次の行の間にある改行文字を削除する。 |
x | カーソル下の文字を削除する。dl のショートカット。 |
D | カーソルがある地点から行末まで削除する。d$ のショートカット。 |
dd | カーソルがある行全体を削除する。 |
daw | カーソルがある単語を削除する。"delete a word" |
cis | カーソルのある文を削除して挿入モードを開始する。削除された分の後にある空白は含まない。"change Inner Sentence" |
cas | カーソルのある文を削除して挿入モードを開始する。削除された分の後にある空白は含む。"change a Sentence" |
yy | カーソルがある行全体をコピー(ヤンク)する。 |
. | 直前のコマンドを繰り返す。 |
CTRL-V | 四角いブロック(矩形、くけい)の範囲選択。 |
"*yy | カーソルがある行全体をクリップボードへコピーする。 |
"*p | クリップボードからプットする。 |
テキストオブジェクト
こちらがとてもわかりやすくまとまっているため、あとで読む。
a と i
aw
<----->
Some more boring to try out commands. Teacher Smith ....
<---->
iw
as
<------------------------------------>
Some more boring to try out commands. Teacher Smith ....
<----------------------------------->
is
a"
<------------------------------------->
"Some more boring to try out commands."
<----------------------------------->
i"
aとiの違いをうまく言葉で説明できないなぁ。
aやiの後に続く移動コマンドはたくさんあり、よく使いそうなのは以下の通り。
テキストオブジェクト | 意味 |
---|---|
aw | "a word" |
iw | "inner word" |
as | "a sentence" |
is | "inner sentence" |
a" | "a quoted string" |
i" | "inner quoted string" |
+---------------------------------------+
| テキストオブジェクト |
+----------+ | +------------+ +--------+ |
| オペレータ | + | | "a" or "i" | + | 移動 | |
| コマンド | | | コマンド | | コマンド | |
+----------+ | +------------+ +--------+ |
+---------------------------------------+