Подтвердить что ты не робот

Visual Studio: исключить выделение из стека отмены/повтора

В Visual Studio есть что-то действительно раздражающее: когда я расширяю или сворачиваю метод или область кода, это действие переносится на стек отмены. Поэтому, если я редактирую какой-либо код в методе, затем сбрасываю этот метод, а затем хочу отменить мое изменение, я должен отменить дважды: один раз для действия свернуть и один раз для изменения кода. Это может быть ОЧЕНЬ запутанным, если вы расширили или свалили несколько вещей после редактирования кода, редактор продолжает прыгать в разные места, и вы не знаете, были ли ваши изменения отменены или нет...

Итак, мой вопрос: можно ли отключить это поведение? то есть что только изменения кода учитываются в стеке отмены?

PS: Я использую Visual Studio 2008


EDIT: если это поведение вас тоже раздражает, пожалуйста, проголосовать за его использование в UserVoice!

4b9b3361

Ответ 1

Я не верю, что есть способ отключить это поведение.

В качестве альтернатив, значки панели отмены и повтора отображаются в раскрывающихся списках истории, которые позволяют вам визуально видеть сводку того, что недавние изменения были в том, что вы будете уничтожать или переделывать. Иногда это может помочь вам отменить (или переделать) то, что вы ожидаете.

Поскольку это не всегда достаточно, чтобы точно знать, что такое изменения (в истории отмены отображается только сводка), решение, которое я иногда использую для решения этой проблемы, заключается в объединении undo (ctrl-z), redo (ctrl-y ) и снова отменить. Первое отмена перемещается туда, где произошло изменение (и отменяет это изменение). Повтор отменяет отмену (что существенно повторяет последнее изменение). И последнее отмену снова выполнит отмену, когда окно прокручивается до места, где я действительно могу увидеть отмену, и могу подтвердить, изменилось ли это изменение, которое я ожидал отменить. Он не очень эффективен, но может быть очень эффективным, чтобы гарантировать, что код находится в состоянии, которое действительно ожидалось.

Ответ 2

Во-первых, кажется, что не все операции выделения записываются в стек отмены/повтора.

  • Переключить выделение расширения (CTRL + M/CTRL + M) записывается в стек
  • Toggle All Outlining (CTRL + M/CTRL + L) записывается в стек
  • Свернуть в определения (CTRL + M/CTRL + O) НЕ записывается в стек

Итак, насколько мне известно, невозможно избежать записи операций Toggle в стеке отмены/повтора в Visual Studio 2008.

Единственный вариант, который у вас есть, чтобы включить/отключить выделение для каждого типа источника. Для С# очертание может быть включено/отключено в Tools > Options > Text Editor > C# > Advanced с помощью флажка "Enter outlining mode when files open".

Ответ 4

Лучшее решение, которое я могу предложить, - отключить выделение с помощью CTRL + M, затем CTRL + P.