Vim でバッファにあるファイルの中身を一括置換
2009-10-30-1: [Vim]
:bufdo :%s/foo/bar/g | :w
2007-11-11-1: [Vim]
VimTray という Vim をタスクトレイから起動する Windows アプリケーションを作ってみました。
実は、8 月くらいにすでに作り終わっていたのですが、バグが残っていたのでアナウンスしていませんでした。
今日突然直したくなったので直して、アナウンスすることにします。
VimTray は、タスクトレイに駐屯して Vim を起動するという単純なことしかできません。
アイコンをダブルクリックすると Vim が開きます。右クリックすると上記のようなメニューが表示されます。
ちょっと変わった機能として、mru.vim という、いわゆる最近使ったファイルを管理するプラグインを使うと、上記のようにメニューに最近使ったファイルがリストされます。
あと、Vim 7.0 以上を使っている場合は、ファイルをタブで開くようにすることもできます。
VimTray は Google Code の Project Hosting で配布しています。
ライセンスは、修正 BSD ライセンスです。
- vimtray - Google Code
http://code.google.com/p/vimtray/
バイナリのダウンロードやソースのダウンロードも上記 Google Code Project Hosting からお願いします。
Windows 環境で Vim を利用している方は、是非お試しください。
なお、Project Hosting は Subversion が使えるので svn でソースをチェックアウトすることができます。
最新版を取得するには、http://vimtray.googlecode.com/svn/trunk/ をチェックアウトしてください。
$ svn checkout http://vimtray.googlecode.com/svn/trunk/ vimtray
開発言語は、あまり慣れていない Delphi 7 で、Windows XP (SP2) 上でコンパイルしています。
以前ターミナルを 256 色にしたのですが,せっかくなので Vim も 256 色で使いたいと思って以下のようなスクリプトを書きました.
#!/usr/bin/env perl
use strict;
use warnings;
my $fg = "\x1b[38;5;";
my $bg = "\x1b[48;5;";
my $rs = "\x1b[0m";
my $color = 0;
for (my $row = 0; $row < 32; ++$row) {
for (my $col = 0; $col < 8; ++$col) {
print get_color($color);
$color++;
}
print "\n";
}
sub get_color {
my ($color) = @_;
my $number = sprintf '%3d', $color;
return qq/${bg}${color}m ${number} ${rs} ${fg}${color}m${number}${rs} /;
}
さて,こいつは何をするかというと,使っているターミナル上で何番の番号が何の色かを表示するものです.
自分の環境では以下のようになります (クリックして大きくなります).
この番号はそのまま Vim の色指定の番号になります.
つまり ctermfg とか ctermbg とかに,表示された色を見ながら番号を指定することができます.
例えば,上記スクリプトで表示された色番号 21 を使いたい場合は,以下のように設定する感じですね.
hi diffAdded ctermfg=21
2007-03-14-3: [Vim]
PuTTY では Vim の操作にマウスが使えるということを以下のページで知ったので,早速試してみました.
- おさかなラボ - vimのマウス機能が便利すぎる件
http://kaede.to/~canada/doc/vimiythyyuceoioei
- おさかなラボ - 便利過ぎるvim + マウスをscreenで使う
http://kaede.to/~canada/doc/vimmouse-with-screen
設定は以下のようにすれば OK です.
set mouse=a
set ttymouse=xterm2
動きが面白かったので,Wink でキャプチャしてみました.
- PuTTY + screen + Vim + マウスが便利すぎるキャプチャ
http://pocari.org/demo/vim-mouse/vim-mouse.html
2006-04-28-1: [Vim]
vim70/src/auto/config.mk
にある.
LDFLAGS が記述されているファイルは src/auto/config.mk で,
config.log もここにある.
2006-04-26-10: [Vim]
これは環境依存のようなきもするけど,Vim 7 on Solaris 10 (JDS) の環境ではメニューが文字化けする.
どうも,変なメニューファイルを読みにいっているみたいなんだけど原因が不明.
そこで強引に .vimrc で直してみた.
"" メニューを強制的に EUC-JP にする
source $VIMRUNTIME/delmenu.vim
set langmenu=ja_JP.euc-jp.vim
source $VIMRUNTIME/menu.vim
これを .vimrc に記述してあげることで,メニューがきちんと ja_JP.euc-jp.vim を見に行ってくれて文字化けが解消された.
- 文字化け
- 修正後
2006-04-26-9: [Vim]
Vim 7 になって文字の補完も賢くなったようだ.
Vim では Ctrl-P や Ctrl-N で文字を補完してくれるが,これが Vim 7 になって見やすくなった.
例えば,以下の図.
適当に Java とか打ってみる.ここでおもむろに Ctrl-P を押すとピンク色のメニューがでてきてここに文字列の候補がでてくる.
後は,十字キーなんかで選択すれば OK.
Vim 7 はかなり便利.
2006-04-26-8: [Vim]
Vim 7 のファイナル・ベータがリリースされたということで,いち早くインストールしてみた.
いろいろ新機能が増えてみるみたいだけど,タブ・インタフェースが採用されたことが一番いいかも.
: tabe[dit] filename
で filename がタブで開く.タブを選択するには
: tabn[ext]
で次のタブを選択することができて,
: tabp[revious]
で前のタブを選択することができる.
タブを閉じるのは
: tabc[lose]
で OK.
gvim の場合は,もちろんマウスで選択することもできるし,コンソールでももちろん上記コマンドで移動できるのがいい.
2006-02-03-3: [Vim]
http://d.hatena.ne.jp/secondlife/20060203/1138978661
いろいろ便利そうな Vim のプラグインの紹介.
ソースを気が利いた風に整形してくれる Align.vim や
vim の正規表現を ruby や perl の正規表現な入力でできる eregex.vim なんかは早速導入.
選択範囲をコメントアウトする commentout.vim は map で実現できているので導入を見送り.
例えば,以下のようにして autocmd でファイルタイプ別に記述してあげればいい.
,c でコメントアウト ,u でコメント解除
" Perl
autocmd FileType perl
\ map ,c :s/^/# /<CR>:noh<CR>
\ | map ,u :s/^# //<CR>:noh<CR>
" PHP
autocmd FileType php
\ map ,c :s/^/\/\/ /<CR>:noh<CR>
\ | map ,u :s/^\/\/ //<CR>:noh<CR>