用 [ 和 ] 包围列名的键盘快捷键

Keyboard shortcut to surround a column name with [ and ]

我想知道 SSMS 中是否有一个键盘快捷键可以用 [ 和 ] 字符包围选定的列名称(或给定光标位置的连续字符序列)。

因此,如果我有 user_id 并按 CTRL + SHIFT + [ + ] 之类的按钮,它将变成 [user_id]。有这样的快捷键吗?

括号中的文本周围没有开箱即用的键盘快捷键,但您可以使用自定义片段创建自己的键盘快捷键。您可以查看此 blog post 以获得清晰的步骤,但我将在此处简要列出它们。

打开记事本并粘贴此 xml。另存为 brackets.snippet:

<?xml version="1.0" encoding="utf-8" ?>  
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">  
<_locDefinition xmlns="urn:locstudio">  
    <_locDefault _loc="locNone" />  
    <_locTag _loc="locData">Title</_locTag>  
    <_locTag _loc="locData">Description</_locTag>  
    <_locTag _loc="locData">Author</_locTag>  
    <_locTag _loc="locData">ToolTip</_locTag>  
   <_locTag _loc="locData">Default</_locTag>  
</_locDefinition>  
<CodeSnippet Format="1.0.0">  
<Header>  
<Title>Brackets</Title>  
                        <Shortcut>br</Shortcut>  
<Description>Snippet for Brackets</Description>  
<Author>SQL Super Hero</Author>  
<SnippetTypes>  
                                <SnippetType>SurroundsWith</SnippetType>  
</SnippetTypes>  
</Header>  
<Snippet>  
<Declarations>  
                                <Literal>  
                                <ID>OpenBracket</ID>  
                                <Default>[</Default>  
                                </Literal>  

                                <Literal>  
                                <ID>CloseBracket</ID>  
                                <Default>]</Default>  
                                </Literal>  
</Declarations>  
<Code Language="SQL"><![CDATA[$OpenBracket$$selected$$CloseBracket$$end$]]>  
</Code>  
</Snippet>  
</CodeSnippet>  
</CodeSnippets>

在 SSMS 中,转到“工具”>“代码片段管理器”。

点击导入。找到 Brackets.snippet 文件并单击打开

选择“我的代码片段”作为位置并单击完成

关闭并重新打开 SQL Server Management Studio

您现在应该能够使用代码段将突出显示的文本括在括号中。访问代码片段的键盘快捷键是 ctrl+k、ctrl+s

执行此操作的最有效方法是按以下顺序按键:

突出显示所需文本 > Ctrl+K,Ctrl+S > M > Enter > Enter > Enter

我使用 AutoHotKey 脚本来执行此操作。您可以 Google 了解如何设置 AHK。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GET RID OF BRACKETS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; winkey + Z

#z::

ClipSaved := ClipboardAll

Send ^c
Clipwait
Sleep 100
str := clipboard
str := RegExReplace(str, "\[|\]")       ; Match '[' or ']' - have to escape each with backslash - and replace with nothing
clipboard := str
Sleep 100
Send ^v

Clipboard := ClipSaved

return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ADD BRACKETS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; winkey + V

#v::

ClipSaved := ClipboardAll

Send ^c
Clipwait
Sleep 100
str := clipboard
str := "[" . str . "]"
str := RegExReplace(str, "\.", "].[")
clipboard := str
Sleep 100
Send ^v

Clipboard := ClipSaved

return

用法:突出显示您的文本并按相应的热键。目前,这些宏分别设置为使用 Windows 键 + Z / V,但可以轻松更改。

add brackets 宏有点挑剔,因为它会在您选择的任何内容的结尾和开头添加一个括号,即使有空格 - 这可以修复,但我个人在选择时没有遇到问题正是我想要的。