version
$ vim --version
VIM - Vi IMproved 8.0
Huge version without GUI.
Change Mode
Key | 内容 |
---|---|
Esc | Normal Mode |
v | Visual Mode |
i | Insert Mode |
: | Command Mode |
Normal Mode
移動
Key | 内容 |
---|---|
h | ← |
j | ↓ |
k | ↑ |
l | → |
gg | 先頭行(1行目) |
5gg | 5行目 |
G | 最終行 |
Ctrl-f | 1ページ上 |
Ctrl-b | 1ページ下 |
w | 単語単位(前) |
b | 単語単位(後) |
0 | 行頭 |
^ | 文頭 |
$ | 行末(文末) |
% | 対応する括弧 |
削除
Key | 内容 |
---|---|
x | 文字 |
dd | 行(1行) |
5dd | 5行 |
di" | ダブルクオート内 |
da" | ダブルクオート以外 |
ヤンク(コピー)
Key | 内容 |
---|---|
yy | 行(1行) |
5yy | 5行 |
ペースト
Key | 内容 |
---|---|
p | 右(文字列)/下(行) |
P | 左(文字列)/上(行) |
検索
Key | 内容 |
---|---|
/word | word |
n | 下 |
N | 上 |
# | カーソル上の単語を上に検索 |
* | カーソル上の単語を下に検索 |
操作
Key | 内容 |
---|---|
u | undo |
Ctrl-r | redo |
. | 直前の操作の繰り返し |
= | インデント調整 |
レジスタ操作
Key | 内容 |
---|---|
"ayy | aレジスタにヤンク |
"ap | aレジスタのペースト |
"0p | 無名レジスタと同時に0レジスタにも格納される |
:h registers | レジスタヘルプ |
:reg | レジスタ一覧 |
Visual Mode
選択
Key | 内容 |
---|---|
v | 文字 |
V | 行 |
Ctrl-v | 短形 |
gg + V + G | 全体 |
複数行操作
Key | 内容 |
---|---|
Ctrl-v + Ctrl-I(or x) | 複数行挿入や変更 |
Ctrl-v + $ + Ctrl-A | 複数行末変更 |
Ctrl-v + J | 複数行改行削除 |
Insert Mode
挿入
Key | 内容 |
---|---|
i | カーソル前 |
a | カーソル後 |
I | 行頭 |
A | 行末 |
O | 行前(1行前) |
o | 行後(1行後) |
その他
Key | 内容 |
---|---|
Ctrl-n | 補完 |
Ctrl-r + " or (レジスタ) | 貼り付け |
Command Mode
保存/終了
Key | 内容 |
---|---|
:w | 保存 |
:w filename | filename名で保存 |
:w 1,5 | 1行目から5行目までを保存 |
:q | 終了 |
:q! | 強制終了 |
:e filename | 別ファイルを開く |
置換
Key | 内容 |
---|---|
:s/置換前/置換後/g | カーソル行の置換 |
:%s/置換前/置換後/g | 全体の置換 |
:%s/置換前/置換後/gc | チェックしながら置換 |
画面
Key | 内容 |
---|---|
:sp | 上下に画面を分割 |
:vs | 左右に画面を分割 |
Ctrl-w + w | 分割画面間の移動 |
:close | 分割画面を閉じる |
:tabnew | 新しいタブを開く |
:tabe filename | タブを開く |
gt | タブの移動 |
:tabclose | タブを閉じる |
vim -p filename1 filename2 | vim起動時にタブで開く |
:tabdo %s/置換前/置換後/g | タブ間で置換 |
その他
Key | 内容 |
---|---|
:help Ctrl+r Ctrl+w | カーソル上の単語をhelp |
vimrc
" color
syntax on"Display Settingsetnumber " 行番号を表示する
"set cursorline " カーソル行の背景色を変える"set cursorcolumn " カーソル位置のカラムの背景色を変えるset laststatus=1 " ステータス行を常に表示
set cmdheight=2 " メッセージ表示欄を2行確保
set showmatch " 対応する括弧を強調表示
set helpheight=999 " ヘルプを画面いっぱいに開く
"set list " 不可視文字を表示" 不可視文字の表示記号指定"set listchars=tab:>,eol:>,extends:>,precedes:<"Scrool Settingset backspace=indent,eol,start " Backspaceキーの影響範囲に制限を設けない
set whichwrap=b,s,h,l,<,>,[,] " 行頭行末の左右移動で行をまたぐ
set scrolloff=8 " 上下8行の視界を確保
set sidescrolloff=16 " 左右スクロール時の視界を確保
set sidescroll=1 " 左右スクロールは一文字づつ行う
" Filesetconfirm " 保存されていないファイルがあるときは終了前に保存確認
set hidden " 保存されていないファイルがあるときでも別のファイルを開くことが出来る
set autoread "外部でファイルに変更がされた場合は読みなおす
set nobackup " ファイル保存時にバックアップファイルを作らない
setnoswapfile " ファイル編集中にスワップファイルを作らない
" Searchset hlsearch " 検索文字列をハイライトする
set incsearch " インクリメンタルサーチを行う
set ignorecase " 大文字と小文字を区別しない
set smartcase " 大文字と小文字が混在した言葉で検索を行った場合に限り、大文字と小文字を区別する
set wrapscan " 最後尾まで検索を終えたら次の検索で先頭に移る
set gdefault " 置換の時 gオプションをデフォルトで有効にする
" Tab/Spaceset expandtab " タブ入力を複数の空白入力に置き換える
set tabstop=2 " 画面上でタブ文字が占める幅
set shiftwidth=2 " 自動インデントでずれる幅
set softtabstop=2 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行時に前の行のインデントを継続する
set smartindent " 改行時に入力された行の末尾に合わせて次の行のインデントを増減する
set nobackup