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-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
- 上と同じ、検索が現在位置からになる。
たまに、同じように書いている行を探すときとか、* でカーソル下のキーワード検索を
使っていたけれど、こっちの方が一覧できて便利そう。
カーソル位置も移動しないし。
via. 便利な vim のブラケットコマンド
2007-03-08 Thu
■ vimヘルプのgrep [vim]
:helpgrep search_keyword
検索後は、
:copen
via. vimエディタ ヘルプのgrep : サイト更新停滞ちうっ[名無しのVIM使い]
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. メモ帳
