😺

Vimの基本的なコマンド

2023/02/26に公開

はじめに

Vim の学習をしたので、基本的なコマンドをまとめてみました。

テキストエディタ

ファイルはテキストファイルとバイナリーファイルに分けられ、Vim はテキストファイルに分類されます。
テキストファイル:HTML ファイルを含むテキストが書かれたファイル。
バイナリーファイル:音声ファイル、画像ファイル、Linux のコマンド実行ファイル。テキストで書かれていないため、直接読むことはできないファイル。

テキストファイルを使用するメリット

  • 専用のアプリケーションを使用しなくても内容が理解できる
  • 互換性が高く、1 つのファイル形式を別のアプリケーションから利用しやすい
  • Linux にはテキストファイルを扱うためのコマンドが多く用意されており、それらの恩恵を受けられる

Vim とは

Linux 向けのテキストエディタは数多くあるが、有名なものは「Vim」と「Emacs」の2つあります。Vim は、最小限のキー操作でさまざまな編集操作が効率よくできる一方で、特殊な操作体系を持っています。

インスール方法
▼CentOS で Vim をインストール

yum install vim

▼Ubutu で Vim をインストール

sudo apt-get install vim

モード

Vim には主に 4 つのモードがあり、用途によりモードを切り替えて操作します。

モード 用途
ノーマルモード カーソル移動、ヤンク、貼り付け、削除など
インサートモード 文字入力、貼り付けなど
ビジュアルモード 範囲選択、選択範囲のヤンク、削除など
コマンドラインモード 変更の保存、vim 終了、文字列置換など

コマンド

起動・終了・保存・モード切り替え

コマンド 実行内容
vim 起動
command + t 新しいタブを開く
i インサートモードに切り替え
a 次の文字からインサートモードに切り替え
o 選択行の下に空白を入れ、インサートモード
O 選択行の空白を入れ、インサートモード
option + space ターミナルの表示を切り替え
esc ノーマルモードに切り替え
:q! 保存しないで編集終了
:w ファイル名 名前を付けて保存
:w 上書き保存
:q 編集終了
:q! 保存しないで終了
:wq 保存して終了
view View モードで起動(ファイルを書き換えない時に使う)

文字削除・コピー・ペースト

コマンド 実行内容
x (Normal mode ) 1 文字削除
dd (Normal mode ) 1 行削除(コピー可能)
2dd (Normal mode ) 2 行削除
dw(Normal mode ) 単語の削除
u (Normal mode) Undo(元に戻す)
d$ 行末までをデリート
d0 行頭までをデリート
dgg 最初の行までをデリート
dG 最後の行までをデリート
Control + r (Normal mode) Undo redo
yy (Normal mode) 一行にコピー
2 yy(Normal mode) 2 行コピー
p (Normal mode) カーソルの後ろにペースト
P (Normal mode) カーソルの手前にペースト
. 直前の変更を繰り返す
:! 実行コマンド (例:python test.py) コマンドを実行(指定して python ファイルを実行)
!! 前のコマンドを実行
: set number 行番号を表示する

移動

コマンド 実行内容
k ↑ に移動
j ↓ に移動
h ← に移動
l → に移動
w 前方に単語 1 つぶん移動する
b 後方に単語 1 つぶん移動する
W スペース区切りで前方に単語 1 つぶん移動する
B スペース区切りで後方に単語 1 つぶん移動する
:10 10 行目に移動
0 先頭に移動
行末に移動
^ インテントの先頭に移動
{ 段落ごとに上に移動
} 段落ごとに下に移動
[[ セクションごとに上に移動
]] セクションごとに下に移動
gg ファイルの先頭に移動
G ファイルの最後に移動
ctrl + o 移動前に戻る
> 右にインテントを移動
< 左にインテントを移動

検索と置換

コマンド 実行内容
/[検索ワード] 検索
n 次の検索結果に移動
N 次の検索結果に移動
R 置換
:%s/[検索ワード]/[置換後のワード]/g 一括置換
.%s/[検索ワード]/[置換後のワード]/gc 確認しながら置換

Vim のコマンドは多く慣れるまで大変ですが、慣れたら便利だと思うので積極的に使っていきたいです。

参考

https://www.udemy.com/course/vim-tmux-zsh/

https://amzn.asia/d/2yExQe8

GitHubで編集を提案

Discussion