Mac で Vim を統一して使う方法(ターミナル & VSCode)
はじめに
Mac で ターミナル Vim と VSCode の Vim 拡張(VSCodeVim) をできるだけ統一して使いたい場合、設定の違いを理解して適用するのが大事です。
特に、jj
/ jj
でノーマルモードに戻る設定や、Vim の便利な設定・コマンドを ターミナル Vim と VSCode の両方で統一する方法を解説します。
また、jj
/ jj
を押したときに IME を自動でオフ(英字入力に切り替え) する方法や、Vim のクリップボード設定 (yy
でコピー) が機能しない場合の対処法も紹介します。
1. Vim のおすすめ設定(.vimrc)
Vim を快適に使うための .vimrc
の設定を紹介します。
" 文字エンコーディング
set fenc=utf-8
" 表示関連
set number " 行番号を表示
set cursorline " カーソル行を強調
set visualbell " ビープ音を視覚的に変更
set background=dark " ダークテーマ対応
set laststatus=2 " ステータスラインを常に表示
syntax on " シンタックスハイライト有効
set ruler " カーソル位置を表示
" 検索関連
set ignorecase " 大文字小文字を区別しない検索
set smartcase " 大文字を含む場合は区別
set incsearch " インクリメンタル検索(リアルタイム)
set hlsearch " 検索結果をハイライト表示
" タブ・インデント
set expandtab " タブをスペースに変換
set tabstop=2 " タブ幅を2スペースに
set shiftwidth=2 " インデント幅を2スペースに
set autoindent " 自動インデントを有効化
" クリップボード設定
set clipboard=unnamedplus " システムクリップボードと連携(`yy` でコピー)
" キーマッピング(すべてのモードで 'jj' / 'jj' でノーマルモードへ戻る)
inoremap <silent> jj <ESC>:silent !im-select com.apple.keylayout.ABC<CR>
inoremap <silent> jj <ESC>:silent !im-select com.apple.keylayout.ABC<CR>
cnoremap jj <C-c>
cnoremap jj <C-c>
vnoremap jj <ESC>
vnoremap jj <ESC>
xnoremap jj <ESC>
xnoremap jj <ESC>
onoremap jj <ESC>
onoremap jj <ESC>
snoremap jj <ESC>
snoremap jj <ESC>
2. .vimrc
を VSCode にも適用する(設定の統一)
Vim の設定を VSCode でも適用するには、settings.json
に以下の設定を追加します。
{
"vim.vimrc.enable": true,
"vim.vimrc.path": "~/.vimrc"
}
この設定を適用することで、Vim の設定を VSCodeVim でもそのまま利用 できるようになります。
4. Vim で yy
がクリップボードにコピーされないときの対処法
Vim で set clipboard=unnamedplus
を設定しているのに yy
でクリップボードにコピーできない場合、Vim が +clipboard
に対応しているか確認してください。
✅ Vim の +clipboard
対応を確認
vim --version | grep clipboard
出力例(対応している場合)
+clipboard +xterm_clipboard
出力例(対応していない場合)
-clipboard -xterm_clipboard
✅ Mac で +clipboard
に対応した Vim をインストール
brew install vim
この後、Vim を再起動すると yy
でクリップボードにコピーできるようになります。
5. よく使う Vim コマンド
移動・検索関連
-
gd
/gD
: 変数や関数の定義へジャンプ -
Ctrl-o
/Ctrl-i
:ジャンプ履歴を戻る・進む -
gf
:カーソル下のファイルを開く -
[{
/]}
:関数やブロックの開始・終了へジャンプ -
f<char>
/F<char>
:指定した文字へ移動(順方向 / 逆方向) -
;
/,
:直前のf
/F
の移動を繰り返す -
>>
/<<
: インデントの追加
編集関連
-
ciw
:カーソル位置の単語を削除して挿入 -
di[
:[
を含むブロックの中身を削除 -
r<char>
:カーソル下の1文字を<char>
に置換 -
.
:直前の編集操作を繰り返す(挿入後でもEsc
でノーマルモードに戻れば使用可) -
Shift-A
:行末に移動して挿入モード -
gU
:選んだ文字を大文字にする
6. まとめ
-
Vim の設定を
.vimrc
に統一 し、VSCode でもそのまま適用可能 -
jj
/jj
でノーマルモードに戻る + IME をオフ にする設定を追加 yy
でクリップボードにコピーするには+clipboard
対応の Vim が必要
この .vimrc
を導入すれば、Mac で Vim を統一して快適に使えるはず!