VIM使用搜索/替换将文本转换为URL

时间:2015-06-02 17:45:45

标签: vim

我有一个文件,其中包含长文件名,后跟连字符,后跟文件内容的说明。这些文件都是PDF。我正在将此文档转换为我们网站上的页面,以便它具有文件名,该文件名应该是文件的链接,后跟文件内容的描述。

我非常精通VIM的基础知识,但高级搜索/替换是我所缺乏的。我想做的是将每个文件名转换为指向该文件名的链接。例如:

WebAdapt_Prod_Int_10.1_Install.IIS7.2008R2.pdf - Step by step instructions for installing ArcSDE 10.1 for Oracle on the ‘Test’ environment, including configuration notes.

应转换为:

<a href="documents/WebAdapt_Prod_Int_10.1_Install.IIS7.2008R2.pdf">WebAdapt_Prod_Int_10.1_Install.IIS7.2008R2.pdf</a> - Step by step instructions for installing ArcSDE 10.1 for Oracle on the ‘Test’ environment, including configuration notes.

这些文件中大约有30个,因此逐行进行会非常耗时(尽管当我得到回复时,我可能已经完成了这样做)。我想知道如何在下次我给出需要格式化的大文本文件时这样做。

提前致谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

:%s!\v^\S+\.pdf!<a href="&">&</a>!

请注意,上述内容并未尝试对HTML实体执行任何操作。如果这是一个问题,请参阅Vim Tips wiki以获取可能的解决方案。

修改:这种方式有效:

  • :% - 过滤整个文件
  • s!...!...! - 替换
  • \v - 设置&#34;非常神奇&#34; regexps的语法
  • ^\S+\.pdf - 在行的乞讨处匹配一个或多个非空格,然后是.pdf
  • <a href="&">&</a> - 替换为链接:&是匹配的字符串(即文件名)。