Цього рішення немає , що стосується того, щоб Ctrl-Space проходила через термінал Bash, під час написання цього повідомлення (1 вересня 2016 р.) - але є рішення, яке може бути достатньо для багатьох користувачів: використовуйте 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 (з 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 - це надзвичайно легке навантаження. (Це, звичайно, набагато менше навантаження, ніж запуск системи X Window, щоб ви могли запустити GUI Emacs або xterm!)
Єдиним реальним недоліком для запуску цього способу проти прямого терміналу є те, що події вставлення надсилаються буквально за листом, як якщо б ви швидко набрали вміст буфера обміну, що може спричинити електричні пари, відступи, розширення фрагмента тощо вогонь. (Вставлення не повинно спричиняти заготівлі команд-брелоків, оскільки існує логіка виявлення вставленої вставки та відключення брелоків до завершення вставки.)
І є принаймні одна дуже велика перевага перед стандартним терміналом Bash: події миші підтримуються PuTTY у формі, на яку Emacs може реагувати, тож, за іронією долі, ви можете переміщати точку мишкою в PuTTY, навіть якщо можете " t з місцевим терміналом.