粘贴到VIM中的文件末尾而不移动光标

时间:2015-01-07 18:56:01

标签: vim

在文本文档中,我[在视觉上或其他方面]选择多行,用d剪切它们...我想将这些行粘贴到文件的末尾而不用移动光标。有没有相对简单的方法来做到这一点?

4 个答案:

答案 0 :(得分:4)

使用上一跳的隐含标记

您可以使用隐式标记(例如')将光标返回到最后一次跳转之前占据的位置。例如:

P ' '

这将是(G)o到文件的末尾,(p)在最后一行之后的内容,然后在你键入 G 时返回到你的位置。

答案 1 :(得分:2)

您可以定义标记当前位置的映射,使用:$put在缓冲区末尾粘贴,然后使用标记返回到原始光标位置。

这是有效的,因为:put允许行号前缀(最后一行可表示为$)。来自:help put

:[line]pu[t] [x]        Put the text [from register x]

这会将其映射到<leader> p

:nnoremap <leader>p :mark '<cr>:$put<cr>`'

它在光标处设置'标记,在结尾处粘贴,然后使用`返回'标记

答案 2 :(得分:2)

有几种方法:

标记

设置标记,粘贴,然后跳回标记

m':$pu<cr>``

视觉模式

直观地选择您的线条,复制它们,追加,然后恢复视觉选择(可选择删除)

y:$pu<cr>gv

附加到文件

以可视方式选择行,使用:w附加到文件,然后重新加载文件。 (注意:将光标移动到视觉选择的行的开头)

:w >><cr>:e!

创建您自己的命令/映射

您可以创建自己的命令和/或映射,使用winsaveview()winrestview()追加,然后恢复光标。

答案 3 :(得分:1)

取决于你的意思是“不移动光标”。

这将粘贴到当前文件的底部,然后允许您继续剪切线的位置。

  1. 拆分窗口:拆分
  2. shift + g
  3. 移至最底层
  4. 使用 p
  5. 粘贴
  6. 关闭复制拆分视图( z z 或:q)
  7. 如果您不喜欢拆分视图,可以使用ctrl + o在G

    之后跳回
    1. shift + g
    2. 移至最底层
    3. 使用 p
    4. 粘贴
    5. 跳回 ctrl + o