mof-brown

ずっとモフモフしてたい

Vim を使いはじめた

これまでメインのエディタは Sublime Text 3 だったのだけど、新しい MacBook Pro の設定をしているうちに Vim への乗り換えを決意した。

なぜいまさら?という感じもあるけど、自分の中の動機はこの辺。

  • .vimrc を共有すれば、どこでも同じスタイルで開発できる
  • 既に dotfiles の管理・運用ができているので、同じやり方で共有できるのが楽で良い
  • 色々カスタマイズできて楽しそう
  • カスタマイズ自体が大変そうな印象があったけど、NeoBundle の存在を知って敷居が下がった
  • GolangVim で書きたい

Vim をインストール

Mac の場合は既に Vim が入っているが、こいつはクリップボードが使えないようだった。
使えるかどうかは vim --version を叩いて +clipboard と表示されるかどうかで確認できる。

$ vim --version | grep clipboard
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
 -xterm_clipboard -xterm_save

仕方ないので Homebrew でインストールした vim にパスを通すようにした。
インストール後に再度確認すると、無事 +clipboard が表示された。

$ vim --version | grep clipboard
+clipboard       +iconv           +path_extra      -toolbar
+eval            +mouse_dec       +startuptime     -xterm_clipboard

.vimrc の設定をいじる

色々なサイトを見ながら .vimrc を設定してみた。
間違ってるところがあればぜひ指摘してください><

"基本設定
"--------
set confirm                    " 保存されていないファイルがあるときは終了前に保存確認
set hidden                     " 保存されていないファイルがあるときでも別のファイルを開くことが出来る
set autoread                   " 外部でファイルに変更がされた場合は読みなおす
set nobackup                   " ファイル保存時にバックアップファイルを作らない
set noswapfile                 " ファイル編集中にスワップファイルを作らない
set mouse=a                    " マウスの入力を受け付ける
set wildmenu wildmode=list:longest,full " コマンドラインモードでTABキーによるファイル名補完を有効にする
set history=10000              " コマンドラインの履歴を10000件保存する
set clipboard=unnamed,autoselect
set nrformats-=octal           " 0で始まる数値を、8進数として扱わないようにする

"インデント設定
"--------------
set tabstop=2                  " 画面上でタブ文字が占める幅
set autoindent                 " 改行時のオートインデントを有効にする
set smartindent                " 改行時に入力された行の末尾に合わせて次の行のインデントを増減する
set expandtab                  " TABキーを押した際にタブ文字の代わりにスペースをいれる
set shiftwidth=2               " オートインデント時にインデントする文字数
set softtabstop=2              " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅

"表示関連
"--------
set number                     " 行番号を表示する
set ruler                      " 画面右下のカーソル位置表示
set title                      " 編集中のファイル名を表示
set showmatch                  " 括弧入力時の対応する括弧を表示
set ambiwidth=double           " 文脈によって解釈が異なる全角文字の幅を、2に固定する
syntax on                      " コードの色分け
set list                       " 空白文字の可視化
set listchars=tab:»-,trail:-,eol:,extends:»,precedes:«,nbsp:%
set cursorcolumn               " 列を強調表示
set laststatus=2               " 画面最下部のステータス行を常に表示
set cmdheight=2                " 画面最下部(ステータス行より下)のメッセージ表示欄の行数
set helpheight=999             " ヘルプを画面いっぱいに開く

"検索関連
"--------
set hlsearch                   " 検索文字列をハイライトする
set incsearch                  " インクリメンタルサーチを行う
set ignorecase                 " 大文字と小文字を区別しない
set smartcase                  " 大文字と小文字が混在した言葉で検索を行った場合に限り、大文字と小文字を区別する
set wrapscan                   " 最後尾まで検索を終えたら次の検索で先頭に移る
set gdefault                   " 置換の時 g オプションをデフォルトで有効にする

"移動関連
"--------
set virtualedit=block          " 文字のないところにカーソル移動できるようにする
set backspace=indent,eol,start " Backspaceキーの影響範囲に制限を設けない
set whichwrap=b,s,h,l,<,>,[,]  " 行頭行末の左右移動で行をまたぐ
set scrolloff=8                " 上下8行の視界を確保
set sidescrolloff=16           " 左右スクロール時の視界を確保
set sidescroll=1               " 左右スクロールは一文字づつ行う

"エンコーディング関連
"--------------------
set encoding=utf-8             " Vimの内部文字コードがUTF-8に設定
set fileencodings=utf-8,cp932  " ファイル読み込み時の文字コード
set fileencoding=utf-8         " ファイル書き込み時の文字コード

.vimrc を管理

自分の場合は、BitBucket に dotfiles を作って管理しているので、そこに .vimrc をぶち込めば終わり。


この記事も Vim で書いてみた。しばらく Sublime Text を封印して使ってみようと思う。