2007年7月31日 星期二

Vim Tips - Using input function to replace string

每次用 :%s/foo/bar/g 作字串取代太麻煩,如果用這樣:

:nmap :%s//g<Left><Left>

若還是覺得很彆扭?那可以試試看用 vim 提供的 input function

先寫一個 function
function! SUBS()
call inputsave()
let g:MyPattern = input("Pattern: ")
let g:MySubs = input("Substitution (" . g:MyPattern . ") : ")
exe '%s/' . g:MyPattern . '/' . g:MySubs . '/g'
call inputrestore()
endfunction
然後設定 Map 去呼叫他

nmap :call SUBS()<CR>

如果使用 GVIM 還可以把 input 換成 inputdialog ,這樣就會出現對話框。 :-)