Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 将Vim中每行的最后一个逗号更改为制表符_Regex_Vim - Fatal编程技术网

Regex 将Vim中每行的最后一个逗号更改为制表符

Regex 将Vim中每行的最后一个逗号更改为制表符,regex,vim,Regex,Vim,你能帮我换衣服吗 abc,abc,12345 到 在vim中?用谷歌搜索并不是那么难 :%s/*\zs,/\t/或:%s/*\zs,/^I/ :s/old/new/是语法,但vim具有用于搜索和替换的传统功能,\zFoobar\ze让我们选择foobar进行替换 在您的示例中,.*与任何正则表达式中一样,表示任意次数的任意字符,或仅表示使用\zs功能选择的尽可能长的文本,后跟。因为它已经是模式的结尾,所以不需要使用\ze。然后用ascii制表符替换所选图案 如果您没有选择任何内容,则整个模式(

你能帮我换衣服吗

abc,abc,12345


在vim中?

用谷歌搜索并不是那么难

:%s/*\zs,/\t/或:%s/*\zs,/^I/

:s/old/new/是语法,但vim具有用于搜索和替换的传统功能,\zFoobar\ze让我们选择foobar进行替换

在您的示例中,.*与任何正则表达式中一样,表示任意次数的任意字符,或仅表示使用\zs功能选择的尽可能长的文本,后跟。因为它已经是模式的结尾,所以不需要使用\ze。然后用ascii制表符替换所选图案


如果您没有选择任何内容,则整个模式(包括某些文本部分)都将被替换。如果没有它和其他一些正则表达式,您可以做得很好,但是如果您使用的是工具或语言,那么最好使用它的功能。

为了多样性:

:%norm $F,r<C-v><Tab>
移动到行的末尾 跳转到左边的第一个逗号 将其替换为一个。 解释

: ........ command
% ........ entire file
/ ........ start searching
, ........ comma 
\( ....... opening regex group
[^,]* .... anything but comma
\) ....... closing regex group
$ ........ at the end of line
/ ........ end search
Ctrl-v TAB .... to insert tab
\1  ...... back reference to regex group

该死的\z很强大,我没听说过。我想从现在起我会经常使用它插入\t不起作用,您应该插入^I.Cool,我想vim对\{character}有很多特殊的意义,所以\t可能不起作用并不奇怪。例如,当expandtab选项打开时,它可以但不总是起作用。@andrisleduskrast如果您能详细说明一下您的答案,以便OP完全理解解决方案,然后我会删除我的答案@贝类很可能你有一个插件可以做到这一点。通常s/../../..\t.../插入实际制表符。如果已设置expandtab,则可以通过运行:ret!,但这并不是自动完成的。也许你有一些插件和/或autocmd为你做这件事。
:%s/,\([^,]*\)$/ \1
: ........ command
% ........ entire file
/ ........ start searching
, ........ comma 
\( ....... opening regex group
[^,]* .... anything but comma
\) ....... closing regex group
$ ........ at the end of line
/ ........ end search
Ctrl-v TAB .... to insert tab
\1  ...... back reference to regex group