VisualStudio: ярлык для переименования переменной

В Visual Studio, когда вы переименовываете имя переменной в ее определении, в последней букве есть небольшое подчеркивание, поэтому, если вы наведете на нее курсор, вы получите параметр «Переименовать OldVaribleName в NewVariableName» и, таким образом, переименовать все записи в этой процедуре этого Переменная.

Есть ли ярлык для этого и не использовать мышь?


person InfoStatus    schedule 08.07.2009    source источник


Ответы (12)


Они известны как смарт-теги.

Вы можете использовать CTRL+.

Shift+Alt+F10 — еще один вариант.

person Ahmad Mageed    schedule 08.07.2009
comment
Ни один из них не работает для меня (VS2012). Должен ли я как-то активировать смарт-теги? - person alex; 08.06.2014
comment
Мне интересно, зависит ли это от языка или версии. Ни одно из решений ничего не делает для меня в MSVS C++ 2010. - person Kat; 19.07.2014
comment
У меня не работает в MS VS Express 2013 (ни 2012) в режиме JavaScript (при создании приложений для Windows Phone). - person Dimitry K; 09.01.2015
comment
В Visual Studio 2013 это теперь рефакторинг с использованием CTRL+R для C#. . Неуверенность в отношении других языков программирования. - person Baldvin Th; 12.01.2015
comment
Да, CTRL+R, а затем CTRL+R — это быстрый способ переименовать переменные: docs.microsoft.com/en-us/visualstudio/ide/reference/ - person Cristina Carrasco; 30.03.2020
comment
Это работает в коде Visual Studio, рефакторинг в Visual Studio (по крайней мере, 2017 и 2019) Ctrl+R, R - person kres0345; 16.10.2020

В качестве обновленного ответа...

Обновление для Visual Studio 2019

То же поведение, что и в 2017 году.

Обновление для Visual Studio 2017

В Visual Studio 2017 щелкните переменную и нажмите Ctrl + r, r. Это работает без проблем (см. комментарии ниже о различиях в Visual Studio 2015, где нужно было повторить всю команду).

Visual Studio 2015

В Visual Studio 2015, если щелкнуть переменную и использовать Ctrl + r, Ctrl + r, она заблокирует имя переменной и выделит все экземпляры переменной. Затем, когда вы начнете вводить новое имя переменной, оно сразу переименует все экземпляры. Нажмите Enter, чтобы выйти, как только вы закончите (примечание: между версиями обновления могут существовать различия. См. комментарии ниже).

Изменить: одно предупреждение об этом подходе. Если вы используете Razor в своих представлениях, он не обязательно будет переименовывать эти переменные. Я не проводил эмпирического эксперимента, чтобы увидеть, есть ли определенные случаи, когда он их подбирает или не подбирает, но у меня определенно было несколько случаев, когда он переименовывал более строго типизированные переменные в коде на стороне сервера (DAL и контроллеры). ), но не просмотры.

person joshmcode    schedule 24.06.2016
comment
На самом деле это Ctrl + R, R (вам не нужно нажимать Ctrl на второй R, но вы можете). F2 по-прежнему работает, но я предпочитаю Ctrl + R, R. Использование F2 заставляет меня смотреть на клавиатуру. - person Jason Enochs; 27.06.2016
comment
@JasonEnochs На самом деле я пробовал просто Ctrl + R, R на своем VS 2015 Professional, и это не работает. Я должен нажать Ctrl + R 2 раза по какой-то причине. Если вы щелкните правой кнопкой мыши переменную и посмотрите на функцию Rename, там также будет написано Ctrl + R, Ctrl + R. Не уверен, почему это отличается между машинами. - person joshmcode; 27.06.2016
comment
Хм, у меня Enterprise 2015, и на моей машине это Ctrl + R, R (на самом деле работает в обе стороны). Эта ссылка Microsoft также должна быть Ctrl + R, R. visualstudioshortcuts.com/2015 В любом случае, превосходит F2. - person Jason Enochs; 30.06.2016
comment
У меня Visual Studio 2017. Ctrl+rвозвращает меня в обозреватель решений, затем повторное нажатие r возвращает меня к первому файлу, начинающемуся с буквы r.. F2 открываю обозреватель объектов.. что со мной не так? :') - person Ama; 18.10.2019
comment
@Ama при установке Visual Studio обычно спрашивает, какие сопоставления по умолчанию вы хотите использовать. Варианты включают Visual Studio, Vim, Emacs и т. Д. Похоже, у вас применяются неправильные сопоставления. Может быть, проверить свои сопоставления в опциях? - person joshmcode; 23.10.2019
comment
Я вижу, в Tools / Options / Environment / Keyboard была включена схема сопоставления Visual Basic 6. Переключил его на Visual C# 2005, и он работает как шарм! - person Ama; 23.10.2019
comment
@Ама здорово! :-D - person joshmcode; 24.10.2019
comment
Сначала попытался нажать Ctrl+Shift+r, Ctrl+Shift+r, потому что вы написали R в верхнем регистре, но в VS2019 работает Ctrl+r, Ctrl+r. - person Angel; 02.11.2019
comment
@ V.7 достаточно справедливо. Я отредактировал r в нижнем регистре, чтобы избежать путаницы. - person joshmcode; 06.11.2019
comment
В представлениях Razor строго типизированные ссылки на переменную переименовываются только в том случае, если файл в данный момент открыт на вкладке (из того, что я наблюдал в VS2019). - person Extragorey; 27.01.2021

В зависимости от того, какую схему раскладки клавиатуры вы используете по умолчанию, вы можете просто нажать F2, чтобы вызвать Переименовать, прежде чем вводить изменение текста.

