ฉันจะกดปุ่มค้างไว้แล้วทำซ้ำใน VSCode ได้อย่างไร


126

ฉันใช้ปลั๊กอิน vim และฉันมักจะเลื่อนเป็นกลุ่มโดยเพียงแค่ถือ j ใน VSCode ถือ j เพียงแค่ทำคำสั่ง j เดียวไม่ว่าจะถือไว้นานแค่ไหนก็ตาม

แม้แต่ใน vanilla vscode สิ่งนี้ก็ใช้ไม่ได้เช่นกัน - เป็นปัญหาหากคุณพยายามพิมพ์ ############################ สำหรับ ตัวคั่นความคิดเห็น มีความคิดอย่างไรในการเปิดใช้งานฟังก์ชันนี้

คำตอบ:


307

หากต้องการปิดใช้งาน Apple กดค้างไว้สำหรับ VSCode เท่านั้นให้รันคำสั่งนี้ในเทอร์มินัล:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

จากนั้นรีสตาร์ท VSCode

หากต้องการเปิดใช้งานอีกครั้งให้รันคำสั่งนี้ในเทอร์มินัล:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true

5
ทำงานได้อย่างสมบูรณ์
texasbruce

2
ขอขอบคุณเวอร์ชัน "ไม่ส่งผลกระทบต่อสิ่งต่างๆทั่วโลก" ที่คุณระบุ
jrrs

2
สิ่งนี้ใช้ไม่ได้สำหรับฉัน VSCode เวอร์ชัน 1.31.1 (1.31.1), macOS 10.14.2
Sunny Patel

นี่ทำให้ฉันแทบคลั่ง โซลูชันของคุณทำงานได้อย่างสมบูรณ์ ขอบคุณสำหรับการแบ่งปันสิ่งนี้
muammar

1
รูปแบบที่มีประโยชน์คือการให้-appแฟล็กแทนโดเมนเนื่องจากชื่อแอปนั้นหาได้ง่ายกว่าโดเมนโดยเฉพาะอย่างยิ่งสำหรับการสร้าง VSCode ที่ผิดปกติ ฉันใช้โครงสร้าง VSCodium ดังนั้นฉันจึงได้เอฟเฟกต์ที่ต้องการด้วยdefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young

40

คุณใช้ OSX ใช่ไหม หากเป็นเช่นนั้นปัญหาอาจเกิดจาก "กดค้าง" ของ Apple ซึ่งคุณสามารถเลือกอักขระทางเลือกในการกดแบบยาวได้

คุณสามารถปิดใช้งาน "คุณลักษณะ" นี้ด้วยคำสั่งเริ่มต้นในเทอร์มินัล:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

คุณต้องรีสตาร์ท VSCode ในภายหลัง

ในการเปิดใช้งานพฤติกรรมก่อนหน้านี้อีกครั้ง:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true

1
สิ่งนี้ได้ผลสำหรับฉัน ฟังก์ชันนี้ใช้งานได้ดีสำหรับฉันใน Atom แต่ไม่ใช่ vscode เหตุผลใดที่ควรใช้งานได้ในที่เดียวไม่ใช่อย่างอื่น
Matt

คุณสามารถปิดใช้งานในแต่ละแอปพลิเคชันได้เช่นกันอาจเป็นไปได้ว่า Atom จัดส่งสิ่งนี้เป็นค่าเริ่มต้น (ผ่านdefaults write com.github.atom ApplePressAndHoldEnabled -bool falseหรืออะไรก็ตามที่เป็นรหัสโดเมนที่ถูกต้อง)
kwood

สิ่งที่ฉันกำลังมองหา
jasonleonhard

สิ่งนี้ได้ผลสำหรับฉันขอบคุณ!
Ishan Tomar

27

อย่างเป็นทางการเป็นกลุ่มปลั๊กอินสำหรับ VS รหัสกล่าวถึงวิธีการที่จะตั้งขึ้นใน MacOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default

4
defaults delete -g ApplePressAndHoldEnabledคือสิ่งที่ฉันขาดหายไป ยังคงรักษาลักษณะการทำงานเริ่มต้นสำหรับแอปอื่น ๆ 👍
Steven Lu

8

คำตอบของ Steve ข้างต้นไม่ได้ผลสำหรับฉันเนื่องจากการตั้งค่าทั่วโลก นอกจากนี้ยังทำให้ฉันสงสัยว่าจะหาcom.microsoft.VScodeชื่อโดเมนสำหรับแอปได้ที่ไหน นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันและสูตรทั่วไป:

ในการเปิดใช้งานการทำซ้ำสำหรับแอปเฉพาะเช่น VSCode ก่อนอื่นให้ตรวจสอบว่าไม่มีการตั้งค่าส่วนกลางที่ลบล้าง

defaults delete -g ApplePressAndHoldEnabled

จากนั้นเปิดใช้งานการตั้งค่าสำหรับแอพเฉพาะคุณสามารถค้นหาชื่อโดเมนของแอพได้โดยค้นหาในInfo.plistเอกสารภายใต้โฟลเดอร์ Contents ที่ติดตั้ง

ตัวอย่าง

<key>CFBundleIdentifier</key>
<string>com.microsoft.VSCode</string>

จากนั้นตั้งค่าในบรรทัดคำสั่ง

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทdefaults defaults helpอีกหนึ่งหมายเหตุคุณไม่จำเป็นต้องเรียกใช้สิ่งนี้ราวกับsudoว่าผู้ใช้ของคุณเป็นผู้ดูแลระบบอยู่แล้ว


make sure that there isn't an overriding global setting นั่นคือสิ่งที่ทำเพื่อฉัน ขอบคุณ
Kevin Friedheim

6

หากคุณใช้เครื่อง Mac และใช้ VSCodium:

defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false

คำตอบอื่น ๆ ที่กำหนดเป้าหมายcom.microsoft.VSCodeไม่ทำงานเนื่องจากคุณไม่ได้ใช้ MS VSCode คำสั่งdefault writeสร้าง / อัปเดตไฟล์ที่~/Library/Preferences/ต่อท้ายด้วย.plistคุณต้องกำหนดเป้าหมายไฟล์ที่ถูกต้อง


ซอฟต์แวร์และเวอร์ชันของฉัน:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (โดย vscodevim) 1.12.4 ที่เปิดใช้งาน
neovim Neovim 0.4.3 Vim 8.1.2250


0
แม้ว่าฉันจะรีเซ็ตด้วยคำสั่งที่กล่าวถึงข้างต้นและแม้กระทั่งหลังจากรีบูตเมื่อฉันเปิด
VSCode พวกเขากำลังถูกรีเซ็ตดังนั้นฉันจึงมีสคริปต์ 'รหัส' เพื่อตั้งค่ากลับ
ทุกครั้งที่ฉันเปิดโปรแกรมแก้ไข VSCode

 $ cat code
VSCODE_CWD = "$ PWD" เปิด -n -b "com.microsoft.VSCode" --args $ * &
ค่าเริ่มต้นเขียน com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
ค่าเริ่มต้นลบ -g ApplePressAndHoldEnabled

0

สำหรับพวกคุณใน VS Code Insiders เพียงแค่เปลี่ยน Bundle identifier เป็น:

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