Там нет решения для этого, с точки зрения создания 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
и сохранить / / SSH / sshd_config и т.д. файл.
Если что-то пойдет не так, вы можете восстановить файл, повторив шаг # 1.
- Запустите сервер SSH с помощью команды
sudo service ssh --full-restart
.
- Используя PuTTY (скачать здесь ), войдите
localhost
в систему в поле Hostname, все остальное оставьте по умолчанию. Вам будет предложено ввести имя пользователя Linux и пароль.
- Беги
emacs
. Ctrl-пробел установит метку по желанию.
(Обратите внимание , что описанные выше шаги будут не сами по себе, сделать систему , способную принимать SSH соединения от других хостов. Чтобы сделать это, вы также должны изменить правила вашего брандмауэра Windows , чтобы разрешить входящие TCP - порт 22.)
В другом ответе вы сказали: «но шпатлевка не является локальным терминалом». Я не уверен, если вы не знали, что вы могли бы использовать localhost
таким образом, или вы уволили PuTTY из-за больших накладных расходов по сравнению с локальным терминалом. Если последнее, я бы не волновался, интерактивная сессия SSH - чрезвычайно легкая нагрузка. (Это, безусловно, намного меньше нагрузки, чем запуск системы X Window, поэтому вы можете запустить графический интерфейс Emacs или Xterm!)
Единственный реальный недостаток такой работы по сравнению с прямым терминалом - это то, что события вставки отправляются буквенно, как если бы вы набирали содержимое буфера обмена очень быстро, что может привести к тому, что электрические пары, отступы, расширение фрагмента и т. Д. Пожар. (Вставка не должна вызывать команды клавиш-аккордов, поскольку есть логика для обнаружения выполняемой вставки и отключения клавиш-аккордов, пока вставка не закончится.)
И, по крайней мере, у стандартного терминала Bash есть еще одно очень большое преимущество: события мыши поддерживаются PuTTY в форме, на которую может реагировать Emacs, поэтому, как ни странно, вы можете перемещать точку с помощью мыши в PuTTY, даже если вы можете ' т с местным терминалом.