今までRaspiをいじっていた時はemacsと仲よかったんですが、インターネットのいろんなところを見てるとsudo vi~~が多すぎたのでそろそろviをやろうと思ってやり始めました。
(とりあえず1時間ほどいじった結果、emacsよりもvi(m)のほうが個人的に使いやすかったのとvimがviの上位互換(語弊があるかもしれない)だと聞いたので、まだあまり理解してないうちはvimを使っていきたいなと思いました。
そのためのメモです。自分の理解なので、系の分類とかおかしいかもしれないけど許して。
vim自体を使いやすくするための準備コマンド
:set number
行数を表示(いちいちやるのめんどくさいのでこれは~/.vimrcに書いたほうがいい):vsp ファイル名
左右に分割してファイルを表示(spなら上下に分割)。viだとvspができない。vimでやろう。
ファイル操作系コマンド
:q
終了する。=quit(保存してない場合は警告が出る+終了できない):q!
保存せずに終了。:w
保存する=Write ↓のように組み合わせると強い。:wq
保存して終了ZZ
保存して終了(:ZZと同等)
:e ファイル名
ファイルを開く。:e!でやると前の未保存の変更は消える。
カーソル操作系
h
Hidariに一個移動j
下に一個移動k
上に一個移動l
右に一個移動
:数字
[数字]行目の先頭にカーソルを移動(コロンなしの数字のみだとその数字の行分カーソルをすすめる)gg
ファイルの先頭にカーソルを置くGG
ファイルの最後尾にカーソルを置く^
カーソルを現在の行の先頭移動
入力系
a
カーソルの次の文字から挿入を開始i
カーソルのある位置に対して挿入を開始o
現在家0ソルがある次の行に空行を開けてそこに挿入A I O
はまだ慣れていないので、とりあえずこれだけ…個人的には:aが使いやすい。
u
Undoをする。なれないうちはEsc押さずにコマンド打っちゃうことが多いので、個人的にこのコマンドは強いです。Ctrl + r
: Redoをする。強い。
コピー・ペースト・削除
'v' VISUALモードに移行して選択することができる。
↓選択したらy
コピーする(vimではコピーのことをyankって言うらしい)。選択中であればその選択範囲をコピーする。yy
カーソルのある行
↓コピーしたらp
ペーストする。(5pとかにすると、バッファを5回貼り付けるということができる。)
d
削除する。選択中であればその選択範囲を削除する。dd
カーソルのある行を削除dG
現在のカーソルの場所から最後まで削除
その他(シェルコマンド・検索)
:! シェルコマンド
:vimを一時停止してシェル上でのコマンドを使える。
正直意味あるのか?と思ってたけど。
:! ls- lh
(これでVimで並列して開きたいファイルの名前を確認)
:vsp test2.txt
など普通に使いみちがある。というか結構使うんだろうな。
その他(検索)
/(String)
(String)という文字列を探す。
この時vimであればヒットした文字列にハイライトがつく。
更にnを連打で下方向に探せるし、Nを連打で上方向に探せる
その他
%s/(previous)/(next)/コマンド
(previous)という文字列にひっかかったものを(next)に変換する。
コマンドはいくつかあるけど、なれないうちは事故があるのでcでも置いとけば良い。
(cは1つずつチェックするやつ。めんどかったら一括変換のgで。先頭だけならコマンドはいらない。)
:↑↓
前にやった命令を再度実行できる。シェルと一緒だね。