🦁

vimについて

に公開

まずはじめに

今回は先週の研修で学んだvimについて記載したいと思います。

vim

vimとは

  • Linuxに標準で入っているテキストエディタでWindowsでいうところのメモ帳です。操作方法がメモ帳と大きく異なるため初心者が扱うためにはかなりの時間が必要になります。
  • vimに並んで、Linuxで利用されるエディタとしてemacsやnanoがあります。

vimの特徴

基本はhjklキーでカーソル移動する

  • ホームポジションから移動しない、速度重視の設計
  • 十字キーでもm移動できますが、できないサーバーもある
  • h左 j下 k上 l右

モードが3つある

ノーマルモード

  • vim起動時最初に入るモード
  • hjklのカーソル移動はノーマルモードで行える
  • 文字の入力はできない
  • 各アルファベットがコマンドのショートカットになっている(a~zまですべてコマンドとして割り当てられている)
  • 他のモードから戻るには「ESC」もしくは「Ctrl+[」を押す
コマンド 効果
x カーソル上の1文字を削除
dd カーソルのある行を削除
yy カーソルを含む行全部をコピー
p カーソル行の下にペースト
u やり直し
Ctrl+r やり直しを取り消す
[数]gg 指定した数のページに移動する 指定しない場合は先頭行
G 最終行へ移動
ZZ 保存して終了(:が押せない場合に役立ちます)
:w 内容を保存
:q! 保存せずに終了
i インサートモードへ
o 新しい行を追加しインサートモードへ

コマンドラインモード

  • コマンドを実行できる
  • ノーマルモード上で「:」キーを押すとコマンドラインモードへ移行する
コマンド 説明 補足
wq 保存して終了 変更がないときはタイムスタンプの更新はしない
w 保存 変更がない時もタイムスタンプを更新する
q 保存しないで終了 変更があるときは終了できない
q! 保存しないで強制終了 変更があるときでも保存しないで終了する
set nu 行番号を表示 .vimrcに設定してデフォルトですることも可能
set paste ペーストモードにする 解除はset nopaste

インサートモード

  • 文字の入力や変種ができる
  • ノーマルモード状で[i][a][o]のキーを押すと固有の動作を行いインサートモードに移行する
コマンド 効果
i カーソル位置からインサートモードへ
o カーソルのある行の次の行頭からインサートモードへ
a カーソルの右に移動してからインサートモードへ
I カーソルのある行頭からインサートモードへ
O カーソルのある行の次の行末からインサートモードへ
A カーソルのある行末からインサートモードへ

ビジュアルモード

  • 文字の選択が行える
  • ノーマルモード上で「V」キーを押すとビジュアルモードへ移行する
    | コマンド | 効果 |
    | :------------------:| :------------------:|
    |d|選択した範囲を削除してノーマルモードに戻る|
    |y|選択した範囲をコピーしてノーマルモードに戻る|
    |c|選択した範囲を削除してインサートモードへ移行する|

vimのメリット

  • 作業効率の向上
  • サーバー内で作業が可能
  • プラグインで自分好みに拡張できる
  • わからないことを調べやすい

vimのデメリット

  • コマンド操作に慣れるのが大変
  • マウスで操作できない

まとめ

今回のサーバー研修ではvimを用いて取り組んでいます。学生時代に少し触ったことがある程度の知識だったのでモードが3つもあったり、上記にあるコマンドはほんの一部なので覚えるのがとても大変だなと感じました。上記でも述べた初心者の人が扱えるようになるには本当に時間がかかるなと実感しました。これから使用していき早く慣れていきたいと思います。

Discussion