在vim中搜索并替换选定的文件路径

2024-04-02

我经常处理内部充满文件路径的文件。我希望能够在可视模式下快速选择我的文件路径并将其替换为其他文件路径。

例如我有这样的文件:

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 

我需要

  1. 搜索所有出现的/mnt/Windows/Documents\ and\ Settings/stuff/file.exe
  2. 替换我的路径/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(使用前将#替换为@)

在vim中搜索并替换选定的文件路径 的相关文章

随机推荐

  • SymPy 和复数的平方根

    使用时solve为了计算二次方程的根 SymPy 返回可以简化的表达式 但我无法让它简化它们 一个最小的例子如下所示 from sympy import sqrt 24 70 I 在这里 SymPy 只是返回sqrt 24 70 I 而 M
  • 如何动态更改悬停和按下的 extjs 按钮的背景

    你好 我需要能够动态更改按钮不同状态 正常 悬停 按下 的背景颜色 到目前为止我想到的如下 http jsfiddle net suamikim c3eHh http jsfiddle net suamikim c3eHh Ext onRe
  • 为什么方法参数不适用于赋值?

    在 Ruby 中 与许多语言一样 方法的参数不会自动分配为实例变量 这有效 def initialize a a a end 这不会 def initialize a end 例如 在 CoffeeScript 中 这是有效的 constr
  • 升级到 .net 4 时 MembershipUser / System.Web.ApplicationServices 出现问题

    我有一个大型 vb net Web 项目 我正在尝试将其升级到 net4 VS2010 在编译期间我收到以下错误 程序集 System Web Version 4 0 0 0 Culture neutral PublicKeyToken b
  • 如何在没有gradle或Maven或Eclipse的情况下将jar文件添加到java项目中

    我可以添加一个jar文件到我在桌面上手动创建的 Java 项目without使用 gradle Maven 或任何依赖管理工具或任何 Java IDE 目前该项目是一个包含 5 个 java 文件的文件夹 我从终端运行它 是否可以在此类项目
  • 如何使用 BigQuery DML 转换嵌套在数组、结构体、数组内的结构体的某些字段?

    我认为这是问题的一个更复杂的版本更新 BigQuery 中结构体数组中的值 https stackoverflow com questions 61408952 update values in struct arrays in bigqu
  • MySQL 中 int 转字符串

    可以做这样的事情吗 本质上 我想将一个 int 转换为一个字符串 并在连接上使用该字符串 注意 t1 id select t2 from t1 join t2 on t2 url site com path t1 id more where
  • Mule 方法无法转换为字符串

    我对骡子工作室很陌生 这是环境设置 VM1 Windows 7 Visual Studio 2012 IIS 7 IIS 7 中托管的 net 4 5 WCF Web 服务 具有接受字符串并返回字符串的操作 VM2 Ubuntu 13 4
  • Titanium 用于 Windows 平台上的 iOS 开发

    我已经下载了 Windows 平台的 Titanium 正确安装后 我发现它需要iOS SDK 那么我应该从哪里获取iOS SDK 在Windows平台上可以开发iOS吗 使我的 Hello World 示例在适用于 iOS 的 Windo
  • 错误:R 中的下标类型“列表”无效

    这里有一个问题 我正在使用 eclipse 参数创建一个函数来处理不同的函数参数 我重新创建了类似的情况来显示我不断遇到的问题 gt d lt data frame alpha 1 3 beta 4 6 gamma 7 9 gt d alp
  • where 和having 关于别名的区别

    如果我在中创建一个别名select那么我不能在where子句因为根据sql查询的执行顺序where出现在之前select 但我可以在中创建一个别名select子句并将其用于having虽然条款having出现在之前select 为什么会这样
  • Knockoutjs 当父级可观察到的更改时更新子级

    当使用 KnockoutJs 父可观察更改时 如何触发子元素的更新 在我的应用程序中 我正在构建一个翻译工具 我有一个淘汰赛类 表示某些文本的原始 默认 值 以及翻译后的子项的集合 function ParentObject id defa
  • CSS 动画 - 动画缓慢且抖动

    我想问一下 这段CSS代码有什么问题吗 它用于动画背景图像 缩放效果 media min width 1000px anim on background size 110 110 background position center cen
  • 在 Golang 中访问上传的文件

    我在访问使用 golang 上传的文件时遇到问题 我对这门语言真的很陌生 并且已经进行了多次尝试 在网上也找不到任何答案 我究竟做错了什么 在此代码中 我从未到达列出已上传文件数的块 func handler w http Response
  • 野田时间:Period.Between() 返回错误的天数?

    鉴于下面的代码片段 为什么最后四个输出周期相同 我希望这些行的天数部分为 4 3 2 1 而不是 4 4 4 4 这是一个错误还是我遗漏了一些明显的东西 已经很晚了 我也累了 所以很可能是后者 我使用的是Noda Time 1 2 0 fo
  • 阻止 robots.mouseMove 生成​​ MouseEvent?

    我有一个 3D 游戏 每次移动光标时 我希望它重置到中间 问题是 robots mouseMove 调用 MouseEvent 它确实有意义 并重置位置 所以我无法旋转 谢谢你 我更喜欢如下代码 component removeMouseL
  • 如何重写对象ArrayList的ToString方法?

    class Person public String firstname public String lastname Person p1 new Person Jim Green Person p2 new Person Tony Whi
  • 了解 STG

    GHC 的设计基于 STG 它代表 无脊椎 无标签的 G 机器 现在G machine显然是 图缩减机 的缩写 它定义了惰性是如何实现的 未评估的 thunk 存储为表达式树 执行程序涉及reducing这些都归结为正常形式 Atree是一
  • 将字符串编码为十六进制

    我有将字符串转换为十六进制的函数 function encode str str encodeURIComponent str split join return str toLowerCase example 守护村子 alert enc
  • 在vim中搜索并替换选定的文件路径

    我经常处理内部充满文件路径的文件 我希望能够在可视模式下快速选择我的文件路径并将其替换为其他文件路径 例如我有这样的文件 balvadsd mnt Windows Documents and Settings stuff file exe