Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Неcколько вопросов про редактор кода VS.


Автор: Vit 15.4.2007, 04:50
1. Как отметить вертикальный блок текста без мышки?

2. Как перейти от идентификатора к его определению? Допустим у меня в коде стоит какая-нибудь штука типа 

Код

SomeClass.SomeProcedure(Something);


Определение SomeClass и SomeProcedure находится где-то в другом файле, заведомо неизвестном для меня, допустим проект писал не только я, не искать же мне по диску все файлы в которых упоминается SomeClass и SomeProcedure , да и гарантии нет что они берутся из одного файла в котором я их нашёл а не и  из другого. В борландовских средах это решалорсь кликом мышки на идентификатор с нажатым ctrl - это там работало как гиперлинк, а здесь как?

3. Code folding имеет крупное неудобство: допустим у меня есть длинючая функция, на пол сотен строк кода, я её плюсиком скатал в одну строку - она лежит себе одной строкой и никому не мешает, теперь мне в процессе разработки понадобилось её закоментировать - опа, она при этом открылась и у меня теперь под рукой мешается туева хуча кода в рабочем файле. В Home Site есть удобная приблуда - там можно так плюсиком скрыть люые строки кода, а не только какую-то логическую конструкцию типа класса или процедуры. Есть ли что-то в VS для такого?



Автор: Idsa 15.4.2007, 05:51
1. Похоже я неправильно понял вопрос... но все же: выставляешь курсор в начало блока, зажимаешь Shift и жмешь вниз стрелками или PageDown. В общем, стандартный для винды способ.
2. Устанавливаешь курсор на искомое имя и жмешь F12.
3. Пишешь вот так:
Код

#region regionName
...
#endregion

В результате у тебя появится еще один плюс/минус напротив начала региона.

Автор: Vit 15.4.2007, 06:03
Цитата(Idsa @  14.4.2007,  20:51 Найти цитируемый пост)
1. Похоже я неправильно понял вопрос... но все же: выставляешь курсор в начало блока, зажимаешь Shift и жмешь вниз стрелками или PageDown. В общем, стандартный для винды способ.


Я имел ввиду вертикальный блок, а не поточный. Если не знаешь что это такое, попробуй в редакторе кода в VS или в MS Word мышаком отметить блок удерживая нажатым Alt smile

Цитата(Idsa @  14.4.2007,  20:51 Найти цитируемый пост)
2. Устанавливаешь курсор на искомое имя и жмешь F12.


Спасибо!

Цитата(Idsa @  14.4.2007,  20:51 Найти цитируемый пост)
3. Пишешь вот так:


А эта директива #region - для чего она вообще? Именно для этого, или для чего-то другого, а тут её просто приспособили?

Автор: Hurricane 15.4.2007, 06:07
1. Нажимаешь Ctrl+Alt и тянешь мышкой, будет прямоугольный блок.

2. См. ответ Idsa или через right-click menu, Go to Definition. (В С++ таким же образом можно и Go to Declaration - перейти к объявлению переменной/метода, обычно  в .h файле)


Автор: Vit 15.4.2007, 06:12
Цитата(Hurricane @  14.4.2007,  21:07 Найти цитируемый пост)
Нажимаешь Ctrl+Alt и тянешь мышкой, будет прямоугольный блок.



Вопрос стоит: БЕЗ МЫШКИ. Терпеть не могу пользоваться при работе с редактором мышаком, предпочитаю с кодом работать исключительно с помощью клавиатуры. 

Автор: Idsa 15.4.2007, 06:14
Цитата(Hurricane @  15.4.2007,  06:07 Найти цитируемый пост)
В С++ таким же образом можно и Go to Declaration - перейти к объявлению переменной/метода, обычно  в .h файле

Ага, в C#, если щелкнуть по имени класса, можно перейти к метаданным.

Автор: Vit 15.4.2007, 06:17
Цитата(Idsa @  14.4.2007,  21:14 Найти цитируемый пост)
Ага, в C#, если щелкнуть по имени класса, можно перейти к метаданным.



А если мне надо перейти не к метаданным, а к реализации этого класса?

Автор: Hurricane 15.4.2007, 06:19
Цитата(Vit @ 14.4.2007,  22:12)
Вопрос стоит: БЕЗ МЫШКИ. Терпеть не могу пользоваться при работе с редактором мышаком, предпочитаю с кодом работать исключительно с помощью клавиатуры.

Пора отвыкать от этих юниксоидных заморочек!  smile

Если честно - не знаю. Тоже долго мучался от необходимости хвататься за мышь каждый раз после 8 лет в vi/vim/gvim/emax и т.д.

Автор: Idsa 15.4.2007, 06:26
Цитата(Vit @  15.4.2007,  06:17 Найти цитируемый пост)
А если мне надо перейти не к метаданным, а к реализации этого класса?

Насколько я понимаю, VisualStudio будет выдавать по возможности код, и только в случае отсутствия такой возможности будет выдавать метаданные. Т. е., например, щелкаем на объект своего класса Form1, которой наследуется от Form, студия выдает реализацию. Потом щелкаем на класс Form. Т. к. кода для этого класса у нас нет (ну не умеет студия юзать Reflector  smile), получаем метаданные.

Автор: Vit 15.4.2007, 06:27
Цитата(Hurricane @  14.4.2007,  21:19 Найти цитируемый пост)
Пора отвыкать от этих юниксоидных заморочек! 



При чём тут юникс? У меня просто зрение плохое, мне трудно присматриваться к экрану и точно втыкивть мышак туда куда надо, я всё время промахиваюсь, или вынужден сильно напрягать глаза, а через 2 часа такой работы начинает болеть голова... А с помощью клавиатуры не надо каждую секунду проверять где находится курсор мышки, можно глазами вообще  смотреть на монитор только очень периодически, а смотреть в диаграммы кода, в справочник и т.п.  Да и с помощью клавиатуры гораздо быстрее большинство вещей делается, если только знать бОльшую часть клавиатурных комбинаций... Естественно это не относится к визуальному проектированию форм или работе в фотошопе, но в текстовом редакторе - увольте, ЛЮБАЯ операция должна иметь клавиатурный аналог, а будет ли кто ей пользоваться или нет - это уже десятый вопрос - вы не будете, я буду, и не говорите что я увечный из-за этого...

Автор: Hurricane 15.4.2007, 06:51
Цитата(Vit @ 14.4.2007,  22:27)
При чём тут юникс? У меня просто зрение...

Да я пошутил, даже смайлик там поставил... Не обижайся, извини, если что.

Магическое слово - Alt+Shift+стрелки.

Кстати, насчет необходимости клавиатурных команд для всего - совершенно согласен.

Автор: Vit 15.4.2007, 21:18
Цитата(Hurricane @  14.4.2007,  21:51 Найти цитируемый пост)
Да я пошутил, даже смайлик там поставил... Не обижайся, извини, если что.


Да я и не обижаюсь, наоборот очень рад и благодарен что Вы мне помогаете. А на Линух с vi, emax и т.п. у меня аллергия, за три года работы с ним я так и не проникся их продвинутостью по сравнению с хорошими виндовыми текстовыми редакторами...


Цитата(Hurricane @  14.4.2007,  21:51 Найти цитируемый пост)
Магическое слово - Alt+Shift+стрелки.


Тут очень странно... Я вообще-то пробовал эту комбинацию так как она фактически стандартна для вертикальных блоков в виндовых редакторах, и не получив должного результата, написал в форум. Когда Вы мне про неё сказалия, я решил перепроверить  - она таки работает, но немного не так как в других редакторах - если VS  нажать сначала Shift и начать отмечать блок, то добавление Alt не превращает поточный блок в вертикальный, как в других редакторах - надо сразу жать и Shift и Alt, поэтому я её и не обнаружил....

Автор: Naum 16.4.2007, 14:04
Цитата(Vit @  15.4.2007,  07:12 Найти цитируемый пост)
Терпеть не могу пользоваться при работе с редактором мышаком,

К счастью, в OpenSource'овом мире есть много программ-надстроек над студией для повышения скорости и удобства коддинга. К сожалению, я помню ссылку только на одну из таких программ.  smile 
http://weblogs.asp.net/gmilano/archive/2006/05/10/446010.aspx

Автор: Vit 16.4.2007, 14:13
Цитата(Naum @  16.4.2007,  05:04 Найти цитируемый пост)
К счастью, в OpenSource'овом мире есть много программ-надстроек над студией для повышения скорости и удобства коддинга. К сожалению, я помню ссылку только на одну из таких программ



Я тоже одну знаю - Дельфи называется... Только мне надо научится работать именно в VS.

Автор: Naum 16.4.2007, 14:21
Цитата(Vit @  16.4.2007,  15:13 Найти цитируемый пост)
Только мне надо научится работать именно в VS.

Так у этих CoolComands есть хорошая фича. Если делаешь в студии что-то мышкой. В строке состояния пишется как это можно было бы сделать при помощи hotkeys. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)