vimrcをリローダブルにしてみた

Vimの極め方を読んで、ごにょごにょといろいろやったことの中から、リローダブルなvimrcに関する部分をメモ。

vimrcにキーマップを書き込む時、以下のように書くとコマンドが登録できます。
以下の例はノーマルモードの時に<Space>s.と入力するとコマンドを実行する例。<Space>はスペースキーのこと。

nnoremap <Space>s.
\        :<C-u>任意のコマンド<CR>

こっちの書き方でもOK。

nnoremap <Space>s. <Esc>:<C-u>任意のコマンド<CR>

というわけで、vimrcをリローダブルにしてみました。

私の環境ではWindowsにKaoriyaのGVimという環境なので、以下のように書きました。<Space>s.でvimrc、<Space>gs.でgvimrcを<Space>s.でvimrcとgvimrcをリロードします。

nnoremap <Space>s.
\        :<C-u>source $VIM\vimrc<CR> :<C-u>source $VIM\gvimrc<CR>

こっちの書き方でも(ry

nnoremap <Space>s. :<C-u>source $VIM\vimrc<CR> :<C-u>source $VIM\gvimrc<CR>

それからこの設定をしただけだと、このコマンドを実行しようとするとなぜか「コマンドが既にあります: 再定義するには ! を追加してください」というエラーが出ましたので、エラーメッセージにある vimディレクトリ\runtime\vimrc_example.vim の85行目、commandcommand!に修正です。

「コマンドが既にあります: 再定義するには ! を追加してください」というエラー

これでvimrc、gvimrcがリローダブルになりました。やった!
そういえばVimのネタをブログに書くのは初めてかも。

追記 – 2009-08-09

  • $VIMとすればvimディレクトリに、$HOMEとすればホームディレクトリが表現できることに気づいたので、コードを修正。
  • vimrcとgvimrcを両方いっぺんにリロードした方がいいじゃん!ということに気づき、こちらも修正。

電話番号入力フォームのmaxlength

次のような電話番号入力フォームは正しくできていると言えるでしょうか?

<input type="text" size="20" maxlength="4" value="" name="tel1" id="tel1" /> -
<input type="text" size="20" maxlength="4" value="" name="tel2" id="tel2" /> -
<input type="text" size="20" maxlength="4" value="" name="tel3" id="tel3" />

答えはNo。その理由は maxlength="5" にすべきだから、と職場のTDさんが教えてくれました。5桁の市外局番が存在するなんて、知らなかったです・・・。