Vim6スクリプトお勉強スレat UNIX
Vim6スクリプトお勉強スレ - 暇つぶし2ch43:1
01/12/24 01:25
全バッファに対して一括置換が行える便利スクリプトをマニュアルの中に発見しました。
:help map.txt|/Allargs でジャンプ

抜粋。
> :function Allargs(command)
> : let i = 0
> : while i < argc()
> : if filereadable(argv(i))
> : execute "e " . argv(i)
> : execute a:command
> : endif
> : let i = i + 1
> : endwhile
> :endfunction
> :command -nargs=+ -complete=command Allargs call Allargs(<q-args>)

function ~ endfunction で関数定義。
argc() は バッファ数。
argv(i) は i 番のバッファ名の取得。(:ls で確認できる)
filereadable() は指定バッファが読み出せるか?
execute は ex コマンドの実行。

使う時。foo を bar に置換しまくる。
:Allargs %s/foo/bar/ge|update
eオプションをつけないと foo が無いというメッセージがのんびり表示されて、いつま
でたっても置換が終わらないので気をつけよう(それに気づかずに密かにハマった)
コマンドは | で連続で実行できて、update は変更のあったバッファだけを保存。と。

カレントの *.cpp を置換する場合は予め、
:ar *.cpp
ってやっとくと全部読み込まれる。
確認するには
:ar
と。

すげー便利というか、他のエディタだったら最初から
装備しているような機能だから当然、 _vimrc に書いといて、
_vimrc に書くときは何回定義しても起こられないように
function と command の後に ! を付けとくほうがいいかも。

>>36
縦分割って6.0から追加された機能あるの?? :sp とかじゃなくて?

>>42
御苦労さんです。LOGICALだと同じく or and って感覚ですねえ。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch