2016年12月10日土曜日

gvimの文字コードをUTF-8にする。


文字コードはUTF-8にしておくのが無難かなぁ。
と気軽な乗りで、 gvimの文字コードを変更します。

以下、設定メモ

1.vimの設定ファイルに以下を追加する
" UTF-8に設定
set encoding=utf-8
" 文字コード自動判別
set fileencodings=utf-8,ucs-bom,iso-2022-jp,euc-jp,cp932,sjis,utf-16le,utf-16,default
" 改行コード自動判別
set fileformats=unix,dos,mac
" 文字コードUTF-8にしたことによるメニューの文字化け対策
source $VIMRUNTIME/delmenu.vim
set langmenu=ja_jp.utf-8
source $VIMRUNTIME/menu.vim

新規作成時、文字コード:utf-8、改行コード:unix。
改行コードはfileformatsのunix,dos,macの順番を入れ替えると変更可能。
ファイルを開いた時はファイルの文字コードを優先します。

2.文字コード変換用のメニューも追加しておくと便利っぽい。(英語は適当です。)
" 文字コード変換
menu CODE.ChangeCode.utf-8          :set fileencoding=utf-8 <cr>
menu CODE.ChangeCode.cp932          :set fileencoding=cp932<cr>
menu CODE.ChangeCode.euc-jp         :set fileencoding=euc-jp<cr>
" 改行コード変換
menu CODE.ChangeNewLineCode.dos     :set fileformat=dos<cr>
menu CODE.ChangeNewLineCode.unix    :set fileformat=unix<cr>
menu CODE.ChangeNewLineCode.mac     :set fileformat=mac<cr>
" 文字コードを指定して再読み込み
menu CODE.Reload.utf-8              :e ++enc=utf-8<cr>
menu CODE.Reload.cp932              :e ++enc=cp932<cr>
menu CODE.Reload.euc-jp             :e ++enc=euc-jp<cr>
menu CODE.Reload.utr16_le           :e ++enc=utf-16le<cr>

3.現在の文字コードをステータスラインに表示するように設定。
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P

設定したステータスラインについての詳細は以下のコマンドを実行して参照してみてください。
:help statusline


以上です。

gvimをタブエディタにする。

windowsで使っているgvimをタブエディタにしてみました。
というわけで、やったことを紹介します。

1.gvimの設定ファイルに以下を追加

" 常にタブを表示
set showtabline=2

設定詳細
    0: 表示しない
    1: 2個以上のタブページがあるときのみ表示 (既定)
    2: 常に表示

2.レジストリエディタで以下のパスにある起動コマンドを修正(環境によって違う可能性あり)
/HKEY_CLASSES_ROOT/Applications/gvim.exe/shell/open/command 

修正内容
    修正前: "D:\Program Files (x86)\vim74-kaoriya-win64\gvim.exe" "%1"
    修正後: "D:\Program Files (x86)\vim74-kaoriya-win64\gvim.exe" -p --remote-tab-silent "%1"

以上です。
あっさり出来ちゃいます。


せっかくなので
タブ操作についてもちょっとご紹介。

:tabnew             新しいタブ作成。
gt                     次のタブに移動。次のタブがない場合は最初のタブに移動。
gT                    前のタブに移動。前のタブがない場合は最後のタブに移動。
:tabfir[st]           最初のタブに移動します。
:tabl[ast]           最後のタブに移動します。
:tabm[ove] [N]   カレントタブをN番目のタブの後ろに移動。(先頭にするなら0を指定)

新しいタブ作成などmapでキーを割り当てると便利です。
例えば、以下はブラウザと同じキー(Ctrl+t)を割り当てています。
" 新しいタブ作成
map <C-t> :<C-u>tabnew<CR>

タブ操作についてもっと知りたい場合は、以下のコマンドを実行してみてください。
:help tabpage


以上です。


※設定について: レジストリを編集する為、行う場合は注意して行ってください。