วิธีสลับตัวพิมพ์ข้อความในรหัส Visual Studio


161

เราจะเปลี่ยนกรณีของข้อความที่ไฮไลต์ใน Visual Studio Code ได้อย่างไร VS อนุญาตผ่าน CTRL + SHIFT + U และ CTRL + U

มีการผูกคำสั่งที่ฉันสามารถตั้งค่าให้ทำสิ่งนี้ได้หรือเป็นค่าเริ่มต้นของคีย์ผสมอื่น


ฉันไม่พบทางลัดที่เกี่ยวข้องในการผูกคีย์ อาจไม่รองรับฟังก์ชันนี้ในเวอร์ชันปัจจุบัน
yushulx

3
อัปเดต: ได้รับการสนับสนุนแล้ว ไปที่ไฟล์> ค่ากำหนด> แป้นพิมพ์ลัดและค้นหา "Transform"
Dinei

คำตอบ:


218

สะท้อนความคิดเห็นของjustanotherdev :

เหลือเชื่อและมีประโยชน์:

  1. Command Palette: CTRL+ SHIFT+ p(Mac: CMD+ SHIFT+ p)
  2. พิมพ์>transformเลือกตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กแล้วกด Enter

ป้อนคำอธิบายภาพที่นี่


18
เป็นไปได้ที่จะกำหนดค่าการ
เชื่อมโยง

2
pycharm ใช้คำสั่งเดียวกัน CTRL + SHIFT + "u" เพื่อสลับ ทำไมต้องสร้างทางลัด 2 ทางในเมื่อสามารถใช้งานได้ ฉันตระหนักดีว่านี่ไม่ใช่คำตอบเป็นเพียงความคิดเห็น
davidj411

1
บางครั้งคุณมี "ข้อความตัวพิมพ์ใหญ่แบบผสม" ที่คุณต้องการไปที่ "ALL UPPERCASE" หรือ "ตัวพิมพ์เล็กทั้งหมด" โดยตรงดังนั้นการเปลี่ยนเป็นตัวพิมพ์ใหญ่และการเปลี่ยนเป็นตัวพิมพ์เล็กแยกกันจึงเหมาะสมกว่า
drigoangelo

57

ฉันได้เขียนส่วนขยาย Visual Studio Code สำหรับการเปลี่ยนตัวพิมพ์ (ไม่ใช่เฉพาะตัวพิมพ์ใหญ่ตัวเลือกอื่น ๆ อีกมากมาย): https://github.com/wmaurer/vscode-change-case

ในการแมปคำสั่งตัวพิมพ์ใหญ่กับการผูกแป้น (เช่นCtrl+ T U) ให้คลิกไฟล์ -> การตั้งค่า -> แป้นพิมพ์ลัดและแทรกสิ่งต่อไปนี้ลงในการกำหนดค่า json:

{
  "key": "ctrl+t u",
  "command": "extension.changeCase.upper",
  "when": "editorTextFocus"
}




แก้ไข:

ด้วยการอัปเดต VSCode เดือนพฤศจิกายน 2559 (บันทึกประจำรุ่น)มีการสนับสนุนในตัวสำหรับการแปลงเป็นตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผ่านคำสั่งeditor.action.transformToUppercaseและeditor.action.transformToLowercase. สิ่งเหล่านี้ไม่มีการเชื่อมโยงคีย์เริ่มต้น

เปลี่ยนแปลงกรณีที่ส่วนขยายยังคงมีประโยชน์สำหรับการแปลงข้อความอื่น ๆ เช่น CamelCase, PascalCase งูกรณีอื่น ๆ


"ctrl + t u" ใช้ไม่ได้กับฉันในเวอร์ชัน mac ฉันใช้ "ctrl + u" แทนเนื่องจากไม่ได้แมปโดยค่าเริ่มต้นกับการกระทำใด ๆ
Shahar

10
สำหรับคนขี้เกียจ: เลือกข้อความ ctrl + p พิมพ์>transformเลือกตัวพิมพ์เล็กหรือใหญ่แล้วกด Enter
justanotherdev

ภาคผนวกของความคิดเห็นของ @ justanotherdev: เป็นไปได้ที่จะกำหนดค่าการเชื่อมโยงคีย์สำหรับคำสั่งนี้ในไฟล์> การตั้งค่า> แป้นพิมพ์ลัด
Dinei

ไม่มีวิธีใดที่จะทำให้ตัวเลือกเหล่านี้ปรากฏในเมนูคลิกขวา (แบบที่ Nptepad ++ ทำ)
smooth_smoothie

บอกตามตรงว่าเป็นกระบวนการที่เร็วกว่าสำหรับฉันแถมยังอบอยู่แล้วและไม่จำเป็นต้องมี 'Yet Another Extension'
KhoPhi

