簡體   English   中英

VSCode:將鍵命令分配給片段?

[英]VSCode: Assign key command to a snippet?

在以前的編輯器中,我有用戶,特別是SublimeText和Atom,我能夠創建一個簡單的命令來添加像 這樣的字符  當我輸入option-space

例如,在Atom中,我在init.coffee創建了命令:

atom.commands.add 'atom-text-editor',
 'editor:insert-nbsp': (event) ->
   editor = @getModel()
   editor.insertText(' ')

然后是簡單部分,一個用於調用自定義命令的鍵綁定:

  'alt-enter': 'editor:insert-br'

在vscode中,我知道如何執行后者(創建鍵綁定)但是如何創建命令。

我意識到我可以創建一個片段,我已經制作了幾個,但我想基本上觸發  帶有鍵綁定的片段。

我怎樣才能做到這一點?

您可以創建一個Keybinding並為其分配一個Snippet

為此,您必須使用editor.action.insertSnippet作為command ,並使用args屬性中的代碼段名稱。

請遵循以下示例:

```

{
    "key": "ctrl+shift+alt+i",
    "command": "editor.action.insertSnippet",
    "args": {
        "name": "YourSnippetName" // name of a snippet defined by an extension or user
    }
}

```

從1.9開始,它在VSCode中實際上要容易得多:

{
 "key": "alt+space",
 "command": "type",
 "args": {
   "text": " "
 },
 "when": "editorTextFocus"
},

我遇到了麻煩,所以這里是創建一個鍵綁定,片段並將它們鏈接在一起的整個過程:

1.創建一個代碼段

  1. 文件>首選項>用戶代碼段>新的全局代碼段文件...

    這將提示您創建片段文件。

  2. 無論如何命名新的Snippet文件,我將其命名為“global”

    這將創建一個名為global.code-snippets的文件

  3. 創建您的代碼段

    新的代碼段文件將有一個注釋掉的示例。 只是取消注意跟隨。

  4. 保存文件

    您現在擁有一個包含一個代碼段的全局文件。 通常,代碼段文件將包含許多代碼段,並根據工作空間,環境或其他內容進行划分 - 這超出了此范圍,但是一旦您開始創建更高級的代碼段,您就可以掌握它。

2.創建密鑰綁定

  1. 文件>首選項>鍵盤快捷鍵

    這將打開您的鍵盤快捷鍵菜單

  2. 在編輯器窗口的右上角,找到看起來像括號=> {} =>的按鈕

    這將打開keybindings.json ,這是一個可以存儲自定義鍵盤快捷鍵的文件。

  3. 在編輯器窗格的底部,您將看到一個按鈕,顯示“ 定義鍵綁定(Ctrl + K Ctrl + K) ”單擊該按鈕

    這將提示您輸入組合鍵。

  4. Ctrl Shift c ,然后按Enter

    記錄Ctrl + Shift + c,Enter自動為該組合鍵創建新的鍵綁定。

3.將Keybinding鏈接到Snippet

如果您不需要更深入的解釋,那么最后您的新鍵綁定應該是什么樣子:

[
    {
        "key":"ctrl+shift+c",
        "command": "editor.action.insertSnippet",
        "when": "editorTextFocus",
        "args": {
            "name": "Print to console"
        }
    }
]
  1. 在鍵綁定中,將命令更改為“editor.action.insertSnippet”

    "command": "editor.action.insertSnippet",

  2. 添加一個args鍵,它的值是一個對象

    *當您開始輸入args VSCode將接收它並建議代碼完成,繼續按Tab鍵或輸入,它將自動為您輸入引號並構建一個空對象。

    "args": {}

  3. args對象內,添加name

    *與以前相同,只需鍵入名稱,VSC將建議代碼完成,接受它,並將構建必要的語法。

    "args": { "name": "" }

  4. name是指代碼段名稱,它是代碼段對象的第一個元素。 對於我們的示例,這將是“打印到控制台”。

    "args": { "name": "Print to console" }

4.確保它有效

  1. 創建或打開一個javascript文件(任何以.js結尾的文件)
  2. Ctrl Shift c
  3. console.log('')可以打印在您的文件中
  4. 如果它不起作用,請確保名稱完全匹配 - 大寫很重要!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM