Windows 10 linux bash shell ctrl + space在Emacs中没有设置标记

Modified on: Mon, 11 Mar 2019 05:00:03 +0800

在Windows 10中,我安装了Subsystem for Linux Bash。但我在Emacs中遇到问题 Ctrl + 空间没有设置标记点。

我尝试过但没有帮助:

  • 我尝试在Windows控制台的属性菜单中取消选中“启用Ctrl键快捷键”

  • 我尝试使用不同的终端ConEmu但没有成功。

我想知道这是否与ubuntu有某种关系,它与ctrl + space有类似问题,而windows linux bash正在使用ubuntu存储库。

最佳答案

在撰写本文时(2016年9月1日),在使Ctrl-Space通过Bash终端方面,没有解决方案 - 但是有一个可能的解决方法对于许多用户来说足够了:使用PuTTY通过SSH连接,这会强制处理Ctrl-Space。 (在tty模式下,无法区分Ctrl-Space和Ctrl- @,因为它们是相同的字符代码,但这应该不是问题,因为默认情况下Emacs设置为处理set-mark-command那样。)

  1. 使用sudo apt-get install openssh-server安装OpenSSH服务器。如果已安装,请将其删除(sudo apt-get remove openssh-server),然后重新安装以重置配置文件。
  2. 编辑 / etc / ssh / sshd_config 文件(使用sudo),如下所示:


    • 如果有未注释的行设置PermitRootLogin,请将其注释掉。添加一行PermitRootLogin no
    • 添加一行AllowUsers USERNAME,将USERNAME替换为您的Linux用户名(如果您不知道那是什么,请在Bash提示符下运行命令whoami)。
    • 理想情况下,您应该使用SSH密钥设置无密码身份验证,但是如何做到这一点超出了本问题的范围(有许多指南可用;在网上搜索“无密码ssh-keygen”)。在此期间,添加或取消注释PasswordAuthentication yes
    • 设置UsePrivilegeSeparation no;您可能会在文件中找到一行UsePrivilegeSeparation yes;只需将yes更改为no并保存 / etc / ssh / sshd_config 文件。

    如果此处出现问题,您可以通过重复步骤#1来恢复文件。

  3. 使用sudo service ssh --full-restart命令启动SSH服务器。
  4. 使用PuTTY(下载此处),登录在Hostname字段中使用localhost,其他所有内容都保留为默认值。系统会要求您输入Linux用户名和密码。
  5. 运行emacs。 Ctrl-space将根据需要设置标记。
  6. 醇>

    (请注意,上面的步骤将,使您的系统能够接受来自其他主机的SSH连接。为此,您还需要更改Windows防火墙规则以允许入站TCP端口22。)

    另一个答案中,您说,“但是腻子不是本地终端。”我不确定你是否不知道你可以用这种方式使用localhost,或者你因为与本地终端相比更大的开销而解雇PuTTY。如果是后者,我不担心,交互式SSH会话是一个非常轻量级的负载。 (与运行X Window系统相比,它确实 更少负载,因此您可以运行GUI Emacs或xterm!)

    与直接终端相比,以这种方式运行的唯一真正的缺点是粘贴事件是逐字母发送的,就像你非常快速地输入剪贴板的内容一样,这可能导致电子对,缩进,片段扩展,等等。 (粘贴应导致按键和弦命令触发,因为有逻辑检测正在进行的粘贴并禁用键和弦,直到粘贴完成。)

    与标准Bash终端相比,至少有一个非常大的优势:PuTTY支持鼠标事件,Emacs可以响应这种形式,因此,具有讽刺意味的是,你可以用PuTTY中的鼠标移动点,即使你不能在当地的终端。

作者:Community,Trey

相关问答

添加新评论