38

ยกมาจากโพสต์นี้:

คำถามเกี่ยวกับวิธีทำให้ CTRL + SHIFT + U ทำงานใน Visual Studio Code นี่คือวิธีการทำ (เวอร์ชัน 1.8.1 ขึ้นไป) คุณยังสามารถเลือกคีย์ผสมอื่นได้

ไฟล์ -> การตั้งค่า -> แป้นพิมพ์ลัด

ตัวแก้ไขจะปรากฏขึ้นพร้อมkeybindings.jsonไฟล์ วาง JSON ต่อไปนี้ไว้ที่นั่นแล้วบันทึก

[
 {
    "key": "ctrl+shift+u",
    "command": "editor.action.transformToUppercase",
    "when": "editorTextFocus"
 },
 {
    "key": "ctrl+shift+l",
    "command": "editor.action.transformToLowercase",
    "when": "editorTextFocus"
 }
]

ตอนนี้ CTRL + SHIFT + U จะใช้อักษรตัวพิมพ์ใหญ่ที่เลือกแม้ว่าจะมีหลายบรรทัดก็ตาม ในทำนองเดียวกัน CTRL + SHIFT + L จะทำให้ข้อความที่เลือกเป็นตัวพิมพ์เล็ก

คำสั่งเหล่านี้สร้างขึ้นใน VS Code และไม่จำเป็นต้องมีส่วนขยายใด ๆ เพื่อให้ทำงานได้


เย็น! นี่คือคำตอบที่คำถามถามหา!
Nowdeen

ผมไปcmd+shift+uและcmd+shift+lใน MacOS รู้สึกถูกต้อง
ทฤษฎี

สำหรับ Linux ctrl + shift + u ไม่ทำงานดังนั้นให้ใช้คีย์ ctrl + u แทนตัวพิมพ์ใหญ่ & ctrl + l สำหรับตัวพิมพ์เล็ก
Jitendra Pawar

11

หากต้องการมีในVisual Studio Codeสิ่งที่คุณสามารถทำได้ในSublime Text ( CTRL+K CTRL+UและCTRL+K CTRL+L) คุณสามารถทำได้:

  • เปิด " แป้นพิมพ์ลัด " โดยคลิกที่ " ไฟล์ -> ค่ากำหนด -> แป้นพิมพ์ลัด "
  • คลิกลิงก์ " keybindings.json " ซึ่งปรากฏในช่อง " Search keybindings "
  • ระหว่าง[]วงเล็บเพิ่ม:

    {
        "key": "ctrl+k ctrl+u",
        "command": "editor.action.transformToUppercase",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+k ctrl+l",
        "command": "editor.action.transformToLowercase",
        "when": "editorTextFocus"
    }
    
  • บันทึกและปิด " keybindings.json "


อีกวิธีหนึ่ง:
Microsoft เปิดตัว "Sublime Text Keymap and Settings Importer"ซึ่งเป็นส่วนขยายที่นำเข้าการเชื่อมโยงและการตั้งค่าจาก Sublime Text เป็น VS Code - https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings


1
ฉันไม่รู้ว่ามันใหม่หรือเปล่า แต่เมื่อฉันทำสิ่งนี้สิ่งที่ต้องทำก็คือใส่ "ตัวพิมพ์ใหญ่" ในช่องค้นหาที่ปรากฏขึ้นจากนั้นคลิก "+" เพื่อเพิ่มการจับคู่ใหม่ ทำซ้ำโดยใช้ "ตัวพิมพ์เล็ก" เพื่อปิดทิศทางอื่นและฉันก็พร้อมแล้ว
torpy

3

สำหรับผู้ที่กลัวว่าจะทำอะไรเสียหายในการตั้งค่า vscode json ของคุณสิ่งนี้ค่อนข้างง่ายที่จะปฏิบัติตาม

  1. เปิด"File -> Preferences -> Keyboard Shortcuts" หรือ"Code -> Preferences -> Keyboard Shortcuts"สำหรับผู้ใช้ Mac

  2. transformในประเภทแถบค้นหา

  3. โดยค่าเริ่มต้นคุณจะไม่มีอะไรอยู่Keybindingข้างใต้ ตอนนี้ดับเบิลคลิกบนหรือTransform to LowercaseTransform to Uppercase

  4. กดปุ่มที่คุณต้องการเพื่อตั้งค่าการผูกแป้น ในกรณีนี้หากคัดลอกออกจาก Sublime i จะกดctrl+shift+uสำหรับตัวพิมพ์ใหญ่หรือctrl+shift+lตัวพิมพ์เล็ก

  5. กดEnterบนแป้นพิมพ์ของคุณเพื่อบันทึกและออก ทำเช่นเดียวกันกับตัวเลือกอื่น ๆ

  6. สนุก KEYBINDING


