Regex VIM正则表达式是否将文本向上移动?维姆高尔夫

Regex VIM正则表达式是否将文本向上移动?维姆高尔夫,regex,vim,Regex,Vim,有人能告诉我如何在vim中解决这个问题吗? 我可以看到行从空格开始,但是向上移动文本不起作用 |- | | 199 | TNET revenue | Most Recent (Last) | Purchase | Counter | Enabled |- | | 200 | Page Category (eVar 30) | Most Recent (Last) | Visit | Text String | Enabled |- 我想创造这个: |- | | 199

有人能告诉我如何在vim中解决这个问题吗? 我可以看到行从空格开始,但是向上移动文本不起作用

|-
| 
| 199
| TNET
  revenue
| Most
  Recent (Last)
| Purchase
| Counter
| Enabled
|-
| 
| 200
| Page
  Category (eVar 30)
| Most
  Recent (Last)
| Visit
| Text
  String
| Enabled
|-
我想创造这个:

|-
| 
| 199
| TNET revenue
| Most Recent (Last)
| Purchase
| Counter
| Enabled
|-
| 
| 200
| Page Category (eVar 30)
| Most Recent (Last)
| Visit
| Text String
| Enabled
|-

谢谢

这似乎起到了作用:
:%s/n/
你可以使用
:global
(实际上是
:g!
)和
:join

:g!/^|/-1,.join
说明:

  • :g/{pat}/{cmd}
    在与模式匹配的每一行上运行命令
    {cmd}
  • :g
    缺少
    :global
  • :g/{pat}/{cmd}
    在与模式不匹配的每一行上运行一个命令
  • :vglobal
    :v
    )与
    :g
  • 使用
    :join
    作为
    {cmd}
    中的
    :g/{pat}/{cmd}
  • :[range]join
    将加入一个范围,
    [range]
    行。类似于正常模式下的
    J
    <代码>:简称j
  • {start},{end}
    -一个范围包含一个起始行和一个结束行
  • -1、.
    -1、.join的范围
  • -1
    表示当前行的
    -1
  • 是当前行
  • -1
    中,可以假定
    1
    ,这样它就可以变成
    -
  • ,.
    也可以假定
缩短命令的所有内容:

:v/^|/-j
我不会太担心打高尔夫球。最重要的是认识到一个问题并学会如何克服它

有关更多帮助,请参阅:

:h :v
:h :j
:h :range

你试过什么方法来解决它吗?非常有趣。你还能告诉我为什么用连字符和小j吗?Join根据说明使用大J。它必须是大J。
-J
使用
J
到上一行<代码>-选择上一行

谢谢