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 如何在最后一个图案出现时/之后对齐?_Regex_Vim_Text_Alignment_Tabular - Fatal编程技术网

Regex 如何在最后一个图案出现时/之后对齐?

Regex 如何在最后一个图案出现时/之后对齐?,regex,vim,text,alignment,tabular,Regex,Vim,Text,Alignment,Tabular,例如: this is my text, this is, this is my text this, this is my, this is my, this is text this is, my text, this is, this is my text this, this is my, this is my, this is text 通常,我使用插件来对齐文本。 P.e.在第一次或第二次出现,“ 我使用这个公式: Tabularize /^\(.\{-}\zs,\)\{1}/

例如:

this is my text, this is, this is my text
this, this is my, this is my, this is text
this is, my text, this is, this is my text
this, this is my, this is my, this is text  
通常,我使用插件来对齐文本。
P.e.在第一次或第二次出现
,“

我使用这个公式:

Tabularize /^\(.\{-}\zs,\)\{1}/l0
Tabularize /^\(.\{-}\zs,\)\{2}/l0
并在第一次或第二次出现
”之后对齐,“

Tabularize /^\(.\{-}\zs,\)\{1}\zs/l0l1
Tabularize /^\(.\{-}\zs,\)\{2}\zs/l0l1
但是,我如何在上次出现“
”和“


如果我不知道发生了多少次

我认为在vim中,最后出现的
将与
*\zs,
匹配


因此,您应该能够发出类似于
Tabularize/*\zs,/

的命令,我认为在vim中,最后出现的
将与
*\zs,
匹配


因此,您应该能够发出类似于
Tabularize/*\zs,/

的命令,尽管我不确定您是否希望有另一个插件只是为了对齐,但供您参考,这可以很容易地使用插件来完成,插件定义了视觉模式的
:EasyAlign
命令

  • :EasyAlign,
    (大约在第1次出现,)
  • :EasyAlign2,
    (大约第二次出现,)
  • :EasyAlign-,
    (大约在最后出现的,)
  • :EasyAlign-2,
    (大约在第二次到最后一次出现,)
  • :EasyAlign-3,
    (大约第3次到最后一次出现,)
  • :EasyAlign*,
    (所有出现的,)
如果您按照以下方式定义映射,则更容易

vnoremap <silent> <Enter> :EasyAlign<cr>
vnoremap:EasyAlign
然后,您只需按两到三次键即可完成此操作

  • 2,
  • -,

虽然我不确定您是否希望有另一个插件用于对齐,但请参考,这可以通过插件轻松完成,插件定义了视觉模式的
:EasyAlign
命令

  • :EasyAlign,
    (大约在第1次出现,)
  • :EasyAlign2,
    (大约第二次出现,)
  • :EasyAlign-,
    (大约在最后出现的,)
  • :EasyAlign-2,
    (大约在第二次到最后一次出现,)
  • :EasyAlign-3,
    (大约第3次到最后一次出现,)
  • :EasyAlign*,
    (所有出现的,)
如果您按照以下方式定义映射,则更容易

vnoremap <silent> <Enter> :EasyAlign<cr>
vnoremap:EasyAlign
然后,您只需按两到三次键即可完成此操作

  • 2,
  • -,


您可以将图案锚定到行尾。@romainl锚定到行尾?与其让图案从行尾开始(
^
),不如让它从行尾开始工作。@romainl,我不能让它工作。你能举个例子吗?我必须在
\{1}
中放入什么?我认为
*,
应该在最后一个逗号后对齐,而不知道您要查找的输出是什么。您可以将模式锚定到行尾。@romainl锚定到行尾?而不是使用从行首(
^
)开始的模式,让它从队伍的尽头开始工作。@romainl,我不能让它工作。你能举个例子吗?我必须在
\{1}
中输入什么?在不知道您要查找的确切输出的情况下,我认为
*,
应该在最后一个逗号后对齐。谢谢。如果我从代码中删除“
^
”,效果很好:)非常好。我已经删除了这个角色,谢谢。如果我从代码中删除“
^
”,效果很好:)非常好。我已经删除了这个角色。非常感谢你的回答。我已经检查了一次这个插件,今天又检查了一次。我就是做不到。和没有办法在空间上对齐吗?这个插件只在视觉模式下工作,不接受正则表达式。路线图案是预定义的(您可以对其进行扩展)。假设您如上所述定义了一个vmap,那么您可以使用
2
等进行定义,也可以不使用映射
:easyallign\
:easyallign2\
等(反斜杠+空格)进行定义。非常感谢您的回答。我已经检查了一次这个插件,今天又检查了一次。我就是做不到。和没有办法在空间上对齐吗?这个插件只在视觉模式下工作,不接受正则表达式。路线图案是预定义的(您可以对其进行扩展)。假设您如上所述定义了一个vmap,那么您可以使用
2
等进行定义,也可以不使用映射
:easyallign\
:easyallign2\
等(反斜杠+空格)进行定义。