Bagaimana cara menekan dan menahan kunci dan mengulangnya di VSCode?

125

Saya menggunakan plugin vim dan saya biasanya menggulir vim hanya dengan menahan j. Dalam VSCode, memegang j hanya melakukan satu perintah j, tidak peduli berapa lama itu ditahan.

Bahkan dalam vscode vanilla ini juga tidak berfungsi - bermasalah jika Anda mencoba mengetik blok panjang ########################## untuk pemisah komentar. Ada ide bagaimana mengaktifkan fungsi ini?

jjcm.dll
sumber

Jawaban:

305

Untuk menonaktifkan Apple tekan dan tahan hanya untuk VSCode, jalankan perintah ini di terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Kemudian mulai ulang VSCode.

Untuk mengaktifkan kembali, jalankan perintah ini di terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Steve Burns
sumber
5
Bekerja dengan sempurna
texasbruce
2
menghargai versi "tidak memengaruhi hal-hal secara global" yang Anda berikan.
jrrs
2
ini tidak berfungsi untuk saya VSCode Versi 1.31.1 (1.31.1), macOS 10.14.2.
Cerah Patel
Ini membuatku gila. Solusi Anda bekerja dengan sempurna. Terima kasih telah membagikan ini.
muammar
1
Variasi yang berguna adalah dengan memberikan -appbendera alih-alih domain, karena nama aplikasi lebih mudah ditemukan daripada domain, terutama untuk versi VSCode yang tidak biasa. Saya menggunakan VSCodium build, jadi saya bisa mendapatkan efek yang diinginkan dengandefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young
40

Anda menggunakan OSX, benar? Jika demikian, masalahnya mungkin adalah "Tekan & Tahan" Apple, tempat Anda dapat memilih karakter alternatif saat ditekan lama.

Anda dapat menonaktifkan "fitur" ini dengan perintah default di terminal:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Anda harus memulai ulang VSCode setelahnya.

Untuk mengaktifkan kembali perilaku sebelumnya:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
kwood
sumber
1
Ini berhasil untuk saya. Fungsinya berfungsi dengan baik untuk saya di Atom, tetapi tidak vscode. Adakah alasan mengapa itu harus bekerja di satu dan bukan yang lain?
Matt
Anda juga dapat menonaktifkannya berdasarkan aplikasi, mungkin Atom mengirimkannya sebagai default (melalui defaults write com.github.atom ApplePressAndHoldEnabled -bool falseatau apa pun id domain yang benar)
kwood
Persis apa yang saya cari.
jasonleonhard
Ini berhasil untuk saya. Terima kasih!
Ishan Tomar
27

The resmi vim-plugin untuk Kode VS menyebutkan bagaimana memasangnya di MacOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
sumber
4
defaults delete -g ApplePressAndHoldEnabledadalah apa yang saya lewatkan. Itu masih mempertahankan perilaku default untuk aplikasi lain. 👍
Steven Lu
8

Jawaban dari Steve di atas tidak cukup berhasil untuk saya karena pengaturan global. Itu juga membuat saya penasaran tentang di mana menemukan com.microsoft.VScodenama domain untuk suatu aplikasi. Inilah yang berhasil untuk saya dan formulasi umum:

Untuk mengaktifkan pengulangan untuk aplikasi tertentu, seperti VSCode, pertama-tama pastikan bahwa tidak ada pengaturan global yang menggantikan.

defaults delete -g ApplePressAndHoldEnabled

Kemudian aktifkan pengaturan untuk aplikasi tertentu, Anda dapat menemukan nama domain aplikasi dengan menemukannya di Info.plistdokumen di bawah folder Konten tempat aplikasi diinstal.

Contoh

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

Kemudian atur pengaturan pada baris perintah.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Anda dapat menggunakan pola ini pengaturan khusus aplikasi lain juga. Pastikan saja bahwa pengaturan Anda tidak ditimpa secara global.

Untuk informasi lebih lanjut tentang defaultstipe defaults help. Satu catatan lagi, Anda tidak perlu menjalankan ini seolah- sudoolah pengguna Anda sudah menjadi admin.

Babakness
sumber
make sure that there isn't an overriding global setting Itulah yang berhasil untuk saya. Terima kasih
Kevin Friedheim
6

Jika Anda menggunakan Mac dan menggunakan VSCodium:

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

Penargetan jawaban lain com.microsoft.VSCodetidak berfungsi karena Anda tidak menjalankan MS VSCode. Perintah default writemenghasilkan / memperbarui file di ~/Library/Preferences/tambahkan dengan .plist, Anda harus menargetkan file yang benar.


Perangkat lunak dan versi saya:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (oleh vscodevim) 1.12.4 dengan neovim aktif
Neovim 0.4.3 Vim 8.1.2250

Kyle Chesney
sumber
0
Meskipun saya mengatur ulang dengan perintah yang disebutkan di atas dan bahkan setelah reboot, Begitu saya buka
VSCode mereka disetel ulang, jadi saya punya skrip 'kode' untuk mengaturnya kembali
setiap kali saya membuka editor VSCode.

 $ kode kucing
VSCODE_CWD = "$ PWD" open -n -b "com.microsoft.VSCode" - dikenakan biaya $ * &
default tulis com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
default hapus -g ApplePressAndHoldEnabled
satyavvd.dll
sumber
0

Bagi Anda di VS Code Insiders, cukup ubah pengenal Bundle menjadi:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Akan
sumber