はじめに
仕事ではWindowsをメインに作業しているため、ターミナルを使用することは稀でした。
ただ、最近はRaspberry Piという便利な制御端末が出てきたり、自前のブログの管理にLinuxを触ったりという機会が増えてきたので、せっかくだからVimを覚えようと思い立ちました。
備忘録的な意味で、覚えたコマンドをメモしていこうと思います。
表記の補足
※ コマンドは基本ノーマルモードでの入力です
※ 「,」区切りで記載しているキーは、対応する複数のキーを示しています
※ 「Shift+v」などは、Shiftを押しながらvを押下することを示しています
初めから知っていたコマンド
これまでもたまにターミナルを使う機会はあったので、最低限以下のようなコマンドは知っていました。
でも、正直これだけだと使いにくいので、最低限の編集に使うだけでした。
Vimはすごい!という話も聞きますが、上達すれば、本当に早く編集できるんでしょうか…と思っていたのが正直なところ。
キー | 内容 |
---|---|
h, j, k, l | キー移動 |
i | 文字の手前で入力モード切り替え |
a | 文字の後ろで入力モード切り替え |
gg | 先頭の行にカーソル移動 |
G | 末尾の行にカーソル移動 |
yy | 行コピー |
dd | 行削除 |
p | 貼り付け |
:w | 上書き |
:wq | 上書き保存して終了 |
:q | 終了 |
:q! | 保存せずに強制終了 |
少し調べてみて、覚えたコマンド
ググればたくさんvimのコマンドを紹介しているサイトが出てきます。
ひとまず簡単に使えそうなコマンドを覚えて、できることを増やしていきます。
キー | 内容 |
---|---|
I | 行の先頭で入力モード切り替え |
A | 行の末尾で入力モード切り替え |
s | カーソル位置の文字を削除して入力モード切り替え |
o | 下に1行追加して入力モード切り替え |
O | 上に1行追加して入力モード切り替え |
w | 次の単語へ移動 |
b | 前の単語へ移動 |
f(指定文字) | 行内の指定文字の位置にカーソル移動 |
/(指定文字) | 指定文字を検索。nを押すとさらに次の文字を検索。Shift+nで上方向へ検索 |
$ | 行末尾にカーソル移動 |
^ | 行先頭にカーソル移動 |
% | 対応するカッコに移動 |
(行番号)G | 指定行番号の行にカーソル移動 |
u | アンドゥ |
Ctrl+r | リドゥ |
一文字だけ置き換えたい時はs、先頭に移動して編集したい時はI、末尾に移動して編集したい時はAなど、バリエーションが少し増えてきたので、多少編集しやすくなってきました。
ビジュアルモードを知る
これまで、コマンドを実行するノーマルモードと、文字を直接編集する入力モードは知っていましたが、範囲選択ができるビジュアルモードもあることを知りました。
イメージとしては、マウスで特定の範囲を選択するような感じです。
vキーを押下して、キー移動をすると、vキーを押した位置を始点として、移動した位置までの範囲が選択状態になります。
選択した範囲に対して、編集、削除等の操作が行えます。
vキーに続けていろんなコマンドを押下することで、選択の方法もかなりバリエーションがあります。
キー | 内容 |
---|---|
v | 文字単位選択のビジュアルモードに切り替え |
Shift+v | 行単位選択のビジュアルモードに切り替え |
Ctrl+v | ビジュアルモードに切り替え、矩形選択ができる |
v$ | vキーを押下した位置から行末尾まで選択 |
v^ | vキーを押下した位置から行先頭まで選択 |
vw | vキーを押下した位置から、次の単語までを選択 |
viw | vキーを押下した位置の単語を選択 |
vaw | vキーを押下した位置の単語と前後の空白を選択 |
また、同様にdやyコマンドも、同じように使えることを知りました。
例えば、yiwでyキーを押下した位置の単語をコピー、dawでdキーを押下した位置の単語を削除など。
思った通りに編集できると、少し楽しくなってきました。
また新しいコマンドを覚えたら追記予定です。