Vimの真髄を極める！おすすめvimrc(2024年07月版)

# Vimの真髄を極める！おすすめvimrc(2024年07月版)
Vimはシンプルでありながら、極めると非常に強力なエディタです。
今回は、Vimをさらに使いやすく、効率的にするためのおすすめ設定を紹介します。
この設定をあなたの.vimrcに追加するだけで、コーディングライフが劇的に向上すること間違いなし！

# 目次
1. 基本設定
1. 見た目のカスタマイズ
1. スクロールとマウスサポート
1. ファイルタイプとプラグイン設定
1. キーマッピングで快適操作

## 1. 基本設定
Vimの使いやすさを劇的に改善する基本設定を紹介します。まずは必須の基本設定から。

```vim
set nocompatible              " Vi互換モードを無効にする
syntax on                     " シンタックスハイライトを有効にする
set number                    " 行番号を表示する
set relativenumber            " 相対行番号を表示する
set tabstop=4                 " タブをスペース4つ分に設定
set shiftwidth=4              " 自動インデントで使用するスペースの数
set expandtab                 " タブの代わりにスペースを使用する
set autoindent                " 新しい行で現在の行のインデントをコピーする
set smartindent               " 新しい行でスマートインデントを有効にする
set hlsearch                  " 検索結果をハイライトする
set incsearch                 " インクリメンタル検索を有効にする
set ignorecase                " 検索時に大文字小文字を無視する
set smartcase                 " 検索パターンに大文字が含まれる場合はignorecaseを無視する
set clipboard=unnamedplus     " システムクリップボードを使用する
set cursorline                " 現在の行をハイライトする
set showmatch                 " 対応する括弧をハイライトする
set wildmenu                  " コマンドライン補完を有効にする
set wildmode=list:longest     " コマンドライン補完モード
```

##  2. 見た目のカスタマイズ
Vimの見た目も重要です。作業環境が美しいと、気分も上がりますよね。

```vim
set background=dark           " 背景色を暗く設定する
set termguicolors             " 24ビットRGBカラーを有効にする
colorscheme desert            " カラースキームを設定する
set cmdheight=2               " コマンドラインの高さを2行にする
set laststatus=2              " 常にステータスラインを表示する
set ruler                     " カーソル位置の行と列番号を表示する
```

## 3. スクロールとマウスサポート
スクロールやマウスサポートも重要です。Vimをより直感的に操作できるようになります。

```vim
set mouse=a                   " マウスサポートを有効にする
set splitbelow                " 水平方向の分割を下に設定する
set splitright                " 垂直方向の分割を右に設定する
set wrap                      " 行の折り返しを有効にする
set linebreak                 " 単語の途中で折り返さないようにする
set showbreak=>>>             " 折り返し部分の表示を設定する
set foldmethod=syntax         " シンタックスに基づいて折り畳みを設定する
set foldlevelstart=99         " デフォルトでほとんどの折り畳みを開く
```

## 4. ファイルタイプとプラグイン設定
ファイルタイプやプラグインを設定することで、Vimをさらにパワーアップさせましょう。

```
set noswapfile                " スワップファイルを無効にする
filetype plugin indent on     " ファイルタイプの検出、プラグイン、インデントを有効にする

" プラグイン（プラグインマネージャーを使用する場合、例えばvim-plug）
"call plug#begin('~/.vim/plugged')
"Plug 'tpope/vim-sensible'
"Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
"Plug 'junegunn/fzf.vim'
"Plug 'airblade/vim-gitgutter'
"Plug 'scrooloose/nerdtree'
"Plug 'majutsushi/tagbar'
"Plug 'vim-airline/vim-airline'
"Plug 'vim-airline/vim-airline-themes'
"call plug#end()
```

## 5. キーマッピングで快適操作
自分に合ったキーマッピングを設定して、Vimをさらに快適に使いましょう。

```vim
nnoremap <C-n> :NERDTreeToggle<CR>   " Ctrl+nでNERDTreeを切り替える
nnoremap <C-p> :Files<CR>            " Ctrl+pでFZFファイルファインダーを開く
nnoremap <F8> :TagbarToggle<CR>      " F8でTagbarを切り替える
nnoremap <Leader>w :w<CR>            " Leader+wで保存する
nnoremap <Leader>q :q<CR>            " Leader+qで終了する
```

# まとめ
```vim
" 基本設定
set nocompatible              " Vi 互換モードを無効にする
syntax on                     " シンタックスハイライトを有効にする
set number                    " 行番号を表示する
set relativenumber            " 相対行番号を表示する
set tabstop=4                 " タブをスペース4つ分に設定
set shiftwidth=4              " 自動インデントで使用するスペースの数
set expandtab                 " タブの代わりにスペースを使用する
set autoindent                " 新しい行で現在の行のインデントをコピーする
set smartindent               " 新しい行でスマートインデントを有効にする
set hlsearch                  " 検索結果をハイライトする
set incsearch                 " インクリメンタル検索を有効にする
set ignorecase                " 検索時に大文字小文字を無視する
set smartcase                 " 検索パターンに大文字が含まれる場合はignorecaseを無視する
set clipboard=unnamedplus     " システムクリップボードを使用する
set cursorline                " 現在の行をハイライトする
set showmatch                 " 対応する括弧をハイライトする
set wildmenu                  " コマンドライン補完を有効にする
set wildmode=list:longest     " コマンドライン補完モード

" 見た目の設定
set background=dark           " 背景色を暗く設定する
set termguicolors             " 24ビットRGBカラーを有効にする
colorscheme desert            " カラースキームを設定する

" メッセージの表示を改善する
set cmdheight=2

" ステータスラインを常に表示する
set laststatus=2

" カーソル位置の行と列番号を表示する
set ruler

" マウスサポートを有効にする
set mouse=a

" ウィンドウの分割
set splitbelow                " 水平方向の分割を下に設定する
set splitright                " 垂直方向の分割を右に設定する

" 行の折り返しを有効にする
set wrap
set linebreak
set showbreak=>>>

" 折り畳み
set foldmethod=syntax         " シンタックスに基づいて折り畳みを設定する
set foldlevelstart=99         " デフォルトでほとんどの折り畳みを開く

" スワップファイルを無効にする
set noswapfile

" ファイルタイプの設定
filetype plugin indent on     " ファイルタイプの検出、プラグイン、インデントを有効にする

" プラグイン（プラグインマネージャーを使用する場合、例えばvim-plug）
"call plug#begin('~/.vim/plugged')
"Plug 'tpope/vim-sensible'
"Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
"Plug 'junegunn/fzf.vim'
"Plug 'airblade/vim-gitgutter'
"Plug 'scrooloose/nerdtree'
"Plug 'majutsushi/tagbar'
"Plug 'vim-airline/vim-airline'
"Plug 'vim-airline/vim-airline-themes'
"call plug#end()

" キーマッピング
nnoremap <C-n> :NERDTreeToggle<CR>   " Ctrl+nでNERDTreeを切り替える
nnoremap <C-p> :Files<CR>            " Ctrl+pでFZFファイルファインダーを開く
nnoremap <F8> :TagbarToggle<CR>      " F8でTagbarを切り替える
nnoremap <Leader>w :w<CR>            " Leader+wで保存する
nnoremap <Leader>q :q<CR>            " Leader+qで終了する
```

この .vimrc 設定を使えば、Vimをさらに使いやすく、効率的にカスタマイズすることができます。
ぜひ試してみてください！もし他にもおすすめの設定があれば、コメントで教えてくださいね。