vim - 在 Vim 中是否有一种本地方法可以在与相邻行交换时垂直移动文本?

标签 vim

考虑以下文本文件:

--> Foobar
    Barfoo

我想将此文本转换为

    Foobar
--> Barfoo

有多种方法可以做到这一点。一种可能是使用 REPLACE 模式用三个空格覆盖第一行,然后使用 REPLACE 模式。

但是,我想知道是否有一种本地方法来选择数组文本(可能在可视 block 模式下)并将其下拉到相邻行。

最佳答案

在学习了视觉重新选择(gv)之后,我想出了如何以一种泛化到任何类型的视觉选择的方式来做到这一点(第一步根据人们想要的不同而不同)选择并移动)。

  1. 直观地选择 block :0vf>
  2. 将 block 拖入寄存器:y
  3. 重新选择 block :gv
  4. 将所有文本替换为空格字符:r[Space]
  5. 下移一行:j
  6. 使用[Shift]R进入替换模式。
  7. 粘贴寄存器内容[Control]R"

我将其录制为宏,并且效果相当好。

关于vim - 在 Vim 中是否有一种本地方法可以在与相邻行交换时垂直移动文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756924/

相关文章:

vim - 在分割窗口中打开光标下的文件

vim - 求一个vim命令的解释

Vim 的全局命令,模式由逗号连接

vim - 搜索突出显示 (hlsearch) 在 vi​​m 中不起作用

vim - 重新映射标签的 <c-]> 使其忽略某些字符

vim - vi/vim-如何将标签标签/标题长度设置为固定大小(以字符为单位)

macos - 在控制台 Vim 中使用 CMD 映射

linux - 在 Vim 中将交替突出显示颜色设置为文本?

vim - Vim 中的键绑定(bind) - <C-ç> 不起作用

vim - 在vim中启用鼠标滚动但不启用鼠标视觉选择?