我的mswin.vim包含以下用于Ctrl-A的命令
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
这个命令正确地选择了文件中的所有行,但也使光标跳到了文件的末尾(不希望的副作用)。有没有办法在不移动光标的情况下“全选”?提前感谢您的任何帮助或建议。
yquaqz181#
恐怕这是无法实现的。因为在可视选择模式下,光标将位于可视范围的开始或结束位置。可视模式下的任何移动都将导致可视选择范围发生变化(取决于可视模式:字符/行/块方式)。问题是,在select-all和kept the cursor position之后你想做什么?这可能是一个X-〉Y的问题,只要告诉我们你的最终目标是什么。可能会有更好的解决方案。顺便说一句,C-A对增加数字是如此有用,也许你想重新考虑Map触发器?
select-all
kept the cursor position
C-A
zbdgwd5y2#
最 简单 、 最 快捷 的 方法 是 使用 :: % y + , 然后 转到 " Google 文档 " ( 或 任何 位置 ) 并 粘贴 。
bxpogfeg3#
你可以看一下getpossetpos--也许你可以把你想要的东西 Package 成这样:
getpos
setpos
function! TestFunc() let save_cursor = getpos(".") normal ggVG " -- do something call setpos('.', save_cursor) endfunction
bxgwgixi4#
在vim中,您可以通过转到要删除的文本来执行此操作。不要键入I来插入,而是从要删除的文本开始键入v。接下来,您可以向下箭头到要删除的文本位置,然后再次按v。现在您已经选择了要删除的文本范围。接下来按I并退格键。source https://www.cs.swarthmore.edu/oldhelp/vim/selection.html
4条答案
按热度按时间yquaqz181#
恐怕这是无法实现的。因为在可视选择模式下,光标将位于可视范围的开始或结束位置。可视模式下的任何移动都将导致可视选择范围发生变化(取决于可视模式:字符/行/块方式)。
问题是,在
select-all
和kept the cursor position
之后你想做什么?这可能是一个X-〉Y的问题,只要告诉我们你的最终目标是什么。可能会有更好的解决方案。顺便说一句,
C-A
对增加数字是如此有用,也许你想重新考虑Map触发器?zbdgwd5y2#
最 简单 、 最 快捷 的 方法 是 使用 :: % y + , 然后 转到 " Google 文档 " ( 或 任何 位置 ) 并 粘贴 。
bxpogfeg3#
你可以看一下
getpos
setpos
--也许你可以把你想要的东西 Package 成这样:bxgwgixi4#
在vim中,您可以通过转到要删除的文本来执行此操作。不要键入I来插入,而是从要删除的文本开始键入v。接下来,您可以向下箭头到要删除的文本位置,然后再次按v。现在您已经选择了要删除的文本范围。接下来按I并退格键。source https://www.cs.swarthmore.edu/oldhelp/vim/selection.html