Vimとは?
viから派生した高機能なテキストエディタです。
viはLinuxに標準搭載されているため、使ったことがある人は多いと思います。
大体同じような操作感ですが、viと違うところもあります。
vimの特徴
- ストレスの少ないマルチプラットフォーム
- とにかく軽くて速い
- 基本的にキーボードだけで操作が可能
インストール方法
- Mac/Ubuntu
- MacとUbuntuには最初からインストールされています。
- Windows
- ローカル開発環境
sudo yum install -y vim
インストールが完了すれば、 vim コマンドを利用できるようになります。
vimのモードについて
モード | 状態 |
---|
ノーマルモード | カーソル移動やテキストの削除、コピー、ペーストなどの簡単な指示を行う。 |
ビジュアルモード | テキストを選択するだけのモード。 |
挿入モード | 実際にテキストを入力するモード。 |
コマンドラインモード | ファイルを開いたり、検索・置換などの様々な指示を行う。 |
モード切り替え
key | 内容 |
---|
i | 挿入モードへ |
o | 新しい行を追加し挿入モードへ |
R | 上書きモードへ |
v | ビジュアルモードへ |
Ctrl + v | 矩形選択のビジュアルモードへ |
ESC | コマンドモードに戻る |
ctrl + [ | コマンドモードに戻る |
ctrl + z | vim を一時停止する |
Vimの保存と終了
key | 内容 |
---|
:w [ファイル名] | 指定されたファイル名で保存する。ファイル名を省略した場合には、現在のファイルに上書きする |
:w! [ファイル名] | 書き込みを強行する |
ZZ | Vimを終了する。ファイルが変更されている場合には、変更を保存する |
:wq | ファイルを保存してVimを終了する |
:q | Vimを終了する。ファイルに変更がある場合には警告が標示される |
:q! | Vimを強制的に終了する。ファイルに変更がある場合は、変更分は無視 |
カーソル位置を移動する
key | 内容 |
---|
h(または←) | 左に1文字分移動する |
j(または↓) | 下に1文字分移動する |
k(または↑) | 上に1文字分移動する |
l(または→) | 右に1文字分移動する |
Ctrl + d | 半画面分下に移動する |
Ctrl + u | 半画面分上に移動する |
gg | ファイルの先頭へ移動する |
G | ファイルの末尾へ移動する |
O | 行頭へ移動する |
$ | 行末へ移動する |
w | 単語単位で右へ移動する |
b | 単語単位で左へ移動する |
Ctrl + f | 1画面分下に移動する |
Ctrl + b | 1画面分上に移動する |
zz | カーソルが画面中央になるようにスクロール |
Ctrl + o | 古いカーソル位置に戻る。 (Old) |
Ctrl + i | 新しいカーソル位置に進む。 |
コピー&ペースト&削除
key | 内容 |
---|
yy | 今いる行をコピー (yank) |
p | カーソルの場所に、ペースト |
yy5p | 現在の行をコピーし、下に5行追加する |
gv | 直前の選択範囲を再選択 |
x | カーソルの位置にある文字を削除する。キーボードの[Del]と同じ挙動です |
X | カーソルの位置の左の文字を削除する。キーボードの[BS]と同じ挙動です |
dd | カーソルのある行を1行削除する |
D | カーソルのある位置から行末まで削除する |
検索と置換
key | 内容 |
---|
* | カーソル下の単語を検索 |
# | カーソル下の単語を検索 (上方向に検索) |
:%s/hage/hoge/g | 単語の置換(hageをhogeへ置換)。% はファイル全体を表す。 |
編集
key | 内容 |
---|
. | 直前の変更を繰り返す |
u | Undo |
Ctrl + r | Redo |
特殊文字
key | 内容 |
---|
Ctrl-v return | 改行文字の入力 |
Ctrl-v tab | Tab 文字の入力 |
ウィンドウ
key | 内容 |
---|
:vsplit | 画面を左右に分割する |
:e filename | 今いるWindowにファイルを開く (Edit) |
:e test*.cc | ワイルドカードを指定してファイルを開く |
Ctrl +w h | 左のWindowへ移動 |
Ctrl + w l | 右のWindowへ移動 |
バッファ
key | 内容 |
---|
:buffers | 編集中のバッファ一覧を表示 |
:bn | 次のバッファに移動 |
:bd[elete] | バッファを削除 |
単語補完
マクロ
key | 内容 |
---|
q<letter> | マクロの記録開始 |
q | マクロの記録停止 |
@<letter> | マクロの実行 |
レジスタ
key | 機能 |
---|
:reg | レジスタの一覧表示 |
Ctrl + r " | ヤンクした文字列をペースト |
コマンドの意味
その他
key | 内容 |
---|
:!command | 外部コマンドの実行 |
: | 範囲選択中に : を入力すると、選択領域の範囲指定( ’<,’> )が自動で挿入された状態でコマンドモードに入る。これを置換に利用すると便利。 (例: :'<,'>s/old/new/g) |
Ctrl + a | 数値のインクリメント |
Ctrl + x | 数値のデクリメント |
Interactive Vim tutorial