当我使用“alt-gr”字符后跟一个“空格”字符时,我经常会错过我的输入,而不是输入“非中断空格字符”,即 nbsp。
管道命令示例:mount |<space>tail
vsmount |<nbsp>tail
最后一个命令将触发错误(注意尾部..." tail" command unfindable...
命令名称之前的可视空间,实际上是一个 nbsp 字符)。
所以我找到了一个非常适合我的解决方案,可以简单地中和 nbsp 字符:
setxkbmap -option "nbsp:none"
但是这种变化立即获得了整个系统,并且为了证明,在 LibreOffice Writer 中,如果我想在必须保持分组的两个单词之间添加一个 nbsp 字符,这不起作用。
从过去开始,由于那个该死的角色,我浪费了很多时间来确定无法正常工作的命令或脚本或服务无法启动的原因。
所以我问自己是否有解决方案使中和仅限于外壳(控制台、终端、vty、tty 等)?在 bash 或其他 shell ...
你能告诉我这个该死的 nbsp 角色在 shell 中的角色吗?何时何地使用它以及用于什么目的?我们失去了什么不使用它?
另一个建议:我们可以通过带有颜色的图形字符来显示它,而不是中和它吗?
正如 Kamil 让我意识到的那样,NBSP 功能在将近 95% 的时间里都不会为我服务。所以我可以禁用它,对于剩下的 5%,我将不得不实现一个独特的补丁来允许我为所有需要的应用程序插入这个字符。
前言:为了确定要向您介绍的内容相同,对我而言,PTS 控制台和 TTY 控制台之间的区别是什么。PTS 对我来说是我们从桌面环境打开的 GUI 控制台(图形),TTY 对我来说是我们使用ctrl-alt-Fn组合打开的 CLI(命令行) (n 代表会话编号,通常在 1 之间和 7、7 默认保留给 X11 图形会话)。
从 X11 环境中禁用 NBSP 字符
因此,根据我自己的搜索(见上文),我可以从我的 X11 环境中禁用 NBSP 字符。由于 X11 是图形环境,禁用必须在图形环境中执行。
所以我建议在自动启动脚本中实现它(对我来说来自 XFCE DE):
重定向 Libre Office Writer 的 NBSP 快捷键
有时我需要从 Libre Office Writer 插入 NBSP 字符,但由于它被禁用(见上文),我仍然必须找到插入此字符的方法。
我建议使用Ctrl-Shift-space进行替换。
所以对于宏(在此处可用:工具 → 宏 → 组织宏 → LOdev Basic → 我的宏 > 标准 > 模块 1 > 编辑):
注意:请注意 NBSP unicode 代码是 U+00A0 并且在我的情况下,生成的代码写在
$HOME/.config/libreoffice/4/user/basic/Standard/Module1.xba
对于键绑定(工具 → 自定义... → 键盘),我们将使用Ctrl-Shift-space与名为InsertNBSP的宏函数绑定
注意:在我的情况下,生成的关联写在
$HOME/.config/libreoffice/4/user/registrymodifications.xcu
从 vim 中显示一些字符(包括 NBSP)
基于这个来源,我找到了一种方法来显示vim(这是我的偏好文本编辑器)中所有重要的字符(在我的例子中)。这在 TTY 控制台中很有用,因为没有什么能阻止输入 NBSP。
重要提示:根据我们是从PTS还是TTY控制台访问 shell,我们可以使用 unicode 字符(在第一种情况下)或部分(在第二种情况下,但显然可以使 TTY 支持完整的 unicode - 不是测试)。
先决条件:在添加以下配置行之前,请确保已安装vim
注释:
使用 PTS 控制台中的 unicode 字符
重要提示:此方法适用于我的配置,但我不知道它是否适用于任何地方
要键入制表符(请参阅下面的其他代码):
从外壳(来源):ctrl-shift-u 21e5
来自 vim(来源):ctrl-v u 21e5
来自 PTS 的 Unicode 字符:
⇥ :向右箭头到 BAR或制表符 (U+21e5)
☠ :骷髅和交叉骨(U+2620)
· :中点(U+ 00B7或简称 U+B7)
从 TTY shell 控制台禁用 NBSP 字符
最后一个未处理的情况是 TTY 控制台。正如@Kamil 建议我的那样,可以在 $HOME/.bashrc 文件中添加以下行来禁用 NBSP:
总结
现在我们可以禁用 X11 中的 NBSP 字符,因此也可以在 PTS中禁用 PTS bash shell 和vim
setxkbmap -option "nbsp:none"
(为了使持久性,我在位于 的自动启动脚本中实现它$HOME/.config/autostart
)。我们也可以使用bind '"\302\240":" "'
in禁用 TTY bash shell$HOME/.bashrc
。我们可以警告在 TTY中使用 NBSP(和其他有问题的字符)和vimlistchars
并在$HOME/.vim/vimrc
. 最后,我们总是可以在 Libre Office Writer 中添加一些想要的 NBSP 字符(这也取决于 X11,因此阻止了 NBSP),将 NBSP 快捷键重定向到另一个组合键。最后,我会说所有不同的环境案例都没有得到处理,但我认为这里所说的是为其他案例找到方法的一个很好的起点。