我经常处理内部充满文件路径的文件。我希望能够在可视模式下快速选择我的文件路径并将其替换为其他文件路径。
例如我有这样的文件:
balvadsd /mnt/Windows/Documents\ and\ Settings/stuff/file.exe blablabalba albla
/mnt/Windows/Documents\ and\ Settings/stuff/file.exe bla2 vslva 21
stuff foo bar dsad /mnt/Windows/Documents\ and\ Settings/stuff/file.exe
我需要
- 搜索所有出现的
/mnt/Windows/Documents\ and\ Settings/stuff/file.exe
- 替换我的路径
/mnt/Windows/Documents\ and\ Settings/stuff/file.exe
与其他路径。棘手的一点是解决方案如this one http://asktherelic.com/2011/04/02/on-easily-replacing-text-in-vim/由于斜杠、反斜杠和点,不适用于文件路径。
您可以使用以下命令转义正则表达式元字符\
. So foo/bar
变成foo\/bar
为你的正则表达式。或者您可以使用不同的分隔符,例如#
。然而你仍然需要逃避.
。你可以避免逃跑的需要.
和其他正则表达式元字符通过使用\V
非常游牧。使用\V
意味着现在所有正则表达式元字符都必须进行转义,这意味着非转义的宪章与其字面意义相匹配。
:%s#\V/mnt/Windows/Documents\ and\ Settings/stuff/file.exe#replacement#g
然而,所有这些逃避都会变得烦人。我通常使用视觉星图和/或plugin https://github.com/nelstrom/vim-visual-star-search。意思是我视觉上选择文本然后按*
。然后你就可以做:%s//replacement/
or :%s##replacement#
进行更换。
有一些不错的Vimcast http://vimcasts.org/尼尔·德鲁 (Neil Drew) 的剧集谈到了这一点:
- 搜索选定的文本 http://vimcasts.org/episodes/search-for-the-selected-text/
-
使用命令行窗口优化搜索模式 http://vimcasts.org/episodes/refining-search-patterns-with-the-command-line-window/.
您可以进一步深化这个想法gn
运动和.
命令。请参阅以下 vimcast 剧集:使用 gn 对搜索匹配进行操作 http://vimcasts.org/episodes/operating-on-search-matches-using-gn/.
如需更多帮助,请参阅:
:h /\V
:h gn
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)