如何在Vim上面的线上方移动当前行?

时间:2011-10-28 07:21:19

标签: vim

如何将当前行移到它上面的线后面?说我有:

    function foo()
      {
      ^ Cursor is here

想把它变成:

function foo() {

我仍然是vim的新手,所以我现在所做的是i[backspace][backspace]...etc.:)

1 个答案:

答案 0 :(得分:9)

有几种方法:

  • 在正常模式下,kJkgJVkJVkgJ(最后两个命令在可视模式下执行相同操作)。
    k将转到上一行,JgJ将与下一行合并(J在其间插入一个空格,gJ只删除EOL字符)
  • 在命令模式下,:-,j:-,j!
    -,.-1,.的缩写范围,表示“从上一行到当前行” j是用于连接范围中的行的ex命令。带有感叹号的带有感叹号的版本就像gJ。
  • 替换::-s/\s*\n\s*//
    -表示上一行 您可能已知:s,否则您应该运行vimtutor/\s*\n\s*/是尽可能多的空格加上行终止符的模式(根据文件格式匹配不同的字节序列:LF,CR或CRLF)加上尽可能多的空格。
    此处,替换模式为空。
  • 在插入模式下,点击CTRL-W两次(每次删除一个单词,或在一行或新行上引导空格)(如ib.所示,这取决于backspace设置)。

参考文献:

  • :help J
  • :help gJ
  • :help k
  • :help range
  • :help :j
  • :help pattern
  • :help i_CTRL-W