Vimコマンド・キーマップ・プラグイン
スクロール系
zz
現在の行を画面の中央になるようにスクロール
zt
現在の行を画面の最上行になるようにスクロール
zb
現在の行を画面の最下行になるようにスクロール
<C-y>
1行上にスクロール
<C-e>
1行下にスクロール
※ <C-y>
はCtrl+yのこと
インサートモードからノーマルモードに戻る
Esc
もしくは <C-[>
もしくは <C-c>
※ <C-[>
はEsc
と同じだが、<C-c>
はEsc
とは異なり、キャンセルしてインサートモードに戻る挙動になる
カーソル移動系
文字単位
h
左に移動
j
下に移動
k
上に移動
l
右に移動
単語単位
w
1単語先に移動
b
1単語前に移動
e
単語の末尾に移動
空白区切り単位
W
次の空白に移動
B
前の空白に移動
E
次の空白の前の単語の末尾に移動
行単位
0
行頭に移動
^
空白以外の行頭に移動
$
行末に移動
文単位
)
1文分上に移動
(
1文分下に移動
段落単位
}
1段落分上に移動
{
1段落分下に移動
画面移動系
<C-b>
1画面分上に移動
<C-f>
1画面分下に移動
<C-u>
半画面分上に移動
<C-d>
半画面分下に移動
H
画面の最上行に移動
M
画面の中央行に移動
L
画面の最下行に移動
検索系
行単位
f{char}
カーソルから右側にある{char}に移動
F{char}
カーソルから左側にある{char}に移動
;
直前の行単位検索を繰り返す
,
直前の行単位検索を逆方向に繰り返す
ファイル単位
*
カーソル位置の単語を下方向に検索
#
カーソル位置の単語を上方向に検索
g*
カーソル位置の単語(部分一致)を下方向に検索
g#
カーソル位置の単語(部分一致)を上方向に検索
%
対応するカッコに移動
/{patter}
{pattern}に部分一致する箇所を下方向に検索
?{patter}
{pattern}に部分一致する箇所を上方向に検索
n
直前のファイル単位検索を繰り返す
N
直前のファイル単位検索を逆方向に繰り返す
ウィンドウ操作系
ウィンドウ分割
<C-w>s
水平方向に分割 (split)
:sp
水平方向に分割
<C-w>v
垂直方向に分割 (vertical)
:vs
垂直方向に分割
:new
水平方向に分割して新規ファイルを開く
:vnew
垂直方向に分割して新規ファイルを開く
ウィンドウ移動
<C-w>h
左のウィンドウに移動する
<C-w>j
下のウィンドウに移動する
<C-w>k
上のウィンドウに移動する
<C-w>l
右のウィンドウに移動する
<C-w>w
次のウィンドウに移動する
ウィンドウの入れ替え
<C-w>x
現在のウィンドウと次のウィンドウを入れ替える (exchange)
ウィンドウサイズの変更
<C-w>_
垂直に最大化する
<C-w>|
水平に最大化する
<C-w>=
サイズを揃える
<C-w>>
幅を増やす
<C-w><
幅を減らす
<C-w>+
高さを増やす
<C-w>-
高さを減らす
その他
g,
最後に編集した場所に移動
操作した後にインサートモードに切り替える系
a
カーソルの後ろに移動 → インサートモード
A
現在の行の行末に移動 → インサートモード
I
現在の行の行頭に移動 → インサートモード
c{motion}
{motion}で指定したテキストを削除 → インサートモード
C
カーソル位置から行末までを削除 → インサートモード
s
カーソル位置の1文字を削除 → インサートモード
S
現在の行のテキストを全て削除 → インサートモード (cc
と同じ)
o
現在の行の下に新しい行を挿入 → インサートモード
O
現在の行の上に新しい行を挿入 → インサートモード
NOTE
cw
カーソル位置から1単語分削除 → インサートモード
TIPS
caw
カーソル位置の単語を削除してインサートモード
A;<Ecs>j.
行末に;
を挿入して次の行に移動し、.
で繰り返す
削除・置換系
削除
d{motion}
{motion}で指定したテキストを削除
D
カーソル位置から行末までを削除
x
カーソル位置の1文字を削除
X
カーソル位置の1文字前を削除
J
現在の行と次の行を連結
置換
r{char}
カーソル位置の1文字を{char}に置換
R
Replaceモードに切り替える
NOTE
dd
現在の行を削除
db
前の1単語を削除
TIPS
daw
カーソル位置の単語を削除
ビジュアルモード
v
文字選択モード
V
行選択モード
<C-v>
矩形選択モード
gv
直前の選択範囲を再度選択する
o
選択範囲のもう一方の端点に移動する
TIPS
viw
カーソル位置の1単語を選択
Vr-
現在の行の全てのテキストを-
に置換
インデント系
>>
インデントを1段下げる
<<
インデントを1段上げる
=
インデントを揃える
TIPS
gg=G
ファイル全体のインデントを揃える
ヤンク・ペースト・アンドゥ
ヤンク
y{motion}
{motion}で指定したテキストをヤンク
Y
現在の行のテキストをヤンク (yy
と同じ)
ペースト
p
カーソルの後ろにペースト
P
カーソルの前にペースト
アンドゥ
u
アンドゥ(1つ戻る)
<C-r>
アンドゥをアンドゥ
インサートモードのキーマップ
<C-n>
カーソル位置の単語でコードヒンティングを出す
<C-p>
カーソル位置の単語でコードヒンティングを出す
<C-t>
インデントを1段下げる
<C-d>
インデントを1段上げる
<C-u>
行頭からカーソル位置までを削除
<C-w>
カーソル位置の単語の先頭からカーソルの前までを削除
<C-x><C-e>
1行下にスクロール
<C-x><C-y>
1行上にスクロール
<C-x><C-i>
単語を補完
参考
プラグインのインストール
vim-plugを使っています
インストール
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
使い方
~/.vimrc
に以下の設定を追加
call plug#begin()
" ここにインストールしたいプラグインを列挙する
Plug 'scrooloose/nerdtree'
call plug#end()
プラグインのインストール
.vimrcを再読み込みして:PlugInstall
を実行するとインストールが開始する
プラグインのアンインストール
.vimrcからPlugの行を削除したのち:PlugClean
を実行する
ファイル検索
ctrlp.vimを使っています
インストール
Plug 'ctrlpvim/ctrlp.vim'
使い方
<C-p>
で検索ウィンドウが開く
ファイル名を曖昧検索できる
タブ機能
こちらの記事を参考に設定した
tn
次のタブを開く
tp
前のタブを開く
tc
新しいタブで新規ファイルを開く
tx
タブを閉じる
t{1...9}
n番目のタブを開く
ディレクトリツリー
NERDTreeを使っています
インストール
Plug 'preservim/nerdtree'
使い方
:NERDTreeToggle
でディレクトリツリーを表示/非表示する
ファイルを選択した状態で
Enter
ファイルを開く
t
新規タブで開く
T
新規タブで開き、移動はしない
i
水平分割して開く
gi
水平分割して開き、移動はしない
s
垂直分割して開く
gs
垂直分割して開き、移動はしない
カスタム設定
" <C-n>でNERDTreeを表示/非表示する
nnoremap <silent><C-n> :NERDTreeToggle<CR>
" 隠しファイルを表示する
let NERDTreeShowHidden = 1
" デフォルトでツリーを表示させる
let g:nerdtree_tabs_open_on_console_startup=1
" 他のバッファをすべて閉じた時にNERDTreeが開いていたらNERDTreeも一緒に閉じる。
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
タブを移動してもNERDTreeを維持する
NERDTreeはタブで独立に状態を維持しているため、タブを移動すると表示されなくなります
jistr/vim-nerdtree-tabs
をインストールすることでタブを移動してもNERDTreeを維持することができる
Plug 'jistr/vim-nerdtree-tabs'
マーク機能
m[a-zA-Z]
markする
[a-zA-Z]
マークに移動
:marks
マーク一覧
:delmarks [a-zA-Z]
マークを削除
:delmarks!
マークを一括削除
fern.vim
インストール
Plug 'lambdalisue/fern.vim'
使い方
:Fern .
: ファイラーを開く
j, k
: 上下に移動
l
: フォルダを展開する、ファイルを開く
h
: フォルダを閉じる
<CR>
: フォルダを開く
D
: ファイルを削除
m
: move
N
: ファイルを作成
K
: ディレクトリを作成
!
: 隠しファイルを表示/非表示
E
: 垂直分割してファイルを開く
R
: ファイル名変更
y
: ファイルパスをヤンク
markdown
インストール
" markdown syntax highlight
Plug 'tpope/vim-markdown'
" markdown preview (:PrevimOpenでブラウザが起動する)
Plug 'previm/previm'
Plug 'tyru/open-browser.vim'