ไม่มีวิธีแก้ปัญหานี้ในแง่ของการทำ Ctrl-Space ผ่านขั้ว Bash ในขณะที่เขียนนี้ (1 ก.ย. 2559) - แต่มีวิธีแก้ไขที่อาจเพียงพอสำหรับผู้ใช้หลายคน: ใช้ PuTTY เพื่อเชื่อมต่อผ่าน SSH ซึ่งบังคับให้จัดการกับ Ctrl-Space (ในโหมด tty เป็นไปไม่ได้ที่จะแยกความแตกต่าง Ctrl-Space จาก Ctrl- @ เนื่องจากเป็นรหัสอักขระเดียวกัน แต่ไม่น่าจะมีปัญหาเพราะโดยปกติแล้ว Emacs จะถูกตั้งค่าเพื่อจัดการกับset-mark-command
วิธีดังกล่าว)
- ติดตั้งเซิร์ฟเวอร์ OpenSSH
sudo apt-get install openssh-server
ด้วย หากติดตั้งไว้แล้วให้ลบออก ( sudo apt-get remove openssh-server
) จากนั้นติดตั้งใหม่เพื่อรับไฟล์รีเซ็ต
แก้ไขไฟล์/ etc / ssh / sshd_config (with sudo) ดังนี้:
- หากมีการตั้งค่าบรรทัดที่ไม่ใส่เครื่องหมายคอมเม้นต์ให้ใส่เครื่องหมาย
PermitRootLogin
ออก PermitRootLogin no
เพิ่มบรรทัด
- เพิ่มบรรทัด
AllowUsers USERNAME
แทนที่ USERNAME ด้วยชื่อผู้ใช้ Linux ของคุณ (หากคุณไม่ทราบว่าคืออะไรให้รันคำสั่งwhoami
ที่พรอมต์ Bash ของคุณ)
- เป็นการดีที่คุณควรตั้งค่าการรับรองความถูกต้องแบบไม่ใช้รหัสผ่านโดยใช้คีย์ SSH แต่วิธีการดังกล่าวอยู่นอกขอบเขตของคำถามนี้ (มีคำแนะนำมากมายให้ใช้งานค้นหาเว็บสำหรับ "รหัสผ่าน ssh-keygen" แบบไม่มีรหัสผ่าน) ในระหว่างนี้ให้เพิ่มหรือยกเลิก
PasswordAuthentication yes
หมายเหตุบรรทัด
- ชุด
UsePrivilegeSeparation no
; มีโอกาสมากที่คุณจะพบบรรทัดในไฟล์ที่พูดว่าUsePrivilegeSeparation yes
; เพียงแค่เปลี่ยนyes
ไปno
และบันทึกetc / SSH / sshd_config /ไฟล์
หากมีบางอย่างผิดพลาดคุณสามารถกู้คืนไฟล์ได้โดยทำซ้ำขั้นตอนที่ 1
- เริ่มต้นเซิร์ฟเวอร์ SSH
sudo service ssh --full-restart
กับคำสั่ง
- ใช้ PuTTY (ดาวน์โหลดที่นี่ ) เข้าสู่ระบบด้วย
localhost
ในฟิลด์ชื่อโฮสต์ทุกอย่างอื่นที่เหลือเป็นค่าเริ่มต้น คุณจะถูกขอให้ป้อนชื่อผู้ใช้ Linux และรหัสผ่านของคุณ
emacs
วิ่ง Ctrl-space จะตั้งค่าเครื่องหมายตามต้องการ
(โปรดทราบว่าขั้นตอนข้างต้นจะไม่ทำให้ระบบของคุณสามารถยอมรับการเชื่อมต่อ SSH จากโฮสต์อื่น ๆด้วยตนเองคุณจะต้องเปลี่ยนกฎไฟร์วอลล์ Windows ของคุณเพื่ออนุญาตพอร์ต TCP ขาเข้า 22)
ในอีกคำตอบที่คุณพูดว่า "แต่ผงสำหรับอุดรูไม่ใช่เทอร์มินัลท้องถิ่น" ฉันไม่แน่ใจว่าคุณไม่ทราบหรือไม่ว่าคุณสามารถใช้localhost
วิธีนี้ได้หรือถ้าคุณกำลังไล่ PuTTY เพราะมีค่าใช้จ่ายสูงกว่าเมื่อเทียบกับสถานีท้องถิ่น ถ้าอย่างหลังฉันไม่ต้องกังวลเซสชัน SSH เชิงโต้ตอบคือภาระที่เบามาก (มันแน่นอนมากโหลดน้อยกว่าที่ใช้ระบบวินโดว์เพื่อให้คุณสามารถเรียกใช้ GUI Emacs หรือ xterm!)
ข้อเสียที่แท้จริงเพียงอย่างเดียวของการรันด้วยวิธีนี้เทียบกับเทอร์มินัลแบบตรงคือเหตุการณ์การวางจะถูกส่งแบบตัวอักษรต่อตัวอักษรราวกับว่าคุณพิมพ์เนื้อหาของคลิปบอร์ดอย่างรวดเร็วซึ่งอาจทำให้คู่ไฟฟ้าเยื้องขยายตัวอย่างข้อมูล ไฟ. (วางไม่ควรทำให้คำสั่ง key-chord เริ่มทำงานเนื่องจากมีตรรกะในการตรวจหาการวางที่กำลังดำเนินการและปิดการใช้งานการคีย์คอร์ดจนกว่าการวางจะเสร็จสิ้น)
และมีข้อได้เปรียบที่ใหญ่อย่างน้อยหนึ่งในเทอร์มินัล Bash มาตรฐานเช่นกัน: เหตุการณ์เมาส์ได้รับการสนับสนุนโดย PuTTY ในรูปแบบที่ Emacs สามารถตอบสนองได้ดังนั้นอย่างแดกดันคุณสามารถย้ายจุดด้วยเมาส์ใน PuTTY แม้ว่าคุณจะสามารถ t ด้วยเทอร์มินัลท้องถิ่น