Vim - виберіть / вимкніть / видаліть вміст між дужками, включаючи дужки


31

У vim, чи можна вибирати вміст між дужками, включаючи дужки, подібні до

yi{ yi(

Але я хочу включити дужки.

Відповіді:


0

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


5
Насправді, це в кінцевому підсумку вибиратиме лише вступну дужку. Якщо ви знаходитесь на вершині вступної дужки, f{перемістіть вас до найближчої вступної дужки, на якій ви вже перебуваєте. Ви, мабуть, хочете, це те, v%що переведе вас на відповідну дужку і може бути використане з будь-якої сторони.
Майкл Міор

Це не правильна відповідь. Дивіться відповідь @ garyjohn нижче.
Майкл Сендман

75

Так. Використовуйте aзамість i, як

ya{
ya(

Побачити

:help a{
:help a(

і в цілому,

:help text-objects
:help 04.8

1
Це має бути прийнята відповідь!
phanhuy152

3

Робиш f{v%чи f(v%робиш те, що хочеш? Він переміщує ваш курсор до наступного {або (, вводить вас у візуальний режим, а потім переміщує курсор у відповідне закриття} або). Якщо ви вже минули сферу, яку хочете вибрати, ви можете використовувати велику столицю F. Працює так само добре, щоб перейти до закриття} або) спочатку теж - f}v%.

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

EDIT: Краща відповідь, здається, саме те, що ви шукаєте:

ya(

Заміна iу вихідній команді з aробить рівно те ж саме, за винятком того, що вона включає в «(» характер. Це «смикає в блок», в той час як yi(це «смикає в я nner блок».

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.