Vim - выбрать / удалить / удалить содержимое в скобках, включая скобки


27

В vim можно ли выбирать содержимое в скобках, включая скобки, похожие на

yi{ yi(

Но я хочу включить скобки

Ответы:


1

Вы можете переместить курсор на одну скобку и сделать vf{ или же vf( чтобы перевести вас в визуальный режим, а затем выбрать все до (и включая) скобки


3
На самом деле, это приведет к выбору только открывающей скобки. Если вы на вершине открывающей скобки, f{ переместит вас к ближайшей открывающей скобке, на которой вы уже находитесь. То, что вы, вероятно, хотите v% который переместит вас к соответствующей скобке и может быть использован с любой стороны.
Michael Mior

68

Да. использование a вместо i, как

ya{
ya(

Увидеть

:help a{
:help a(

и в целом,

:help text-objects
:help 04.8

Это должен быть принятый ответ!
phanhuy152

3

Есть ли f{v% или же f(v% делай что хочешь? Он перемещает курсор к следующему {или (, вводит вас в визуальный режим, а затем перемещает курсор к соответствующему закрытию} или). Если вы уже вышли за рамки, которые хотите выбрать, вы можете использовать заглавную F, Работает так же хорошо, чтобы перейти к закрытию} или) сначала тоже - f}v%,

Когда у вас есть то, что вы хотите выбрать, вы можете y, d, xи т. д. это. % Команда также работает в несколько строк, поэтому вы можете использовать эту технику для больших блоков кода, если хотите (хотя f а также F нет, так что вы должны начать с первой или последней строки).

РЕДАКТИРОВАТЬ: Лучший ответ, кажется, именно то, что вы ищете:

ya(

Замена i в вашей первоначальной команде с a делает то же самое, за исключением того, что включает в себя символ '('. Это "дергание блок ", тогда как yi( "дергает я ннер блок ".

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.