如何在Vim和VsVim中选择文件的所有内容?与其他编辑器一样,ctrl+A会执行全选操作。

评论

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

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

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

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

@DJMcMayhem:这是一个错误:我首先认为vsvim就像vimperator以及其他软件的此类插件,因此不在主题范围内,因此我将其删除,然后我产生了疑问,因此我检查了meta并发现它在主题上因此我批准了您的标签编辑,但是忘记再次编辑问题。我现在要更改它,对此感到抱歉。

#1 楼

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

评论


我对于ggVG和gg甚至G都没有得到vim命令

–塞缪尔·奥维诺
20-10-7的16:09

#2 楼

连同SibiCoder的答案一起,如果您对要执行的操作有清楚的了解,则可以使用以下命令: br />
:%X


您还具有全局命令X,使用搜索模式:g可以执行相同的操作:

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


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

请参阅:ggVG:h :%供参考。在vim中使用(请参阅:h :g),可以将其映射为其他编辑器执行的操作:

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


#3 楼

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

由于您提到正在使用VsVim,因此可以更改哪些键由Visual Studio处理,哪些键由vsvim处理。转到


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


从那里,您可以设置Ctrl-a以由Visual Studio处理,而不是VsVim。

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

#4 楼

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

评论


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

–詹姆斯
16年8月3日在6:43

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

–阿德尔·基哈尔(Adel Kihal)
16年8月4日在8:51

那就是我所需要的。全选并拉动。

–伊凡
20年1月31日15:57

仅:%y就足够了。或:%y +,将+寄存器中的所有内容都拉出。

–卢克·赫米特(Luc Hermitte)
20-11-20在14:09

#5 楼

如果您想以一种更快/更直观的方式来执行此操作,并且不介意添加插件,则此方法很方便: