基本
- ヘルプコマンドの使い方 (
:help
,:helpgrep
) - 移動
- 文字の削除方法まとめ(テキストオブジェクト) (
d
,delete
) - 文字の置換方法まとめ (
:s
,:substitute
) - ウィンドウを分割する
- アンドゥとリドゥ操作 (
u
,Ctrl-r
,undolevels
) - ビジュアルモードの基本 (
v
,Shift-v
,Ctrl-v
)
コマンドモード (:
, /
, ?
)
検索
- Vim 内で grep を実行して見つかったファイルへジャンプする (
:vimgrep
,:grep
) - Vim でカレントファイル内の文字列を検索する (
/
,?
,*
,#
) - Vim で大文字と小文字を区別しないで検索する (
ignorecase
,\c
) - Vim の検索に関する設定 (
ignorecase
,smartcase
,wrapscan
,hlsearch
,incsearch
)
コマンドライン
ファイル
ファイルを開く
- ファイル名を指定してファイルを開く (
:e
,:edit
,:view
) - カーソル位置の単語をファイル名としてファイルを開く (
gf
,Ctrl-w gf
,Ctrl-w f
) - 編集中のファイルと拡張子だけが異なるファイルを開く (%<)(Hello.cpp を編集中に Hello.h を開く)
- ディレクトリエクスプローラー (Explore) を使用してファイルを開く (:E, :Ve, :He)
- カレントディレクトリを Windows エクスプローラーで開く
ファイルを保存する
その他
- 別ファイルの内容や外部コマンドの実行結果をカーソル位置に挿入する (:read)
- ファイルのエンコーディング形式、改行コードを変更する (fenc, ff)
- スワップファイルからファイルを復旧する (:recover)
- 2 つのファイルの差分を取る・マージする (vimdiff, vim -d)
編集操作
文字の追加
削除
整形/変換
- 行を連結する
- 文字を入れ替える、行を入れ替える(スワップ操作)
- インデント用のスペースを入力する(シフトコマンド) (
>>
,<<
,Ctrl-T
,Ctrl-D
) - 選択した範囲を自動インデントする (
=
) - すでに入力されているタブをスペースに変換する (
:retab
) - テキストを中央寄せ/左寄せ/右寄せする
- 大文字と小文字を変換する
- カーソル位置の数字をインクリメント/デクリメントする
- ソート
カット&ペースト
応用操作
- Vim 上でディレクトリツリーを表示する (NERDTree)
- 折りたたみ機能 (folding) を使用する
- 指定した行範囲を一時的に表示する
- 一時的にシェル(ターミナルやコマンドプロンプト)を起動する
- キーボードマクロを記録して一連のキー入力を繰り返し実行する
- プリンタで印刷する (hardcopy)
- 行の情報を表示する
- ファイルに保存した ex スクリプトを実行する
- プログラマ向け操作
- カーソル位置の単語に対して任意のコマンド(ヘルプなど)を実行する (
keywordprg
)
インストール/環境
- MacOSX に香り屋版の GVim をインストールする
- Vundle をインストールして Vim のプラグイン環境を作る
- Windows の右クリックから Vim を開けるようにする
- Windows でファイルを開くときに既存の GVim 内のタブで開く
Vim の設定
ファイル・ディレクトリに関する設定と操作
- Vim/NeoVim の設定ファイルのパスを確認する (
$MYVIMRC
) - 設定ファイル (
.vimrc
) を開く、リロードする - 設定ファイルから別の設定ファイルを読み込む (
source
,dofile
) - モードラインでファイルごとに書式を設定する
- バックアップファイル/スワップファイル/アンドゥファイルの設定 (backup, swapfile, undofile)
- ウィンドウ(タブ)移動時にカレントディレクトリも自動で移動する (
autochdir
)
キーマップ設定
- キーマップの基本 (
map
,noremap
) map
、noremap
系コマンドで使用できる特殊キーの一覧 (key-notation
,key-codes
)- 現在のキーマップの一覧を表示する (
map
) <Leader>
キーを使ったキーコンビネーションを定義する (mapleader
)- キーマップ設定の例
autocmd(自動コマンド)による設定
autocmd
で自動コマンドを登録するautocmd
設定の例
表示の設定
- 行番号を表示する (
set number
,vim.opt.number
) - 80文字目に縦線を表示する (colorcolumn)
- 構文強調(シンタックスハイライト)を有効にする (syntax)
- カーソル下の行や列をハイライト表示する (cursorline, cursorcolumn)
- Vim/NeoVim で GUI モード用のフォントを設定する (
guifont
) - 制御文字(改行、タブ文字、行末のスペースなど)を表示する (
list
,listchars
) - 全角スペースを見えるように表示する
- ■や※などの記号が重なって表示される問題の解決 (ambiwidth)
- GVim 起動時のウィンドウの幅、高さを設定する (columns, lines)
- ステータスラインの表示内容を設定する (statusline, laststatus)
入力に関する設定
- OS のクリップボードとヤンクレジスターを連動させる (
clipboard
) - タブ文字の設定 (
tabstop
,expandtab
,softtabstop
) - インデント(シフトコマンド)を設定する (
shiftwidth
,shiftround
) - 自動インデントモードを有効にする (
autoindent
,smartindent
,cindent
) - ビジュアルモードで簡単にインデントを行えるようにする
- インサートモード中に
Backspace
キーやCTRL-W
で文字を削除するときの振る舞いを変更する (backspace
) - 省略形を用いたテキスト入力を行えるようにする (
abbrevaite
) - スペルチェックを有効にする (
spell)
- Java や C/C++ のコメント記述に便利な
formatoptions
の設定