2021-01-19に更新

vimの特徴

vim とは

Linuxで標準的に使われるテキストエディタであり、Windowsでいうとメモ帳となる。

なぜvimが必要なのかというと、LinuxはWindowsと異なり、設定する値をテキストエディタに記述するものが多いからです。

vim の特徴

特徴①

基本は h j k l キーでカーソル移動します。ホームポジションから移動しない設計になっていて、キーと移動先は以下の通りです。

キー 移動先
h 1つ左
j 1つ下
k 1つ上
l 1つ右

また、wb キーを使うと単語単位で高速移動できます。

特徴②

4つのモードがあります。

ノーマルモード(Normal mode)

  • vim起動時に最初に入るモード
  • h j k l のカーソル移動ができる
  • 文字の入力はできない
  • 他の各モードから戻るには「ESC」または「Ctrl+[」キーを入力
  • 以下のコマンドを実行できる(代表的なコマンドのみ抜粋)
コマンド 効果
x カーソル上の1文字を削除
dd カーソルのある行を削除
yy カーソルを含む行全部をコピー
p カーソル行の下にコピーしたものをペースト
u やり直し(WindowsのCtrl+zと同じ)
[行数]gg 指定した行数にジャンプ、指定しない場合は先頭行へジャンプ
G 最終行へジャンプ
ZZ 保存して終了(:キーが押せない場合に助かる)

また、「/」キーを押すと検索コマンドラインへ移行し、次に検索したい文字を入力し、Enterを実行すると現在のカーソル位置以降を検索します。複数存在する場合は「n」キーを押すと次の位置へカーソルが移動します。

コマンドラインモード(Command-line mode)

  • ノーマルモード上で「:」キーを押すことでコマンドラインモードへ移行する
  • 以下のコマンドを実行できる(代表的なコマンドのみ抜粋)
コマンド 説明 補足
x 保存して終了 変更が無い時はタイムスタンプの更新はしない
w 保存 変更が無い時もタイムスタンプを更新する
q 保存しないで終了 変更がある時は終了できない
q! 保存しないで強制終了 変更がある時でも保存しないで終了する
set nu 行番号を表示 .vimrcに設定してデフォルトにすることも可能
set paste ペーストモードにする 解除はset nopaste
s/文字列A/文字列B/g 置換(文字列Aを文字列Bに) カーソルのある行のみ置換対象
%s/文字列A/文字列B/g 置換(文字列Aを文字列Bに) 全行が置換対象

インサートモード(Insert mode)

  • 文字の入力や編集ができる
  • ノーマルモード上で「i」、「a」、「o」等のキーを入力すると固有の動作をしてインサートモードへ移行する
  • 以下のコマンドを実行できる(ノーマルモードからInsert modeへの移行の代表的なコマンドのみ抜粋)
コマンド 動作
a カーソルの右に移動後、Insert modeへ
i カーソルの位置からInsert modeへ
A カーソルのある行末からInsert modeへ
I カーソルのある行頭からInsert modeへ
o カーソルのある行の次の行頭からInsert modeへ
O カーソルのある行の次の行末からInsert modeへ

ビジュアルモード(Visual mode)

  • 文字の選択が行える
  • ノーマルモード上で「v」キー等を入力するとビジュアルモードへ移行する
  • 以下のコマンドを実行できる(代表的なコマンドのみ抜粋)
コマンド 効果
d 選択した範囲を削除してノーマルモードに戻る
y 選択した範囲をコピーしてノーマルモードに戻る
c 選択した範囲を削除してInsert modeへ移行する

まとめ

カーソル移動のイメージ図と各モードの関係性は以下の通りとなります。

image

ツイッターでシェア
みんなに共有、忘れないようにメモ

rahfj

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント