Ярлыки / фрагменты для выбора блока кода

8

Я использую SQL Server Management Studio 2016 в Windows 10. Мне надоело использовать клавиши shift / ctrl + up / down / right / left для выбора кода, который я хочу запустить. Мне интересно, есть ли ярлыки / фрагменты для выбора блока кода, который отделен от другого кода пустыми строками?

Вот пример кода:

select *
from tab1

select *
from tab2

select *
from tab3

Скажем, мой курсор находится внутри среднего блока, и как лучше выбрать средний блок?

Джейсон
источник
1
JetBrains DataGrip (Ctrl + Enter). Дешево тоже. Темный интерфейс тоже.
Нельц,

Ответы:

4

Я не связан с Red-Gate, но хотел бы отметить, что если вы нажмете Shift-F5, когда у вас будет новая копия SQL-запроса, запрос, на котором находится ваш курсор, будет помечен зеленым и выполнен ,

Это действительно спасло меня от множества нажатий клавиш.

Хенрик Стаун Поулсен
источник
Большое спасибо за ваш ответ! Я попробовал sql prompty, и это было удивительно! Я подумаю о покупке после пробной версии!
Джейсон
1
Обратите внимание, что на самом деле он не выбирает код, поскольку вы не можете использовать этот метод для копирования блока кода, который был выполнен.
Томас Раштон
4

Используя Autohotkey, я смог разработать решение для выбора блока кода, и вот мой скрипт:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

В частности, нажатие Alt + B вызовет этот скрипт, и скрипт выберет блок кода, в котором находится курсор. Обратите внимание, что блок кода должен быть отделен от других блоков кода пустыми строками, и блок кода не может иметь пустых строк внутри себя.

Ключевые шаги скрипта about:

  • используя регулярное выражение «^ \ r $», чтобы найти пустые строки над и под курсором

  • перемещая курсор на эти две пустые строки одну за другой

  • используя ctrl + =, чтобы выбрать блок кода между этими двумя пустыми строками.

Обратите внимание, что! / ^ / + - это alt / ctrl / shift отдельно.

Джейсон
источник
Я не знал, что вы могли бы сделать это с AutoHotKey. Намного дешевле, чем SQL Prompt. Спасибо за публикацию.
Хенрик Стаун Поульсен,
3

Одним из способов быстрого выбора блоков кода в SSMS является сведение к минимуму кода с помощью -кнопки рядом с ведущим ключевым словом в выражении SQL (например, SELECT, UPDATE, DELETE, WITH и т. Д.), Затем выделите эту строку и нажмите, F5чтобы выполнить ее.

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

В зависимости от вашей версии SSMS (в данном случае, очевидно, предпочтительнее более новые версии), существуют также некоторые сочетания клавиш, которые можно использовать для свертывания / развертывания раздела. Ссылка клавиш обеспечивается ранее ссылается ответа Саймон Хеллингс горячие клавиши уже быть множество, но я не могу подтвердить , что они на самом деле работают. Тем не менее, вы можете установить некоторые пользовательские горячие клавиши, чтобы сделать это следующим образом:

  1. Функции, для которых мы задаем горячие клавиши, находятся в Edit-> OutliningПараметры меню: введите описание изображения здесь

  2. Чтобы установить горячие клавиши, перейдите к Tools-> Options...-> Environment-> Keyboard-> Keyboard. Введите Outlinв Показать команды , содержащие: поле. Затем назначьте новые сочетания клавиш для Edit.ToggleAllOutliningи Edit.ToggleOutliningExpansionи нажмите Assign: введите описание изображения здесь

  3. Теперь проверьте, какие сочетания клавиш выполняются после нажатия кнопки «ОК», и ваши сочетания клавиш должны работать как положено. Как вы можете видеть, я назначил мой для CTRL+ALT+Left Arrowи CTRL+ALT+Right Arrow, но вы можете использовать все, что вы хотите: введите описание изображения здесь

Наконец, если это не сработает, вам, возможно, придется переключиться на другой клиент SQL. Похоже, что функциональность, которую вы хотите, похожа на выполнение блока Oracle PL / SQL через CTRL + ENTEROracle SQL Developer. Вы можете использовать Oracle SQL Developer для подключения к SQL Server с помощью драйверов сторонних баз данных JDBC ( ссылка ), но я не рекомендую это делать.

Джон Айсбренер
источник
Да, только этого достаточно для установки Toad и использования F9. У жабы есть свой набор причуд.
crokusek
Спасибо за ответ! Как я могу сложить узел дерева без использования мыши?
Джейсон
@Jason - я обновил свой ответ с помощью сочетаний клавиш. Вам понадобится более новая версия SSMS, так как эта функция была доступна не во всех версиях, как указано в предоставленной мной URL-ссылке.
Джон Айсбренер,
@JohnEisbrener, спасибо за помощь, и я проверю их!
Джейсон
@JohnEisbrener, я пытался протестировать предложенную вами новую комбинацию клавиш, но ни одна из них не работает для меня. Я использую новейшую версию SSMS, которая является версией 13.0.16106.4. Вы когда-нибудь проверяли их самостоятельно?
Джейсон
2

Ни в коем случае не используйте клавиши up/ down/ right/ leftдля выбора кода для запуска.

Предполагая, что можно использовать компьютерную мышь, сделайте следующее:

  1. Используйте мышь вашего компьютера, чтобы переместить курсор на первый символ, который будет включен.
  2. Далее Удерживать вниз и продолжайте удерживать вниз на Ctrlключ, а затем переместите мышь , чтобы включить последний символ , который будет включен.
  3. Продолжайте удерживать Ctrlклавишу, затем нажмите Eклавишу, которая выполнит выделенный текст.

Если вы хотите удалить только что выполненный код, продолжайте удерживать Ctrlклавишу, а затем нажмите Deleteклавишу.

Я предполагаю, что возможно, что кто-то создал инструмент, чтобы сделать это автоматически.

ДКП
источник
Спасибо за ответ! Я знаю, как использовать ctrl / shift с помощью мыши для выбора кода и чувствую, что это немного медленнее по сравнению с короткими клавишами / фрагментами. Известны ли вам какие-либо ярлыки / фрагменты, которые могут автоматически выбирать код?
Джейсон
4
@RLF, я награжу ваш ответ повышенным голосом за успешный троллинг (умышленно или нет, не имеет значения.)
Даниэль
1

Я не думаю, что это возможно. Смотрите полный список стандартных сочетаний клавиш здесь . Вы можете настроить что-то из инструментов -> меню настроек

Саймон Хеллингс
источник
Спасибо за Ваш ответ! Если ярлыки невозможны, знаете ли вы какие-либо фрагменты для этого?
Джейсон
Не то, чтобы я мог думать
Саймон Хеллингс