Команду удалить весь метод?

Я использую viemu в VS 2010. Есть ли надежная команда для удаления всего метода в исходном коде C#?

Вот что я пробовал:

  • Команды движения } а также ]] не достаточно умен, чтобы выбрать метод. Хотя иногда они действительно получают правильное количество текста.

  • Изнутри метода, который я могу сделать diB который удалит все тело метода. Это не так уж плохо, но тогда мне осталось удалить подпись и внешние скобки.

  • Если я переместить курсор на модификатор видимости (т.е. public, privateи т. д.) d*, он уничтожит весь метод, если следующий метод будет иметь такую ​​же видимость.

У каких-нибудь экспертов vi/viemu есть способ сделать это?

3 ответа

Решение

В Vim вот как я это делаю. Я не уверен, что viemu совместимо достаточно, но:

  1. Перейти к началу объявления метода (модификатор доступности и т. Д.).
  2. Нажмите v, чтобы войти в визуальный режим.
  3. Поместите курсор на фигурную скобку, которая запускает тело метода.
  4. Нажмите %, чтобы переместить курсор к соответствующей скобке.
  5. Нажмите d, чтобы удалить все, что выбрано.

Это не супер-автомат или что-то еще, но это работает, и его относительно легко сделать, когда включится мышечная память.

Я люблю использовать zadd сложить его и удалить этот сгиб (который тоже получит объявление).

Другой способ сделать это, если вы находитесь внутри уровня метода / if, который вы хотите удалить, это da{dd который я нахожу немного проще, чем некоторые другие предложения. Он говорит, чтобы удалить вокруг { пара скобок, в которой находится курсор, затем dd удалить оставшееся объявление функции.

Если вы вложены в управляющие структуры в методе, вы можете поставить перед ним число, чтобы удалить столько уровней вверх.

dap (удалить абзац) будет работать для простых методов, которые не содержат пустых строк. Для методов, которые содержат пустые строки, вам нужно будет использовать diBdap (удалить внутренний блок с последующим удалением абзаца). Для более легкого использования вы можете создать отображение в вашем файле RC. например: :nmap <C-d> diBdap

Другие вопросы по тегам