ทางลัดใน Visual Studio Code สำหรับ console.log คืออะไร


คำตอบ:


184

อัปเดตเมื่อกุมภาพันธ์ 2019:

ตามคำแนะนำของAdrian Smithและคนอื่น ๆ : หากคุณต้องการผูกแป้นพิมพ์ลัดเพื่อสร้างคำสั่งบันทึกคอนโซลคุณสามารถทำสิ่งต่อไปนี้:

  1. ไฟล์> การตั้งค่า> แป้นพิมพ์ลัด
  2. เหนือแถบค้นหาทางด้านขวาคุณจะเห็นไอคอนที่เมื่อคุณวางเมาส์เหนือคำว่า"เปิดแป้นพิมพ์ลัด (JSON)"ให้คลิกที่ไอคอนนั้น
  3. เพิ่มสิ่งนี้ในการตั้งค่า JSON:
{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
  }
}

การกดCTRL+ SHIFT+ Lจะส่งออกข้อมูลโค้ดคอนโซล นอกจากนี้หากคุณได้เลือกข้อความไว้แล้วข้อความจะถูกใส่ไว้ในคำสั่งบันทึก


หากคุณต้องการ intellisene / autocomplete:

ไปที่Preferences -> User Snippets -> เลือกtypescript (หรือภาษาอะไรก็ได้ที่คุณต้องการ) jsonไฟล์ควรเปิด คุณสามารถเพิ่มข้อมูลโค้ดได้ที่นั่น

มีตัวอย่างสำหรับconsole.logแสดงความคิดเห็นอยู่แล้ว:

"Print to console": {
    "prefix": "log",
    "body": [
        "console.log('$1');",
        "$2"
    ],
    "description": "Log output to console"
}

คุณต้องทำสิ่งนี้สำหรับทุกภาษาที่คุณต้องการใช้ตัวอย่าง ... เป็นเรื่องที่น่ารำคาญ


นอกจากนี้คุณควรตั้งค่า"editor.snippetSuggestions": "top"เพื่อให้ตัวอย่างข้อมูลของคุณปรากฏเหนือ intellisense ขอบคุณ @Chris!

คุณสามารถค้นหาคำแนะนำตัวอย่างได้ในการตั้งค่า -> ตัวแก้ไขข้อความ -> คำแนะนำ


3
สิ่งนี้เคยใช้งานได้ แต่มันไม่ได้อีกต่อไปเนื่องจากอาจมีการอัปเดตครั้งล่าสุด? มันเป็นแค่ฉัน? s17.postimg.org/5mxnx4umn/2017_02_14_11h10_03.jpg
Cristian Muscalu

คำนำหน้าที่กำหนดไว้ข้างต้นคือ "log" ดังนั้นการพิมพ์ "c" จะไม่ช่วยอะไร) ให้เริ่มพิมพ์ "l" แทน
Sebastian Sebald

อ้อลืมบอกไปว่าเปลี่ยนไปใช้ "c" แล้ว ฉันไม่ได้เปลี่ยนแปลงอะไรเลยและหลังจากอัปเดตแล้วก็ใช้งานไม่ได้อีกต่อไป ไม่มีข้อมูลโค้ดอีกต่อไป แต่"prefix": "c",ควรทำให้ใช้กับ "c" ได้ใช่ไหม
Cristian Muscalu

หากทุกอย่างถูกต้อง ใช่. โปรดทราบว่าคุณต้องเพิ่มข้อมูลโค้ดลงในแต่ละภาษาที่คุณต้องการใช้ ดังนั้นหากคุณเพิ่มลงใน TS มันจะไม่ทำงานใน JS ในทางกลับกัน
Sebastian Sebald

1
คุณสามารถคลิกที่{}ปุ่มข้างแถบค้นหาเพื่อเปิดkeybindings.jsonไฟล์ - วิธีที่ง่ายที่สุดเนื่องจากฉันไม่สามารถเห็นข้อความ"สำหรับการปรับแต่งขั้นสูงให้เปิดและแก้ไข keybindings.json" !
Aashish Chaubey

73

คำตอบทั้งหมดข้างต้นใช้งานได้ดี แต่ถ้าคุณไม่ต้องการเปลี่ยนการกำหนดค่าของโค้ดวิชวลสตูดิโอ แต่ต้องการการเติมข้อความอัตโนมัติสำหรับconsole.log(object); คุณสามารถใช้clgทางลัดนี้และกดCtrl+ Spaceเพื่อรับคำแนะนำและกดEnter
หมายเหตุ : คุณสมบัตินี้สามารถใช้ได้ เมื่อคุณติดตั้งส่วนขยายข้อมูลโค้ด JavaScript (ES6)

ในทำนองเดียวกันคุณมีการเติมข้อความอัตโนมัติสำหรับ:

  • clgสำหรับconsole.log(object);
  • cloสำหรับconsole.log('object :', object);
  • cclสำหรับconsole.clear(object);
  • cerสำหรับconsole.error(object);
  • ctrสำหรับ console.trace(object);
  • cltสำหรับconsole.table(object);
  • cinสำหรับconsole.info(object);
  • ccoสำหรับconsole.count(label);

    (รายการนี้ดำเนินต่อไป ... )

อ้างอิง:

  1. ลิงค์สำหรับข้อมูลโค้ด JavaScript (ES6):

https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets

ใส่คำอธิบายภาพที่นี่

  1. ดูตัวอย่างจาก Visual Studio Code:

ใส่คำอธิบายภาพที่นี่


5
สมบูรณ์แบบ. +1. นี่คือสิ่งที่ฉันกำลังมองหา - ไม่ต้องทำการเปลี่ยนแปลงการกำหนดค่าใด ๆ
ริส 22

41

คำตอบอันดับต้น ๆ ของ @Sebastian Sebald นั้นดีมาก แต่ก็ประสบปัญหาที่คล้ายกัน (ไม่ใช่ console.log โดยเฉพาะ แต่มัน "หายไป") ฉันต้องการให้คำตอบด้วย

คำนำหน้าของคุณแน่นอนทำงาน - โดยเริ่มต้นและในกรณีของคุณที่คุณได้เปลี่ยนไปlog cเมื่อคุณพิมพ์log(หรือc) VSCode จะสร้างรายการ "all the things ™" ทั้งหมดโดยพิจารณาจากปัจจัยหลายประการ (เช่นฉันไม่รู้ว่าปัจจัยอะไรอาจเกี่ยวข้องกับคลาส)

สิ่งต่างๆเช่นตัวอย่างมักจะโน้มเอียงไปทางด้านล่าง หากต้องการชนไปด้านบนแม้จะมีความยาวให้เพิ่มสิ่งนี้ในการตั้งค่าของคุณ:

"editor.snippetSuggestions": "top"

3
คุณคือฮีโร่ที่ฉันต้องการ ขอบคุณ!
BinarySolo

1
ฮาไม่ต้องกังวลเลย
คริส

ฉันได้รับข้อผิดพลาดว่าProperty editor.snippetSuggestions is not allowedมันเกี่ยวกับอะไร?
Bossan

@Bossan "editor.snippetSuggestions": "top"ควรอยู่ในไฟล์ settings.json ( ctrl+shift+pและประเภทuser settings) หรือคุณสามารถค้นหาคุณสมบัตินี้ในการตั้งค่าผู้ใช้ทั่วไป (การตั้งค่า> การตั้งค่า) และใช้เมนูแบบเลื่อนลงเพื่อเปลี่ยนเป็นtop.
บอร์โดซ์

34

ประเภทและตีlog enterมันจะทำให้สมบูรณ์อัตโนมัติconsole.log();


ดูเหมือนว่าฉันจะมีข้อผิดพลาดที่การพิมพ์logและการกด Enter จะแสดงผลconsole.log();ในบางครั้งเท่านั้นและฉันไม่สามารถหาสาเหตุ เป็นแค่ฉันหรือคนอื่นสามารถพิมพ์logแล้วป้อนและได้console.log();ผลลัพธ์ที่สม่ำเสมอทุกครั้ง?
Ben Clarke

2
คุณต้องรอสองสามมิลลิวินาที / วินาทีเพื่อให้บรรทัดคำสั่งควบคุมสิ่งที่คุณพิมพ์ บางครั้งก็ล่าช้าเล็กน้อย
nedemir

25

ใน Atom มีทางลัดที่ดีสำหรับ console.log () และฉันต้องการสิ่งเดียวกันใน VS Code

ฉันใช้วิธีแก้ปัญหาโดย@kampแต่ฉันต้องใช้เวลาสักพักในการคิดหาวิธีทำ นี่คือขั้นตอนที่ฉันใช้

  1. ไปที่: ไฟล์> ค่ากำหนด> แป้นพิมพ์ลัด

  2. ที่ด้านบนของหน้าคุณจะเห็นข้อความว่า: สำหรับการปรับแต่งขั้นสูงให้เปิดและแก้ไข keybindings.json

คลิกที่ลิงค์

  1. ซึ่งจะเปิดสองบานหน้าต่าง: การเชื่อมโยงคีย์เริ่มต้นและการเชื่อมโยงที่คุณกำหนดเอง

ป้อนรหัสในบานหน้าต่างด้านขวา

  1. ใส่รหัสที่@kamp ให้มา

ขอบคุณสำหรับขั้นตอนโดยละเอียด
Moaaz Bhnas

23

วิธีอื่นคือเปิดไฟล์keybindings.jsonและเพิ่มคีย์ผสมที่คุณต้องการ ในกรณีของฉันมันคือ:

{
    "key": "cmd+shift+l",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "console.log($1)$0;"
    }
}

"ctrl + shift + c" สำหรับ "คีย์" นั้นง่ายกว่าเล็กน้อยในการคลิกด้วย IMO มือเดียวและยังไม่ได้ใช้การเชื่อมโยงคีย์อื่นหากคุณใช้การเชื่อม
โยง

15

ใครก็ตามที่กำลังมองหาสำหรับการปรับแต่งขั้นสูงเปิดและแก้ไข keybindings.json

ใส่คำอธิบายภาพที่นี่

คลิกไอคอนเล็ก ๆ นี้เพื่อเปิด keybindings.json

ใช้รหัสนี้เพื่อสร้างทั้ง console.log () & เพื่อสร้าง console.log ("Word") สำหรับข้อความที่เลือก

{
  "key": "ctrl+shift+l",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
  }
}

1
ขอบคุณบน Mac ต้องไปที่ code-> การตั้งค่า -> แป้นพิมพ์ลัดและกว่าจะคลิกที่ปุ่มนั้นแทนที่จะใส่ {... } ไว้ในอาร์เรย์
rdprado

1
ขอบคุณนะใครบางคนควรอัปเดตคำตอบที่ได้รับการยอมรับเพื่อให้ทุกคนสามารถข้าม 10 นาทีในการค้นหาได้
Kris Lamote

1
U ช่วยชีวิต Time Man ได้เยอะ !! ขอบคุณ
React Developer

สิ่งนี้ไม่มีใน mac ของฉัน ฉันต้องทำ cmd + shift + p แล้วค้นหาแป้นพิมพ์ลัด (JSON)
martinedwards

11

เมื่อคุณพิมพ์บันทึกคำคุณจะเห็นสิ่งนี้:

เลือกวิธีที่ระบุว่า Log to the console

เลือกตัวเลือกที่ระบุว่าล็อกเข้าสู่คอนโซลในกรณีที่คุณเห็นตัวเลือกการบันทึกที่แตกต่างกัน (โดยทั่วไปจะเป็นไปได้เมื่อคุณมีตัวระบุบางตัวพร้อมบันทึกชื่อ

คลิก Enter

console.log () พิมพ์โดยอัตโนมัติ!

Intellisense จะทำหน้าที่ของมัน!


9

ในกรณีที่ใครสนใจใส่ข้อความที่เลือกไว้ในconsole.log()คำสั่ง:

{
    "key": "cmd+shift+l",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "console.log(${TM_SELECTED_TEXT}$1)$0;"
    }
}

นี่มันเจ๋งมาก!
AJ Hsu

9

clg + แท็บ

หรือตามที่กล่าวไว้ข้างต้น

log + enter (ตัวเลือกที่สองในเมนูแบบเลื่อนลง)

นี่เป็นคำถามเก่า แต่ฉันหวังว่าจะมีประโยชน์กับคนอื่น


clg + tab ให้ChannelMergerNodeสำหรับฉัน!
jb

ฉันคิดว่าคุณต้องแก้ไขการ
เชื่อมโยงคีย์

9

ประเภท 'CLG' แล้วกดctrl+ spaceและตีมันอัตโนมัติจะเสร็จสมบูรณ์enter สำหรับสิ่งนี้คุณจะต้องติดตั้งส่วนขยายเช่นข้อมูลโค้ด JavaScript (ES6) เท่านั้นconsole.log()


นอกจากนี้ 'cwa' สำหรับ console.warn ()
Amir Shabani

6

ฉันไม่รู้ว่าฉันใช้นามสกุลอะไร แต่ฉันแค่พิมพ์บันทึกและกดแท็บเพื่อเติมข้อความอัตโนมัติ console.log (); วางเคอร์เซอร์ไว้ระหว่างวงเล็บปีกกา


3

นี่เป็นทางออกที่ดีกว่า

{
        "key": "cmd+shift+c",
        "command": "editor.action.insertSnippet",
        "when": "editorTextFocus",
        "args": {
            "snippet": "console.log('${TM_SELECTED_TEXT}', $TM_SELECTED_TEXT$1);"
        }
    }

และถ้าฉันต้องการให้บันทึกคอนโซลปรากฏขึ้นหนึ่งบรรทัดใต้ข้อความที่เลือก? สามารถทำได้ด้วยตัวอย่างข้อมูลหรือไม่
dziku86

2

ข้อความด้านล่างนี้เป็นข้อความที่เลือกโดยมีเครื่องหมายคำพูดเดี่ยว หวังว่าจะช่วยได้

// Place your key bindings in this file to overwrite the defaults
[{
    "key": "ctrl+shift+c",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "snippet": "console.log('${TM_SELECTED_TEXT}$1')$2;"
    }

}]

1

พิมพ์coและตีtabหรือenter.

ควรทำงานนอกกรอบ


ฉันคิดว่าสิ่งนี้อาจไม่น่าเชื่อถือมากนักหรือขึ้นอยู่กับส่วนขยาย สำหรับฉัน co + enter สร้างเพียงผลลัพธ์ข้อความและแท็บ co + สร้าง "ยืนยัน" แม้แต่ "ข้อเสีย" + แท็บก็สร้าง "คอนโซล"
Joel Peltonen

เปลี่ยนใจให้consoleฉัน
โจอี้บารุค

0

อีกทางเลือกหนึ่งคือคุณสามารถสร้างฟังก์ชันที่ง่ายต่อการเขียนซึ่งเรียกใช้ console.log จากนั้นเรียกใช้ฟังก์ชันนั้น

 var a = funtion (x) {console.log(x)}
 a(2*2);        //prints 4

1
นี่ไม่ได้ตอบคำถามของ OP เนื่องจากจะต้องนำเข้าในทุกโครงการและเป็นเพียงแค่ความรำคาญเท่านั้น การมี
Sweet Chilly Philly

0

ฉันใช้ autohotkey เพื่อให้ได้เอฟเฟกต์เดียวกันเพียงพิมพ์ "cc" แล้วเว้นวรรคแล้วมันจะส่งออกบันทึกคอนโซล ยังไม่ได้ลองตัวอย่างไม่แน่ใจว่าจะเปรียบเทียบอย่างไร

; vscode
#IfWinActive ahk_exe Code.exe

    SetTitleMatchMode 2

    ; Move by word - Backwards
    Capslock & d:: Send ^+k
    ::cc::console.log("test321:" {+}){left}
    ::cl::logger.info("test321:" {+}){left}
    ::cd::logger.debug("test321:" {+}){left}
    ::ss::JSON.stringify(test, null, 2){ctrl down}{left 3}{ctrl up}

#IfWinActive 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.