Hatena::ブログ(Diary)

架空線 はてな避難所

2009-11-20

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補完させたりする時に、追加するかも。

Ubuntu9.10 Server インストール

さて、いよいよX27DにUbuntu9.10 Serverをインストールをするの巻。

光学ドライブがないので、USBメモリインストールディスクを作成して、そこから起動することにした。

USBメモリインストールディスクからインストール

1. BittorrentでUbuntu9.10 ServerのISOをダウンロード

2. Ubuntuの「システム→USBスタートアップ・ディスクの作成」で8GBのUSBメモリと1のISOイメージから、USBインストールディスクを作成。

https://wiki.ubuntulinux.jp/UbuntuTips/UsbInstall/CreateUSBStartupDisk

3. X27DのUSBスロットに装着して起動。BIOS起動画面でESCキーを押しっぱにして、USBメモリを起動ドライブにセレクト。

4. インストール開始!


ところが……ファイルコピー中にベースシステムのファイルがいくつか破損していると判定され、完了できず。なぜ?

何度1の手順からやり直しても同じなので、あきらめた。

ということで仕方なく、起動用とISO格納用の二つのUSBメモリを用意して再チャレンジ。

起動用とISO格納用USBメモリの二段構えでインストール

以下の手順は、主にここら辺を参考に。

Preparing Files for USB Memory Stick Booting

https://help.ubuntu.com/8.04/installation-guide/amd64/boot-usb-files.html

1. 起動イメージをゲット。

$ wget http://archive.ubuntu.com/ubuntu/dists/karmic/main/installer-amd64/current//images/hd-media/boot.img.gz

2. 256MBのUSBメモリに起動イメージ書き込み

$ sudo zcat boot.img.gz > /dev/sdb1

3. 8GBのメモリにUbuntu9.10 Server版ISOコピー

4. (2)から起動して、(3)のISOをインストールCDとして自動認識させる。


という手順でインストールした。

インターネット公開サーバとして使うつもりなので、途中のタスクセルでは

OpenSSH Server

DNS Server

LAMP Server

Mail Server

を選択して手間を省いた。

ただ、各タスクが具体的にどんなパッケージを突っ込むのか知らないので、

それぞれの設定時に確認しておかないとかな。

アップデートを忘れずに

そして、インストール後のたしなみとして一通りアップデート

$ sudo apt-get update
$ sudo apt-get upgrade

ということで、次はなにはともあれなOpenSSHの設定。

Connection: close