やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Vimを安心して使うための.vimrc設定

Vim特有のクセを若干解消してくれる。当然のことと期待する機能をONにする。ミスしやすい部分をハイライトする。

参考

何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜 - Qiita

とても参考になった。ほぼ丸パクリ。感謝。マジ救世主。(set visualbellだけは要らない)

~/.vimrc

set directory=/tmp
set clipboard=unnamedplus
syntax on
set tabstop=8
set shiftwidth=4
set softtabstop=4
" Tab文字を半角スペースにする
set expandtab
" スマートインデント
set smartindent

"https://qiita.com/mfujimori/items/9fd41bcd8d1ce9170301
"文字コードをUFT-8に設定
set fenc=utf-8
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" 入力中のコマンドをステータスに表示する
set showcmd
" ビープ音を可視化(ちらつき&プチフリーズ)
"set visualbell
" 括弧入力時の対応する括弧を表示
set showmatch

" 表示
" 行番号を表示
set number
" 不可視文字を可視化(タブが「▸-」と表示される)
set list listchars=tab:\▸\-

" 検索
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>

augroup fileTypeIndent
    autocmd!
    autocmd BufNewFile,BufRead *.md setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab smartindent

    autocmd BufNewFile,BufRead *.sh setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab smartindent autoindent
    autocmd BufNewFile,BufRead *.py setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab smartindent autoindent
    autocmd BufNewFile,BufRead *.rb setlocal tabstop=2 softtabstop=2 shiftwidth=2 expandtab smartindent autoindent
    autocmd BufNewFile,BufRead *.cs setlocal tabstop=4 softtabstop=4 shiftwidth=4 expandtab smartindent autoindent

    autocmd BufNewFile,BufRead *.tsv setlocal tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab nosmartindent noautoindent
augroup END

そんなもん設定しなくてもやってくれよ……と思うものが多い。

罠回避ポイント

  • 検索語をハイライト
  • TABを可視化
  • 対応する括弧をハイライト

これがないとミスする。

他ポイント

  • .swpファイルはRAMディスク/tmp配下に作成する
  • yankでクリップボードにコピーできるようにする
  • TABは基本的にスペースに置き換える(.tsvファイルだけは例外)

augroupで拡張子別に設定を書いている。グローバル値と重複している箇所もあるがそのままにする。もしグローバル値が変わっても変わらず固定できるようにしておきたいので。

pug, stylus

Node.jsでWeb開発するとき、pug, stylのような拡張子のコードを書く。先述の設定ならインデントエラーにならずに済んだ。

将来、使うプログラミング言語が増え、拡張子がふえると、個別に設定するのが面倒になる。グローバル値にインデント設定をしておいたほうが楽。

いらない子

" ビープ音を可視化
set visualbell

これが非常にウザかったのでコメントアウトした。

画面が一瞬真っ白にフラッシュし、ちらつくように見える。カーソルを行末や行頭に移動してなおカーソルキーを押下しつづけるだけで発生する始末。

  • 画面フラッシュが非常に目障り
  • 押下しつづけた時間だけ応答が返ってこなくなる

開発環境

2018-04-24時点。