我剛開始使用vim腳本,並嘗試使opencart語言文件的翻譯更容易。我想有一個函數查找給定的搜索模式並選擇它。如果文件中沒有匹配,它將打開下一個文件進行編輯。我至今:在vim腳本中搜索模式匹配的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()
如果搜索模式不光標和當前文件的末尾之間發現了什麼?在我的片段中,是否有一些你認爲是不好的風格?
感謝很多的模式,我測試了它,它是我想要什麼差不多。但是有兩個問題:1.它與光標無關,即如果我執行':bnext',然後按下'F8',則會跳回到舊文件,並且它不會查看子目錄。你有什麼建議嗎? – phinz
查看子目錄:':vim // g **/*。php' – yolenoyer
關於遊標位置:由於':cn'只是跳轉到quickfix列表中的下一個元素,因此無法輕易完成。請參閱':h quickfix' – yolenoyer