vimスクリプトを使い始めたばかりで、opencart言語ファイルの翻訳を簡単にしようとしました。私は与えられた検索パターンを探してそれを選択する関数を持っていたいと思います。ファイルに一致するものがなければ、次のファイルを編集用に開きます。私はこれまで持っている:vimスクリプトで検索パターンが一致するかどうかを確認する
function! Nextmatch()
normal /\(= *'\)\@<=.\{-\}\('\)\@=/
normal v//e
endfunction
function! Nextfile()
if !exists("s:filecounter")
execute "!find -iname *.php > files.txt"
normal <CR>
let s:filecounter=0
endif
let s:lines= system("wc -l < files.txt")
if s:filecounter<s:lines
w
let s:filecounter += 1
let s:sedcommand="sed '".s:filecounter."!d' files.txt"
let s:selectedfile=system(s:sedcommand)
execute 'edit' s:selectedfile
else
wq
endif
endfunction
がどのように検索パターンは、カーソルおよび現在のファイルの端部との間に見つからない場合Nextfile()
がNextmatch()
に呼び出されることを達成することができますか?そして、私のスニペットであなたが悪いと思うものがありますか?
おかげで多くを与え、パターンを簡素化。しかし、次の2つの問題があります。1.カーソルに相対的ではない、すなわち ':bnext'を実行してから' F8 'を押すと、古いファイルにジャンプし、2.サブディレクトリを検索しません。何か提案はありますか? – phinz
サブディレクトリを調べてください: ':vim // g **/*。php' – yolenoyer
カーソル位置について: ':cn'はクイックフィックスリストの次の要素にジャンプするだけなので、簡単にはできません。 ':h quickfix'を参照してください。 – yolenoyer