MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

個人的おすすめなvimrc設定

はじめに

vimrcに設定すると便利な設定(プラグイン以外)をまとめています。

おすすめプラグインはこちら

myenigma.hatenablog.com

個人用vimrc

下記のGitHubリポジトリで公開しています。

参考にどうぞ。

myvim/.vimrc at master · AtsushiSakai/myvim

スペース+ドットでvimrcを開く

vimerなるもの、vimrcは即座に確認したいので、

space + . でvimrcをタブで開けるようにしておきます。

"vimrcをスペースドットで開く
nnoremap <space>. :<c-u>tabedit $MYVIMRC<CR>

入力モード中に素早くjjと入力した場合はESCとみなす

ESCキーやが遠かったり、押しづらかったので、

入力モード中にjjとおした時はESCキーとするようにしました。

" 入力モード中に素早くjjと入力した場合はESCとみなす
inoremap jj <Esc>

+ - で数字のインクリメント・デクリメント

下記のスクリプトで、数字の上で+,-を押すと、

その値をインクリメント、デクリメントできます。

デフォルトのショートカットがわかりにくいので、リマップした方が便利です。

" 数字のインクリメントとデクリメントを分かりやすく
nnoremap + <C-a>
nnoremap - <C-x>

検索後にジャンプした際に検索単語を画面中央に持ってくる

検索でジャンプした後に、

その単語を中央にするようにジャンプするように設定しておくと、

検索した時のストレスが減りました。

" 検索後にジャンプした際に検索単語を画面中央に持ってくる
nnoremap n nzz
nnoremap N Nzz
nnoremap * *zz
nnoremap # #zz
nnoremap g* g*zz
nnoremap g# g#zz

スペース連打で編集したファイル履歴を表示する

MRUを多用するため、スペース2回でMRUを起動するようにしています。

"スペースx2で過去に修正したファイルエクスプローラを起動する(MRU)
nnoremap <space><space> :<c-u>MRU<CR>

ESCを二回押すことでハイライトを消す

検索したあとのハイライトが邪魔な時があるので、

ESC2回で消すようにしました。

" ESCを二回押すことでハイライトを消す
nmap <silent> <Esc><Esc> :nohlsearch<CR>

set backupdir=~/.vim/backup

このコマンドを書くと,指定したディレクトリの下に

保存したファイルの,前のバージョンのファイルを

自動的にバックアップすることができます.

間違って,保存しちゃった!!って時は,

このファイルをリネームすれば,

保存前のデータを復旧することができます.


また,バックアップファイルの場所を

違うドライブのHDにしておけば,

ファイルのバックアップにもなります.

set directory=~/.vim/backup

こちらはスワップファイルを自動的に保存することができます.

このスワップファイルは,

vimがクラッシュした時に壊れる前の状態に

vimを復旧することができます.

画面分割時のウインドウサイズをShift+矢印で変更する

:new などの画面分割を多用するので、

それぞれのウインドウのサイズ調整を

Shift+矢印でできるようにしています。

" Shift + 矢印でウィンドウサイズを変更
nnoremap <S-Left>  <C-w><<CR>
nnoremap <S-Right> <C-w>><CR>
nnoremap <S-Up>    <C-w>-<CR>
nnoremap <S-Down>  <C-w>+<CR>

ファイル保存時に自動的にファイルエンコードを設定する

ファイルのコピペなどを行うと、

時たま変なエンコードのファイルが作成されてしまい、

他のエディタで開くと文字化けしてしまう時がありますが、

そんな時は下記のコマンドをvimrcに書いておくと、

ファイル保存時に自動的にファイルエンコードを一般的なutf-8にしてくれます。


もしかしたらエンコードを変えるとまずいファイルもあるかもしれないので、

一応、拡張子を指定しています。

autocmd BufWrite *.{h,cpp} set fenc=utf-8

編集ファイルのディレクトリに移動するコマンドCdCurrent

Windows版のgvimでは、

CdCurrentというコマンドで編集ファイルのディレクトリに移動できますが、

LinuxやMacのvimでも同じように移動できるように設定しておきます。

"gvimのCdCurrentを設定 "
command! -nargs=0 CdCurrent cd %:p:h

vimrcでOSを認識する

OS毎にvimの設定を共通化したい場合は、

下記のようにOSをvimrcで認識できます。

if has('win32') 
    "Windows"
elseif system("uname")=="Darwin\n"
    "Mac"
elseif system("uname")=="Linux\n"
    "unix"
endif