Если в вашей версии VS не назначена клавиша F2, вы можете переименовать ее в главном меню программы:

  • Инструменты >> Параметры
  • В диалоговом окне параметров разверните Среда и выберите Клавиатура.
  • Введите File.Rename в поле поиска "Показать команды, содержащие".
  • Выберите текстовое поле «Нажмите клавиши быстрого доступа» и нажмите F2.
  • Нажмите Назначить.

скриншот

person jp2code    schedule 25.02.2015
comment
Это хорошо, но вопрос касается переименования переменных, а не переименования файлов. - person basher; 17.11.2015
comment
@basher - после настройки все, что вам нужно сделать, это нажать F2, если вы хотите переименовать переменную. Глобальная команда называется File.Rename, но поскольку вы находитесь в окне редактирования текста редактора кода, переименование файла в любом случае будет запрещено. Итак, это сопоставляет команду переименования с переименованием переменной. - person jp2code; 17.11.2015
comment
ха! Приятно. На основании этого имени не подумал бы. Я копаю идею ярлыка F2 для этого, поскольку это то, что обычно использует Windows. - person basher; 17.11.2015
comment
В Visual Studio 2019 мне пришлось назначить его не File.Rename, а Refactor.Rename, тогда это сработало. - person user2728841; 11.10.2019
comment
В VS 2017 для «Refactor.Rename» установлено значение Ctrl+R, Ctrl+R (Global), а для «File.Rename» установлено значение F2 (Team Explorer). Однако ни один из них не работает для меня .. - person Ama; 18.10.2019

Ctrl + h работает для меня Удачи

person Yuval    schedule 20.09.2015

В VS 2008 с использованием C# вы можете просто нажать F2, но не уверены в других версиях/языках. Это также переименовывает файлы в проводнике Windows, если вы слишком ленивы, чтобы щелкнуть правой кнопкой мыши, как я.

person Brett    schedule 08.07.2009
comment
Для меня это самый удобный способ. - person VSO; 22.04.2019

Я думаю, что по умолчанию используется Ctrl + ..

person Brandon    schedule 08.07.2009
comment
действует только для клавиатур США), французская клавиатура AZERTY, например, . приводит к Shift+; комбинация и не работает в VS. - person serhio; 01.06.2011
comment
@serhio: при использовании французской клавиатуры AZERTY сочетание клавиш по умолчанию — Ctrl + ;. - person Otiel; 16.05.2014

Если хотите, я бы посоветовал вам попробовать ReSharper, он предоставляет множество функций для рефакторинга вашего код.

В ReSharper для переименования переменной или функции просто используйте сочетание клавиш CTRL+R, R.

(Я знаю, что это может быть не ответ на ваш вопрос, но я думаю, что если вам нравится использовать сочетания клавиш, вам понравится ReSharper).

person Nordes    schedule 08.07.2009

В Visual Studio 2013 перечисленные сочетания клавиш Ctrl+. , F2 и т. д. у меня не работали.

Я обнаружил, что установка Рефакторинг Visual C++ расширение решило мою проблему.

Теперь я могу использовать Ctrl+R, что вызывает всплывающее окно рефакторинга и позволяет мне выбрать текущую область по умолчанию, а также другие экземпляры в том же файле.

Рефакторинг всплывающего окна

Вот пример переменной, которую я переименовал в функции. Там была еще одна функция с таким же именем переменной, которую она предлагает переименовать...

Меню рефакторинга

person Gatica    schedule 10.09.2015
comment
Превосходно!! Работает на меня (в VS2013) - person BlueBright; 19.07.2018

Краткие примечания: Ctrl + . работает. Но не в том случае, если вы нажмете клавишу Backspace, а затем переименуете имя переменной.

например переименуйте SenderEmail в senderEmail.

Если вы выделите S в SenderEmail и замените букву, а затем используете Ctrl + ., вы увидите всплывающее окно для переименования переменной. Если вы добавите букву в переменную, это все равно будет работать. Если удалить, то все равно работает.

Тем не менее, и это то, что я часто делаю - если вы нажмете клавишу SenderEmail и сделаете его enderEmail, а затем добавите s, сделав его senderEmail, а затем нажмите Ctrl + . так не пойдет.

Аналогично работает Shift+Alt+F10.

Надеюсь это поможет! :)

person Jose Aedayodi    schedule 05.07.2016

После переименования: CTRL+.

Перед переименованием: CTRL+r,r

VS 2017, смарт-теги включены

person msysmilu    schedule 11.12.2018

Искал это в 2019 году... Мне помогло перейти в «Параметры» и добавить ярлык в команду Refactor.Rename, например это

person Charlie Araya    schedule 08.08.2019

Я использую ctrl + f

Он открывает окно, которое вы можете использовать для поиска и замены всех вхождений слова. Вы можете заменить слово в «Текущий документ», «Все открытые документы», «Текущий проект» или «Все решение» в раскрывающемся меню под кнопкой с надписью «Заменить все», когда вы наводите на нее указатель мыши.

Надеюсь, это поможет.

введите здесь описание изображения

person Overloaded_Operator    schedule 20.05.2015
comment
Смысл функции рефакторинга переименования заключается в том, что она переименовывает на основе символа, то есть имени переменной, поэтому она будет переименовывать переменную только на основе ее области действия и использования, а не совпадения текста. - person James Westgate; 29.07.2015
comment
Большинство пользователей знают, как использовать поиск/замену. На мой взгляд, вопрос явно заключается в том, чтобы задать ярлык для переименования этой конкретной переменной в этой конкретной области и ее применения во всей этой области, например, Alt + Shift + R в Eclipse. - person Gatica; 10.09.2015