如何使用特定字符串在文件名上添加某些搜索和替换模式

时间:2013-02-18 03:49:27

标签: function vim

我编写了一个函数,它对我正在编辑的文件进行了一些搜索和替换。但是对于某些文件(文件名中有一些特定的关键字),我需要添加一些特定的搜索和替换,这些只限于这些文件。

我需要知道如何修复以下代码:

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()时,将执行所有这些模式。因此,我不需要担心某些文件类型的具体说明。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果没有匹配-1match()返回。此外,您可能不需要调用readfile()来检查文件名。因此,改变

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

...到...

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

...您的blah-个文件(以及只有blah-个文件)将执行额外的替换。