如何在 vi 编辑器中替换与特殊字符组合的单词
how to replace a word combined with special character in vi editor
我正在探索 vi 编辑器,
我想用 []
括号替换 _
(下划线)。
示例:data_0
需要替换为 data[0]
。
我知道 vi 中的基本替换命令。这种情况怎么更换?
下面的命令应该可以工作。它使用括号捕获 _
之后的索引。
:%s/_\(\d\+\)/[]
</code> 提供第一个捕获的组,即 <code>_
之后的数字。
只是为了扩展 gaganso's 答案,并解释
:%s/_\(\d\+\)/[]
表示。
:
这是一个 ex 命令
%
跨越整个文件
s
是替换
替换采用以下格式(参见 :help :s
)
:[range]s/[find]/[replace]/[flags]
我们已经处理了范围(它是全局的,感谢 %
),现在我们只需要解释 [find]
和 [replace]
块中的内容。
这个正则表达式的 [find]
部分是
_\(\d\+\)
它说
_
找一个下划线
\(
打开一个新的分组(转义的括号表示我们在里面找到的任何东西都应该是 'saved' 所以我们可以稍后把它放回去)
\d+
在一行中查找任意数量的数字
\)
关闭分组(因此我们稍后 'saved' 的部分是下划线之后的任意数量的连续数字。在您的示例中,这将是 0
共 data_0
和[replace]
部分
[
放下方括号
</code> 记下我们在分组中保存的任何内容(1 表示我们正在使用在第一个分组中找到的任何内容,我们也恰好只有一个分组)</li>
<li><code>]
再放下一个方括号
给你! vim 正则表达式,用于查找下划线后跟数字,并将其替换为方括号内的相同数字!
我正在探索 vi 编辑器,
我想用 []
括号替换 _
(下划线)。
示例:data_0
需要替换为 data[0]
。
我知道 vi 中的基本替换命令。这种情况怎么更换?
下面的命令应该可以工作。它使用括号捕获 _
之后的索引。
:%s/_\(\d\+\)/[]
</code> 提供第一个捕获的组,即 <code>_
之后的数字。
只是为了扩展 gaganso's 答案,并解释
:%s/_\(\d\+\)/[]
表示。
:
这是一个 ex 命令%
跨越整个文件s
是替换
替换采用以下格式(参见 :help :s
)
:[range]s/[find]/[replace]/[flags]
我们已经处理了范围(它是全局的,感谢 %
),现在我们只需要解释 [find]
和 [replace]
块中的内容。
这个正则表达式的 [find]
部分是
_\(\d\+\)
它说
_
找一个下划线\(
打开一个新的分组(转义的括号表示我们在里面找到的任何东西都应该是 'saved' 所以我们可以稍后把它放回去)\d+
在一行中查找任意数量的数字\)
关闭分组(因此我们稍后 'saved' 的部分是下划线之后的任意数量的连续数字。在您的示例中,这将是0
共data_0
和[replace]
部分
[
放下方括号</code> 记下我们在分组中保存的任何内容(1 表示我们正在使用在第一个分组中找到的任何内容,我们也恰好只有一个分组)</li> <li><code>]
再放下一个方括号
给你! vim 正则表达式,用于查找下划线后跟数字,并将其替换为方括号内的相同数字!