Không có giải pháp nào cho vấn đề này, về mặt làm cho Ctrl-Space đi qua thiết bị đầu cuối Bash, tại thời điểm viết bài này (ngày 1 tháng 9 năm 2016), có một cách giải quyết có thể đủ cho nhiều người dùng: sử dụng PuTTY để kết nối qua SSH, lực lượng xử lý Ctrl-Space. (Ở chế độ tty, không thể phân biệt Ctrl-Space với Ctrl- @, vì chúng là cùng một mã ký tự, nhưng đó không phải là vấn đề, vì theo mặc định, Emacs được thiết lập để xử lý set-mark-command
theo cách đó.)
- Cài đặt máy chủ OpenSSH với
sudo apt-get install openssh-server
. Nếu nó đã được cài đặt, hãy xóa nó ( sudo apt-get remove openssh-server
) và sau đó cài đặt lại để thiết lập lại tập tin cấu hình.
Chỉnh sửa tệp / etc / ssh / sshd_config (với sudo), như sau:
- Nếu có một thiết lập dòng không ghi chú
PermitRootLogin
, hãy nhận xét nó. Thêm một dòng PermitRootLogin no
.
- Thêm một dòng
AllowUsers USERNAME
, thay thế USERNAME bằng tên người dùng Linux của bạn (nếu bạn không biết đó là gì, hãy chạy lệnh whoami
tại dấu nhắc Bash của bạn).
- Tốt nhất là bạn nên thiết lập xác thực không cần mật khẩu bằng các khóa SSH, nhưng làm thế nào để thực hiện điều đó nằm ngoài phạm vi của câu hỏi này (có rất nhiều hướng dẫn có sẵn; tìm kiếm trên web cho "mật khẩu ssh-keygen"). Trong khi đó, thêm hoặc bỏ ghi chú dòng
PasswordAuthentication yes
.
- Đặt
UsePrivilegeSeparation no
; có khả năng bạn sẽ tìm thấy một dòng trong tập tin nói UsePrivilegeSeparation yes
; chỉ cần thay đổi yes
thành no
và lưu tệp / etc / ssh / sshd_config .
Nếu có lỗi xảy ra ở đây, bạn có thể khôi phục tệp bằng cách lặp lại bước # 1.
- Khởi động máy chủ SSH bằng lệnh
sudo service ssh --full-restart
.
- Sử dụng PuTTY (tải xuống tại đây ), đăng nhập
localhost
vào trường Tên máy chủ, mọi thứ khác được để mặc định. Bạn sẽ được yêu cầu nhập tên người dùng Linux và mật khẩu của bạn.
- Chạy đi
emacs
. Ctrl-space sẽ đặt dấu theo ý muốn.
(Lưu ý rằng các bước trên sẽ không tự mình làm cho hệ thống của bạn có thể chấp nhận kết nối SSH từ các máy chủ khác . Để làm điều đó, bạn cũng sẽ phải thay đổi quy tắc tường lửa Windows của mình để cho phép cổng TCP vào 22.)
Trong một câu trả lời khác, bạn nói, "nhưng putty không phải là một thiết bị đầu cuối cục bộ." Tôi không chắc chắn nếu bạn không biết rằng bạn có thể sử dụng localhost
theo cách này hoặc nếu bạn đã loại bỏ PuTTY vì chi phí hoạt động lớn hơn so với thiết bị đầu cuối cục bộ. Nếu sau này, tôi sẽ không lo lắng, một phiên SSH tương tác là một tải cực kỳ nhẹ. (Đó chắc chắn nhiều ít tải hơn chạy một hệ thống X Window, do đó bạn có thể chạy một GUI Emacs hoặc một xterm!)
Bất lợi thực sự duy nhất khi chạy theo cách này so với thiết bị đầu cuối thẳng là các sự kiện dán được gửi từng chữ cái, như thể bạn nhập nội dung của bảng tạm rất nhanh, có thể gây ra các cặp điện, sự cố, mở rộng đoạn trích, v.v. ngọn lửa. (Dán không được khiến các lệnh hợp âm phát ra, vì có logic để phát hiện dán đang diễn ra và vô hiệu hóa các hợp âm phím cho đến khi quá trình dán kết thúc.)
Và cũng có ít nhất một lợi thế rất lớn so với thiết bị đầu cuối Bash tiêu chuẩn: các sự kiện chuột được PuTTY hỗ trợ theo hình thức mà Emacs có thể phản hồi, vì vậy, trớ trêu thay, bạn có thể di chuyển điểm bằng chuột trong PuTTY ngay cả khi bạn có thể ' t với thiết bị đầu cuối địa phương.