что такое команда «Выбрать все» в vim и VsVim?

22

Как выбрать все содержимое файла в Vim и VsVim? Как и в других редакторах, ctrl+Aделает выбор всего.

Armaan
источник
3
Ответ SibiCoder хорош, но было бы полезно узнать, что вы собираетесь делать с скопированным контентом.
Закон 29
5
Сначала вы «выбираете» некоторый текст в «буфере», а не в «файле». Во-вторых, «выбор» часто бесполезен в Vim, поэтому вы должны четко понимать, что вы хотите делать с этим «выбором». Для тебя и для нас.
Ромен
3
@ romainly Я думаю, что OP означает выбор всего файла в визуальном режиме, учитывая, что ctrl+aв других редакторах визуально выделяет весь файл.
EvergreenTree
@statox Почему вы редактировали vsvim ? Для меня это не большое дело, но я думаю, что этот тег совершенно уместен, и я не хотел вступать в войну редактирования. (Я бы тебя пинговал :chat!, но тебя недавно не было в этой комнате, поэтому он меня не пустил)
Джеймс
@DJMcMayhem: Это была ошибка: я сначала подумал, что vsvimэто похоже vimperatorна плагины для других программ, и поэтому не по теме, поэтому я удалил их, затем у меня возникло сомнение, поэтому я проверил мета и увидел, что это по теме, поэтому я одобрил редактирование вашего тега, но забыл снова редактировать вопрос. Я меняю это прямо сейчас, извините за это.
statox

Ответы:

27

ggVGВыбирает весь контент. ggпереходит на первую строку Vзапускает визуальный режим. Gпереходит на последнюю строку, выбирая таким образом от первой до последней строки

SibiCoder
источник
15

Наряду с ответом 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
nobe4
источник
4

Другие ответы хороши. Вот еще одна альтернатива.

Поскольку вы упоминаете, что используете VsVim, вы можете изменить, какие ключи обрабатываются Visual Studio, а какие - vsvim. Перейти к

Сервис -> Параметры -> VsVim -> Клавиатура

Оттуда вы можете установить Ctrl-a для обработки Visual Studio, а не VsVim.

Хотя я не рекомендую этого, так как вы не сможете использовать vim <C-a>, что я считаю важной функцией. Хотя это зависит от вас.

Джеймс
источник
0

Вы можете использовать большое число, например 99999yy, чтобы выбрать все содержимое вашего файла

Адель Кихал
источник
3
Файлы больше, чем 100000строки, возможны, хотя и редки. Кроме того, использование yyбудет дергать их, а не выбирать их.
Джеймс
1
да, конечно, вы правы, но при выборе чего-либо это в большинстве случаев вырезать, копировать или удалять :)
Адель Кихал
Это то, что мне было нужно. Выберите все и дергайте.
Иван