如何在vim中“全选”而不丢失光标位置?

时间:2014-05-02 23:29:22

标签: vim

我的mswin.vim包含以下Ctrl-A

命令
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G

此命令正确选择文件中的所有行,但也会使光标跳转到文件末尾(不良副作用)。有没有办法在不移动光标的情况下“全选”?

提前感谢您的任何帮助或建议。

3 个答案:

答案 0 :(得分:2)

我担心这不可能实现。由于在视觉选择模式下,光标将位于可视范围的开头或结尾。视觉模式下的任何动作都将导致视觉选择的范围变化(取决于视觉模式:char / line / block-wise)。

重点是,在select-allkept the cursor position之后你想做什么?这可能是X-> Y问题,只需告诉我们您的最终目标是什么。可以有更好的解决方案。

顺便说一句,C-A对于增加数字非常有用,也许您想重新考虑地图触发器?

答案 1 :(得分:1)

最简单快捷的方法是使用: y + 然后转到Google文档(或任何地方)和粘贴。

答案 2 :(得分:1)

你可以看看getpos setpos - 也许你可以用这样的东西包装你想要的东西:

function! TestFunc()
    let save_cursor = getpos(".")
    normal ggVG
    " -- do something
    call setpos('.', save_cursor)
endfunction