Vimの基本的な使い方とおすすめプラグイン

Vimは、強力なテキストエディタであり、その効率的な操作性から多くの開発者に愛用されています。ここでは、Vimの基本的な操作方法と、開発効率を向上させるためのおすすめプラグインを紹介します。

Vimの基本操作

Vimには複数のモードがあり、それぞれのモードで異なる操作が可能です。

モード切り替え

  • i: 挿入モード (Insert Mode)。テキストの入力ができます。
  • Esc キー: ノーマルモード (Normal Mode)。コマンドの実行やカーソル移動ができます。
  • v: ビジュアルモード (Visual Mode)。テキストを選択して操作できます。
  • :: コマンドラインモード (Command-line Mode)。コマンドを入力して実行できます。

ノーマルモードでの移動

  • h: 左へ移動
  • j: 下へ移動
  • k: 上へ移動
  • l: 右へ移動
  • w: 次の単語の先頭へ移動
  • b: 前の単語の先頭へ移動
  • {: 段落の先頭へ移動
  • }: 段落の末尾へ移動
  • gg: ファイルの先頭へ移動
  • G: ファイルの末尾へ移動
  • 0: 行の先頭へ移動
  • $: 行の末尾へ移動

ファイルの保存と終了

  • :w: 上書き保存
  • :q: 編集終了(変更がない場合のみ)
  • :q!: 変更を破棄して強制終了
  • :wq: 保存して終了
  • :x: 保存して終了(:wq とほぼ同じ)

ノーマルモードでの操作

  • x: カーソル位置の1文字を削除
  • dd: 現在の行を削除
  • dw: カーソル位置から単語の終わりまでを削除
  • 2dd: 現在の行から2行を削除
  • u: 直前の操作を取り消し (Undo)
  • Ctrl + r: 取り消した操作をやり直し (Redo)
  • yy: 現在の行をコピー (Yank)
  • p: カーソル位置のにペースト
  • P: カーソル位置のにペースト
  • 2yy: 現在の行から2行をコピー
  • .: 直前の操作を繰り返す (Repeat)

検索と置換

  • /検索内容: 下方向へ検索
  • ?検索内容: 上方向へ検索
  • n: 次の検索結果へ移動
  • N: 前の検索結果へ移動
  • :%s/置換前/置換後/g: ファイル全体で一括置換
  • :%s/置換前/置換後/gc: ファイル全体で一括置換(確認あり)

その他の便利な操作

  • o: 現在の行の下に新しい行を挿入し、挿入モードへ移行
  • O: 現在の行の上に新しい行を挿入し、挿入モードへ移行
  • J: 現在の行と次の行を連結

Vimのプラグイン

Vimの機能を拡張するためには、プラグインマネージャーとプラグインの導入が不可欠です。

Vim Plug

おすすめプラグイン

.vimrc 設定例

~/.vimrc ファイルに以下の設定を記述することで、Vimの動作やプラグインをカスタマイズできます。

" シェルをzshに設定 (お使いのシェルに合わせて変更)
set shell=/bin/zsh

" インデント設定
set shiftwidth=4    " 自動インデントの幅
set tabstop=4       " タブ文字の表示幅
set expandtab       " タブをスペースに変換
set autoindent      " 自動インデントを有効にする

" 検索設定
set hlsearch        " 検索結果をハイライト表示

" クリップボード設定 (システムクリップボードと連携)
set clipboard=unnamed

" シンタックスハイライトを有効にする
syntax on

" Vim Plugの初期化
call plug#begin()
Plug 'ntk148v/vim-horizon'
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end()

" カラースキームの設定
set termguicolors   " ターミナルのTrue Colorを有効にする (カラースキームが正しく表示されるように)
colorscheme horizon " horizonカラースキームを適用

" lightline.vim の設定例 (ステータスラインをカスタマイズするプラグイン)
" lightline.vim を使用する場合は、Plug 'itchyny/lightline.vim' も追加
" let g:lightline = {}
" let g:lightline.colorscheme = 'horizon'

参考