Làm cách nào để nhấn và giữ một phím và nó lặp lại trong VSCode?


125

Tôi sử dụng plugin vim và tôi thường cuộn trong vim bằng cách chỉ giữ j. Trong VSCode, giữ j chỉ thực hiện một lệnh j duy nhất, bất kể nó được giữ trong bao lâu.

Ngay cả trong vani vscode, điều này cũng không hoạt động - có vấn đề nếu bạn đang cố nhập các khối dài ############################ cho dấu phân cách bình luận. Bất kỳ ý tưởng làm thế nào để kích hoạt chức năng này?

Câu trả lời:


305

Để tắt tính năng nhấn và giữ của Apple chỉ đối với VSCode, hãy chạy lệnh này trong một thiết bị đầu cuối:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Sau đó khởi động lại VSCode.

Để bật lại, hãy chạy lệnh này trong một thiết bị đầu cuối:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true

5
Hoạt động hoàn hảo
texasbruce

2
đánh giá cao phiên bản "không ảnh hưởng đến mọi thứ trên toàn cầu" mà bạn đã cung cấp.
jrrs

2
điều này không hoạt động đối với tôi VSCode Phiên bản 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel

Điều này đã khiến tôi phát điên. Giải pháp của bạn đã hoạt động hoàn hảo. Cảm ơn vì đã chia sẻ điều này.
muammar

1
Một biến thể hữu ích là cung cấp -appcờ thay vì miền, vì tên ứng dụng dễ tìm hơn miền, đặc biệt là đối với các bản dựng không điển hình của VSCode. Tôi sử dụng bản dựng VSCodium, vì vậy tôi đã có thể đạt được hiệu quả mong muốn vớidefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young

40

Bạn đang sử dụng OSX, đúng không? Nếu vậy, vấn đề có thể là "Nhấn và giữ" của Apple, nơi bạn có thể chọn các ký tự thay thế khi nhấn và giữ.

Bạn có thể tắt "tính năng" này bằng một lệnh mặc định trong terminal:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Bạn phải khởi động lại VSCode sau đó.

Để kích hoạt lại hành vi trước đó:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true

1
Điều này đã làm việc cho tôi. Chức năng hoạt động tốt đối với tôi trong Atom, nhưng không phải vscode. Bất kỳ lý do tại sao nó nên hoạt động trong một và không phải khác?
Matt

Bạn cũng có thể vô hiệu hóa nó trên cơ sở từng ứng dụng, có thể Atom vận chuyển điều này làm mặc định (thông qua defaults write com.github.atom ApplePressAndHoldEnabled -bool falsehoặc bất kỳ id miền chính xác nào)
kwood

Chính xác những gì tôi đang tìm kiếm.
jasonleonhard

Điều này đã làm việc cho tôi Cảm ơn!
Ishan Tomar

27

Các vim-plugin chính thức cho VS Mã đề cập đến làm thế nào để cài đặt nó trên hệ điều hành MacOS

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

4
defaults delete -g ApplePressAndHoldEnabledlà những gì tôi đã thiếu. Nó vẫn giữ hành vi mặc định cho các ứng dụng khác. 👍
Steven Lu

8

Câu trả lời của Steve ở trên không hoàn toàn phù hợp với tôi vì cài đặt chung. Nó cũng khiến tôi tò mò về nơi tìm com.microsoft.VScodetên miền cho một ứng dụng. Đây là những gì đã làm việc cho tôi và một công thức tổng quát:

Để bật lặp lại cho một ứng dụng cụ thể, như VSCode, trước tiên hãy đảm bảo rằng không có cài đặt chung ghi đè.

defaults delete -g ApplePressAndHoldEnabled

Sau đó bật cài đặt cho ứng dụng cụ thể, bạn có thể tìm thấy tên miền của ứng dụng bằng cách tìm tên miền đó trong Info.plisttài liệu trong thư mục Nội dung nơi nó được cài đặt.

Thí dụ

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

Sau đó thiết lập cài đặt trên dòng lệnh.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Bạn cũng có thể sử dụng mẫu này các cài đặt ứng dụng cụ thể khác. Chỉ cần đảm bảo rằng cài đặt của bạn không bị ghi đè trên toàn cầu.

Để biết thêm thông tin về defaultsloại defaults help. Một lưu ý nữa, bạn không cần phải chạy điều này như sudothể người dùng của bạn đã là quản trị viên.


make sure that there isn't an overriding global setting Đó là những gì đã làm cho tôi. Cảm ơn
Kevin Friedheim

6

Nếu bạn đang sử dụng mac và sử dụng VSCodium:

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

Nhắm mục tiêu câu trả lời khác com.microsoft.VSCodekhông hoạt động vì bạn không chạy MS VSCode. Lệnh default writetạo / cập nhật các tệp được ~/Library/Preferences/nối với .plist, bạn phải nhắm mục tiêu đúng tệp.


Phần mềm và các phiên bản của tôi:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (bởi vscodevim) 1.12.4 với Neovim được kích hoạt
Neovim 0.4.3 Vim 8.1.2250


0
Mặc dù tôi đã đặt lại bằng các lệnh đã đề cập ở trên và thậm chí sau khi khởi động lại, Khi tôi mở
VSCode chúng đang được đặt lại, vì vậy tôi đã có tập lệnh 'mã' để đặt chúng trở lại
mỗi khi tôi mở trình soạn thảo VSCode.

 $ cat code
VSCODE_CWD = "$ PWD" open -n -b "com.microsoft.VSCode" --args $ * &
mặc định ghi com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
mặc định xóa -g ApplePressAndHoldEnabled

0

Đối với những người trong số các bạn trên VS Code Insiders, chỉ cần thay đổi số nhận dạng Gói thành:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.