vimエディタの設定とよく使うオプション

「エディタといえば、vim」という変な固定概念を抱いています。近頃は、Linux環境だけでなく、Windows上でもgvimを使用したりしています。使用方法に慣れれば、これほど使い易いエディタはないと思うのですが、「いまさらVIエディタなんて」とも思います。そんな中、vimエディタで個人的によく使うオプションと設定ファイル(.vimrc)についてまとめてみました。

オプション

以下は、サーバ管理などで、sshでログイン後に直接設定ファイルを編集したりするときによく使用するオプションです。

  • :set nonumber:行番号を表示しない
  • :set nolist:タブや改行コードの強調表示を表示しない
  • :set nowrap:表示画面幅を超える行を折り返して表示しない
  • :set nohlsearch:検索結果をハイライトしない

設定ファイルの内容

下記は、設定ファイルの内容です。設定ファイルは、各ユーザのhomeに、「.vimrc」という隠しファイルで作成します。下記の内容で、文字コードの自動判定などが可能になります。

gui
syntax on

" 色のテーマ選択
"colorscheme murphy
"colorscheme desert
"colorscheme blue
"colorscheme torte
colorscheme delek

" 文字コードの自動認識
if &encoding !=# 'utf-8'
	set encoding=japan
	set fileencoding=japan
endif
if has('iconv')
	let s:enc_euc = 'euc-jp'
	let s:enc_jis = 'iso-2022-jp'
	" iconvがeucJP-msに対応しているかをチェック
	if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
		let s:enc_euc = 'eucjp-ms'
		let s:enc_jis = 'iso-2022-jp-3'
	" iconvがJISX0213に対応しているかをチェック
	elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
		let s:enc_euc = 'euc-jisx0213'
		let s:enc_jis = 'iso-2022-jp-3'
	endif
	" fileencodingsを構築
	if &encoding ==# 'utf-8'
		let s:fileencodings_default = &fileencodings
		let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
		let &fileencodings = &fileencodings .','. s:fileencodings_default
		unlet s:fileencodings_default
	else
		let &fileencodings = &fileencodings .','. s:enc_jis
		set fileencodings+=utf-8,ucs-2le,ucs-2
		if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
			set fileencodings+=cp932
			set fileencodings-=euc-jp
			set fileencodings-=euc-jisx0213
			set fileencodings-=eucjp-ms
			let &encoding = s:enc_euc
			let &fileencoding = s:enc_euc
		else
			let &fileencodings = &fileencodings .','. s:enc_euc
		endif
	endif
	"定数を処分
	unlet s:enc_euc
	unlet s:enc_jis
endif
"日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
	function! AU_ReCheck_FENC()
		if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
			let &fileencoding=&encoding
		endif
	endfunction
	autocmd BufReadPost * call AU_ReCheck_FENC()
endif
"改行コードの自動認識
set fileformats=unix,dos,mac
"□とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
	set ambiwidth=double
endif
" 通常のオプション設定
set incsearch
set nobk
set number
set smartcase
set wildmode=list:full
set autoindent
set backspace=indent,eol,start
"set grepprg=search\ $*
set hlsearch
set iminsert=0
set imsearch=0
set listchars=tab:\^\ ,eol:.,trail:-
"set listchars=tab:\|>,eol:.,trail:-
set wrap
set ruler
"set expandtab							" タブをスペースに置き換える
set tabstop=4							" (ts)ファイル中のTab文字(キャラクターコード9)を、画面上の見た目で何文字分に展開するかを指定する
set shiftwidth=4						" (sw)自動的に挿入されるタブの文字数
set softtabstop=0						" (sts)キーボードから入力される時のタブの文字数
"set shortmess+=I
set showcmd
set tabstop=4
set visualbell
set scrolloff=2
set list
set hidden
set hlsearch
set nowrapscan

" 全角文字を可視化
syntax match ZenkakuSpace / /
highlight ZenkakuSpace term=underline ctermbg=Blue guibg=gray
highlight SpecialKey ctermbg=DarkGray guifg=DarkGray

" 日本語入力ON時のカーソルの色を設定
if has('multi_byte_ime') || has('xim')
	highlight CursorIM guibg=#ff0000
endif

" Java用設定
let java_highlight_all = 1
let java_highlight_debug = 1
let java_highlight_functions = 1
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする