ChangeLog 最新ページ

2007-06-02 Sat

vim で検索候補を一覧表示 [vim]

g/ で検索すると vimgrep + quickfix で検索して出てきた候補を quickfix に表示する。

nmap <unique> g/ :exec ':vimgrep /' . getreg('/') . '/j %\|cwin'<CR>


ref. subtech - Pink Blossom Diary StrikerS - 今日の .vimrc さん

2007-06-01 Fri

最近使ってる vim の折りたたみ [vim]

自分で fold を作るのがめんどくさいときは、

:set foldmethod=syntax

で済ますけど、作られた折りたたみが何となく気に入らない事があるので、
ビジュアルオペレータを使って手動で折りたたみを作る。
やり方は、{}でくくられた中で zfaB のコマンドを入力するだけ。
zfa{ でもいい。
もちろん、1行だけだと折りたたみは作られない。
この方法だと、ruby みたいに関数が {} で括られていないと通用しないんだけど。

2007-05-17 Thu

画面を残しての操作 [vim]

vimの画面を残したまま終了

nmap <silent> gZZ :set t_te= t_ti= <cr>:quit<cr>:set t_te& t_ti&<cr>


vimの画面を残したままシェルを起動

nmap <silent> gsh :set t_te= t_ti= <cr>:sh<cr>:set t_te& t_ti&<cr>


ref. Big Sky :: 以外と知られていないvimのtips

2007-05-17 Thu

vim を less の用に使う [vim]

$VIMRUNTIME/macros/less.sh をパスが通ったところにリンクを張る。

$ ln -s /usr/share/vim/vim71/macro/less.sh ~/bin/vless


ref. less.vim (Mac Terminal Only) [ 名無しのVIM使い ]

2007-05-06 Sun

snippetsEmu をインストール [vim]

snippetsEmu - An attempt to emulate TextMate's snippet expansion.
から落としてきて、

$ vim snippetsEmu.vba
:source %

とするだけ。

使えるコマンドは、after/ftplugin 内にある vim script を直接見るしかないのかな?
そうだとしたら、少し不便。

via.
呆備録 - snippetsEmu.vimを動かす.
RoRの15分ムービーで使われているTextMateのsnippetsもどきなvimプラグインsnippetsEmu

2007-05-06 Sun

vim script の自動更新 [vim]

GetLatestVimScripts.
ってのが標準で付いてきているようだ。
使うには、~/.vim/GetLatest/GetLatestVimScripts.dat ってファイルを作って。
なかみは、

ScriptID SourceID Filename
--------------------------

にしておくと良いみたい。
ただ、日本語ヘルプと衝突してるのか、*.jax のファイルでタグが重複してるってエラーがでる。
それ以外は大丈夫そうだけど。

ref. 83's : vimスクリプトの自動更新

2007-04-12 Thu

簡易 grep? [vim]

[I
カーソル下にあるキーワードを含む行を表示。
]I
上と同じ、検索が現在位置からになる。
I が i だと、コメント行は無視する。

たまに、同じように書いている行を探すときとか、* でカーソル下のキーワード検索を
使っていたけれど、こっちの方が一覧できて便利そう。
カーソル位置も移動しないし。

via. 便利な vim のブラケットコマンド

2007-03-08 Thu

vimヘルプのgrep [vim]

:helpgrep search_keyword

search_keyword@ja にすると、日本語ヘルプだけから検索。
検索後は、

:copen

で一覧表示して、みたい行でEnterで表示

via. vimエディタ ヘルプのgrep : サイト更新停滞ちうっ[名無しのVIM使い]

2007-03-08 Thu

タブをスペースに変換 [linux][command][vim]

expand - タブをスペースに変換する
書式 expand [-t TAB1[,TAB2...] [FILE...]

FILE 内のタブ文字をスペースに置き換えて標準出力へ。
デフォルトでは8文字のスペース。

$ expand -t 2,5 hoge

1つのタブは2文字のスペースに2つは5文字のスペース、
それ以降は2文字ずつスペースが増える。

vim では、

:set expandtab #:set noexpandtab でスペースがタブになる
:%retab!

2007-02-07 Wed

vim と gdb で IDA っぽいデバッグ [vim][debug]

The Clewn project を使ってみた。
単体で使うのと、vim にパッチを当てると方法とがあったが、
単体で使う方にした。
yum には入ってなかったので、落としてきて

$ vimdir=$HOME/.vim  ./configure  --prefix=$HOME
$ make
$ make install

で入れた。

gvim 側でソースを見つつ実行したり C-bでブレークポイントを設定したり、
マウスを変数上に持っていくと値がポップアップしたりして楽しい。
もう少しちゃんと使い方を見てみよう。

ref. メモ帳 - Clewn

2007-02-04 Sun

vim の :, と :; [vim]

vim のヘルプに

4,/この行/
4行目から、カーソルより後の、"この行" がマッチする行まで。
5;/あの行/
5行目から、5行目より後の、"あの行" がマッチする行まで。

と書いてあったけど、意味が分からなかった。
英語ヘルプ見て色々試すと、選択範囲が違うみたいだった。
上は、選択範囲が現在の行から、4行目以降でマッチした行まで。
下は、選択範囲が5行目から、5行目以降でマッチした行まで。

よく使うのは、 :.;/^$/-1!sort みたいなコマンドで、
.;/^$/ がカレント行から改行までの行を選択
-1 で選択範囲を1行減らして
!sort でシェルの sort に引数として選択範囲を渡して、返り値で置き換えしてる。

;/^$/-1fold なんかもちょっと使える

2007-01-27 Sat

Perl と PHP の vim 用関数辞書の作り方 [vim][perl][php]

辞書を保存するフォルダを作成。
$ mkdir ~/.vimrc/dict/

**PHP 辞書作成
php にある全関数を出力する機能を利用して、コマンドラインのワンライナーで作成。

php -r '$f=get_defined_functions();echo join("\n",$f["internal"];' \
| sort > ~/.vim/dict/php_functoins.dict


**Perl 辞書作成
perldic.pl を以下のように作成。

#!/usr/bin/perl

while(<DATA>){
       chomp; my $command = (split)[0];
          print $command."\n" if $command =~ /^\w\w+$/;
}
print join("\n", qw/for while until foreach if elsif else unless/) . "\n";

の末尾に
http://search.cpan.org/src/NWCLARK/perl-5.8.8/lib/Pod/Functions.pm の __DATA__ 以降をコピペ (__DATA__ 行も)。

perl prrldic.pl | sort > ~/.vim/dict/perl_function.dict


**vim の設定
.vimrc に

" ファイルタイプごとに辞書ファイルを指定
autocmd FileType perl :set dictionary+=~/.vim/dict/perl_functions.dict
autocmd FileType php :set dictionary+=~/.vim/dict/php_functions.dict
"辞書ファイルを使用する設定に変更
set complete+=k


ref. おさかなラボ / Blog Archive / vimにPerlとPHPの辞書を登録するぞ

2007-01-10 Wed

Vimで文字数カウント [vim]

置換の

s/./&/g

を利用すると、マッチした文字に対してその文字に置換する。
それ自体は意味がないけど、文字数が返ってくるので文字カウントを行える。

ref. メモ:Vimで文字数カウント - 0x0a :: ja :: svslab (2005-02-26)

2006-12-30 Sat

.gvimrc [vim]

.gvimrc

if has('kaoriya')
    "set iminsert=0 imsearch=0
    set iminsert=1 imsearch=0
endif

set guifont=Osaka-Mono:h14
set background=light
set nomacatsui
set termencoding=japan

if has('migemo')
    set migemo
    set migemodict=/usr/local/share/migemo/utf-8/migemo-dict
endif

set nomacatsui
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,euc-jp,iso-2022-jp,cp932
set ffs=unix
set guioptions=a
set ai
syntax on
set nu
set binary noeol

2006-12-30 Sat

vim から screen 経由で gdb を操作する [c++][vim]

screenを使ってgdbを操作する

vimでソースを見ながらgdbでデバッグしたい。

そこでscreenを使って画面を2分割し、vimからscreenコマンドを発行して

gdbを操作する。力技。

" カレントファイルのカレント行にブレークポイント設定
command! Breakpoint call system("screen -X eval focus 'stuff \"b " . expand("%") . ":" . line(".") . "\"\\015' focus")
" ステップ実行
command! Step call system("screen -X eval focus 'stuff s\\015' focus")
" 実行再開
command! Continue call system("screen -X eval focus 'stuff c\\015' focus")
" ステップ実行(関数内に入らない)。なんと:Nextはすでに予約されている!
command! NextStep call system("screen -X eval focus 'stuff c\\015' focus")
" カレントファイルのカレント行まで実行
command! Advance call system("screen -X eval focus 'stuff \"advance " . expand("%") . ":" . line(".") . "\"\\015' focus")
" 変数の値を表示。なんと:Printはすでに予約されている!
command! -nargs=+ PrintVariable call system("screen -X eval focus 'stuff \"p " . "<args>" . "\"\\015' focus")

ref. メモ帳

2006-12-12 Tue

changelog.vim のプラグインを使ってみる [vim]

メモ帳として Changelog が使えないか試してみる。
これからもずっと使うかは分からないけど、試してみなければ進めないから。

ついでに Wiki から chalow に移ろうかな?

最新 / RSS