1

ฉันคิดว่านี่เป็นฟีเจอร์ที่ขาดหายไปในตอนนี้

ฉันสังเกตเห็นเมื่อฉันทำคำแนะนำเกี่ยวกับความแตกต่างของแป้นพิมพ์ลัดระหว่างมันกับ Sublime

เป็นตัวแก้ไขใหม่ฉันจะไม่แปลกใจเลยถ้าพวกเขาเพิ่มกลับเข้าไปในเวอร์ชันใหม่

ที่มา: https://code.visualstudio.com/Docs/customization


1

ตอนนี้การสลับตัวพิมพ์ใหญ่และตัวพิมพ์เล็กสามารถทำได้พร้อมกันในสตริงที่เลือกผ่านการแทนที่นิพจน์ทั่วไป (regex, CtrlH+ AltR) ตามเวอร์ชัน v1.47.3 มิถุนายน 2020 :

การเปลี่ยนกรณีข้อความที่แตกต่างกันในการเลือกครั้งเดียว

สิ่งนี้ทำได้ผ่านคลาสอักขระ "อักขระเดี่ยว" 4 คลาส (เอกสาร Perl)กล่าวคือสำหรับกลุ่มที่ตรงกันตามหลัง :

  • \ l <=> [[:lower:]]: อักขระตัวแรกกลายเป็นตัวพิมพ์เล็ก
  • \ u <=> [[:upper:]]: อักขระตัวแรกกลายเป็นตัวพิมพ์ใหญ่
  • \ L <=> [^[:lower:]]: อักขระทั้งหมดจะกลายเป็นตัวพิมพ์เล็ก
  • \ U <=> [^[:upper:]]: อักขระทั้งหมดจะกลายเป็นตัวพิมพ์ใหญ่

$0จับคู่กลุ่มที่เลือกทั้งหมดในขณะที่$1ตรงกับกลุ่มที่ 1 กลุ่ม$2ที่ 2 เป็นต้น

กดปุ่ม Match Caseที่ด้านซ้ายของแถบค้นหา (หรือAltC) และยืมตัวอย่างจากคำตอบ Sublime Text แบบเก่าตอนนี้ทำได้แล้ว:

  1. ใช้คำเป็นตัวพิมพ์ใหญ่
  • ค้นหา: (\s)([a-z])( \sจับคู่ช่องว่างและบรรทัดใหม่เช่น "venuS" => "VenuS")
  • แทนที่: $1\u$2
  1. ใช้คำไม่เป็นทุน
  • หา: (\s)([A-Z])
  • แทนที่: $1\l$2
  1. ถอดเคสอูฐตัวเดียว (เช่น cAmelCAse => camelcAse => camelcase)
  • หา: ([a-z])([A-Z])
  • แทนที่: $1\l$2
  1. ตัวพิมพ์เล็กทั้งหมดจากตัวอักษรตัวพิมพ์ใหญ่ภายในคำ (เช่น LowerCASe => ตัวพิมพ์เล็ก)
  • หา: (\w)([A-Z]+)
  • แทนที่: $1\L$2
  • แทนที่สำรอง: \L$0
  1. ตัวพิมพ์ใหญ่ทั้งหมดจากตัวอักษรพิมพ์เล็กภายในคำ (เช่น upperCASe => uPPERCASE)
  • หา: (\w)([A-Z]+)
  • แทนที่: $1\U$2
  1. ตัวพิมพ์ใหญ่ก่อนหน้า (เช่น upperCase => UPPERCase)
  • หา: (\w+)([A-Z])
  • แทนที่: \U$1$2
  1. ตัวพิมพ์เล็กก่อนหน้า (เช่น LOWERCase => lowerCase)
  • หา: (\w+)([A-Z])
  • แทนที่: \L$1$2
  1. พิมพ์ใหญ่ส่วนที่เหลือ (เช่น upperCase => upperCASE)
  • หา: ([A-Z])(\w+)
  • แทนที่: $1\U$2
  1. ตัวพิมพ์เล็กที่เหลือ (เช่น lOWERCASE => lOwercase)
  • หา: ([A-Z])(\w+)
  • แทนที่: $1\L$2
  1. Shift-right-uppercase (เช่น Case => cAse => caSe => casE)
  • หา: ([a-z\s])([A-Z])(\w)
  • แทนที่: $1\l$2\u$3
  1. Shift-left-uppercase (เช่น CasE => CaSe => CAse => Case)
  • หา: (\w)([A-Z])([a-z\s])
  • แทนที่: \u$1\l$2$3
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.