вот ситуация, в которой я нахожусь каждый день:
0 .outer_selector {
1
2 .inner_selector {
3 margin: 0;
4 padding: 0;
5
6 input { display: none; }
7 }
8
9 }
теперь я хочу вырезать и вставить .inner_selector
где-то еще. Как я могу это сделать? Я не могу понять, как быстро удалить логический .inner_selector
блок С он окружает пробелы; т. е. эквивалентен dap
но для этого блока с разделителями скобок. Здесь представлены различные идеи, в порядке возрастания gnarliness. (ai
и ii
отображения с помощью vim-indent-obj плагин.)
-
3Gdai
. Это почти работает, но оставляет закрывающую скобку для.inner_selector
блок, где он находится. -
2Gdai
. Ничего хорошего; это удаляет все.outer_selector
блок. -
2Gdii
. Это удаляет правильный блок, но не окружающие пробелы (т. е., эквивалентdip
вместоdap
). -
2Gf{d%
. Перейти к{
Сf{
, удалить, чтобы соответствующая скобка (d%
). Это удаляет текст от скобки в строке 2 ее парную скобку, но оставляет текст ".inner_selector
". -
2Gf{v%okd
. Начинается так же, как (4), а затем перейти к началу выбранного текста (o
), распространяются на одну строку вверх (k
), и удалить (d
). То же, что и в пункте 3 выше. -
3Gvaikojjd
. Выделите текст, выделите одну дополнительную строку вверх (k
), перейти к нижней части выделенной области (o
), выберите две линии вниз (jj
), удалить (d
). Эта работа.
я могу определить отображение клавиатуры для последнего и сделать с ним, но прежде чем я это сделаю, я хочу быть уверенным, что я не пропущу что-то здесь. Поскольку это такая общая конструкция кода на многих языках, я удивлен, что ее так трудно лечить text { /* multiple lines /* }
как текстовый объект, или что для него нет плагина.