在vim和VsVim中“全选”的命令是什么?


26

如何在Vim和VsVim中选择文件的所有内容?像其他编辑器ctrl+A一样,全选也一样。


3
SibiCoder的答案很好,但是了解您打算对复制的内容做什么将很有用。
Law

5
首先,您在“缓冲区”而不是“文件”中“选择”一些文本。第二,“选择”在Vim中通常是没有用的,因此您必须清楚要使用“选择”进行的操作。为您和为我们。
romainl

3
@romain主要是我认为OP意味着在可视模式下选择整个文件,考虑到ctrl+a在其他编辑器中可视地突出显示了整个文件。
EvergreenTree

@statox为什么要编辑vsvim?对我来说,这不是什么大不了的事,但我认为该标签非常合适,而且我不想卷入编辑大战。(我会在ping通您:chat!,但您最近没去过那个房间,所以它不会让我
詹姆斯

@DJMcMayhem:这是一个错误:我首先以为vsvim是这样的,vimperator并且这类插件用于其他软件,因此不在主题之列,所以我删除了它,然后我产生了疑问,所以我检查了meta并看到它是主题,所以我批准了标签编辑,但忘记了再次编辑问题。我现在要更改它,对此感到抱歉。
statox

Answers:


30

ggVG选择所有内容。gg移动到第一行。V启动可视模式。G跳到最后一行,从而从第一行到最后一行选择


17

与SibiCoder的答案一起,如果您对要执行的操作有清晰的了解,则可以使用以下方法:

:%X

X命令在哪里,例如:

:%d             -> delete every line
:%y             -> yank every line
:%normal! >>    -> indent every line

您还有全局命令:g,通过搜索模式^可以执行相同的操作:

:g/^/d             -> delete every line
:g/^/y             -> yank every line
:g/^/normal! >>    -> indent every line

如果您要选择文本,那ggVG很好,但是请记住这些方法,以防您已经知道下一步是什么。请注意,它不会使光标处于可视模式。

请参阅::h :%:h :g供参考。


请注意,即使C-A在vim中使用了映射(请参阅参考资料:h CTRL-A),您也可以将其映射为其他编辑器执行的操作:

nnoremap <C-A> ggVG

4

其他答案很好。这是另一种选择。

由于您提到使用的是VsVim,因此可以更改Visual Studio处理的键以及vsvim处理的键。去

工具->选项-> VsVim->键盘

在这里,您可以将Ctrl-a设置为由Visual Studio处理,而不是由VsVim处理。

尽管我不建议您这样做,因为您将无法使用vim's <C-a>,但我发现这是必不可少的功能。虽然由您决定。


0

您可以使用99999yy这样的大数字来选择文件的所有内容


3
大于100000行的文件是可能的,尽管很少见。同样,使用yy拉动它们,而不是选择它们。
詹姆斯,

1
是的,您确定的是对的,但是在选择某些内容时,大多数情况下都是要剪切,复制或删除它们:)
Adel Kihal

那就是我所需要的。全选并拉动。
伊万
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.