2

編集中のファイルを検索して置換する関数を作成しました。ただし、特定のファイル(ファイル名に特定のキーワードが含まれている)については、これらのファイルに制限されている特定の検索と置換を追加する必要があります。

次のコードを修正する方法を知る必要があります。

function! Test()
    " basic search and replace for all the files
    %s/I'll /I will /ge
    " if the filename starts with "blah-" the following additional search and replace needed otherwise not
    if match(readfile(expand('%:t')),"^blah-")
      %s/could'nt /could not /gec
    endif
endfunc

そして、関数を呼び出すと、:call Test()これらすべてのパターンが実行されます。したがって、特定のファイルタイプに関する特定の指示について心配する必要はありません。

誰かが私がこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

1

一致するものがない場合-1はから返されmatch()ます。readfile()また、ファイル名を確認するために呼び出す必要はおそらくありません。そのため、変更します

if match(readfile(expand('%:t')),"^blah-")

...に...

if match(expand('%:t'), '^blah-') != -1

...そしてあなたのblah-ファイル(そしてあなたのblah-ファイルだけ)は追加の置換が実行されます。

于 2013-02-18T04:15:28.700 に答える