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 Code, рефакторингът в 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 (не е нужно да натискате втория 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
Хм, имам 2015 Enterprise и това е 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
@Ama страхотно! :-Д - 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 Explorer, ако ви мързи да щракнете с десния бутон като мен.

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, което извежда изскачащ прозорец за рефакторинг и ми позволява да избера текущия обхват по подразбиране, както и други екземпляри в същия файл.

Refactoring PopUp

Ето пример за променлива, която преименувах във функция. Там имаше друга функция със същото име на променлива, която предлага да се преименува...

Меню за преработване

person Gatica    schedule 10.09.2015
comment
Отлично!! Работи за мен (в VS2013) - person BlueBright; 19.07.2018

Бързи бележки: Ctrl + . работи. Но не и ако натиснете backspace и след това преименувате името на променливата.

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

Ако маркирате S в SenderEmail и замените буквата и след това използвате Ctrl + . ще видите изскачащ прозорец за преименуване на променливата. Ако добавите буква към променливата, това все още работи. Ако изтриете, пак работи.

Въпреки това, и това е, което правя често - ако натиснете backspace на 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