Vim

CLIで様々な設定を編集するのに重宝するのが、スクリーンテキストエディタの老舗であるVim。ネットワーク越しでもサクサク動く軽快さが売りでありながら、IDEばりのプログラミング環境まで提供できるすぐれものだ。

ところがRedhat系とは違って、Ubuntu Server 9.10に標準でインストールされているVimのパッケージは、vim-tinyという機能限定の簡易版だ。本腰を入れてプログラミングをするわけではないので必ずしもフルセットが必要なわけではないのだが、本家Vimとは微妙に違う使い勝手に時々とまどう。

ということで、さくっとフル機能版のVimをインストールすることにする。

インストール

普通にapt-get install vimと入力すると、Huge版のvimがインストールされる。ただしその場合は+ruby付きでコンパイルされておらず、Rubyインターフェースが有効になっていないのが玉にキズだ。すなわちコマンドモードから:rubyを実行できなかったり、先々OMNI補完の夢が見られなかったりして、Rubiest見習いの身としては、やや寂しい。

ということで、欲を出してフル機能版のVimをインストールする。ただしデスクトップ環境は必要ないので、vim-fullではなくvim-noxを選択する。

seotch@akane:~$ sudo  apt-get install vim-nox
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
提案パッケージ:
  cscope vim-doc
以下のパッケージが新たにインストールされます:
  vim-nox
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 7 個。
1,007kB 中 0B のアーカイブを取得する必要があります。
この操作後に追加で 1,995kB のディスク容量が消費されます。
未選択パッケージ vim-nox を選択しています。
(データベースを読み込んでいます ... 現在 33713 個のファイルとディレクトリがインストールされています。)
(.../vim-nox_2%3a7.2.245-2ubuntu2_amd64.deb から) vim-nox を展開しています...
vim-nox (2:7.2.245-2ubuntu2) を設定しています ...
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/vim (vim) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/vimdiff (vimdiff) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/rvim (rvim) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/rview (rview) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/vi (vi) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/view (view) in auto mode.
update-alternatives: using /usr/bin/vim.nox to provide /usr/bin/ex (ex) in auto mode.

さくさく終了。ということでバージョン情報を確かめてみる。

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Sep 21 2009 11:24:25)
適用済パッチ: 1-245
Compiled by buildd@crested.buildd
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
 +arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent
 -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
 +cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
 +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
 +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
 +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
 +menu +mksession +modify_fname +mouse -mouseshape +mouse_dec +mouse_gpm
 -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
 +multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra +perl +postscript
 +printer +profile +python +quickfix +reltime +rightleft +ruby +scrollbind
 +signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary
 +tag_old_static -tag_any_white +tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
 +vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save
      システム vimrc: "$VIM/vimrc"
        ユーザ vimrc: "$HOME/.vimrc"
         ユーザ exrc: "$HOME/.exrc"
       省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -Wall -g -O2    -D_REENTRANT -D_GNU_SOURCE -DDEBIAN  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/perl/5.10/CORE  -I/usr/include/python2.6 -pthread -I/usr/include/tcl8.4  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -I/usr/lib/ruby/1.8/x86_64-linux
リンク: gcc   -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic  -Wl,-E  -Wl,--as-needed -o vim       -lncurses -lselinux  -lacl -lgpm -Wl,-E  -L/usr/local/lib  -L/usr/lib/perl/5.10/CORE -lperl -L/usr/lib/python2.6/config -lpython2.6 -L/usr/lib -lz -lutil -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -ltcl8.4 -lieee -lruby1.8 -lrt -lm

ちゃんと+ruby付きのHuge版、他の機能もX関係以外は軒並み(+)になっている。これにてインストールは終了。

.vimrcの設定

インストールの〆として、vimの設定ファイルである~/.vimrcをお好みに設定する。

"----------------------------------------------------
" 基本
"----------------------------------------------------
set nocompatible "Vi非互換モード
set autoindent "新しい行を開始したときに、新しい行のインデントを現在行と同じ量にする
set backspace=indent,eol,start "バックスペースキーで削除できるもの
set browsedir=buffer "ファイルブラウザの初期ディレクトリ。buffer:現在開いているファィル

"----------------------------------------------------
" 検索
"----------------------------------------------------
set wrapscan "最後まで検索したら先頭に戻る
set ignorecase "検索時に大文字小文字を区別しない

"----------------------------------------------------
" 表示関係
"----------------------------------------------------
set title "タイトル表示
set ruler "ルーラー表示
set hlsearch "検索結果のハイライト表示
set wildmenu "補完候補表示
set nowrap "折り返しなし
set number "行番号表示
syntax on

ひとまずこんなところで。また後ほどvim-rubyを突っ込んでOmni補完させたりする時に、追加するかも。