1

对于 Linux debian-linux 4.19.0-1-amd64 #1 SMP Debian 4.19.12-1 (2018-12-22) x86_64 GNU/Linux with xfce 上的类似命令,我得到:

alain@debian-linux:~$ dbus-send --system --type=method_call --print-reply --dest
=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatable  
Names

OpenBSD LeOpenBSD 6.4 GENERIC.MP#364 amd64 和 xfce 上的相同命令我得到:

ktop/DBus org.freedesktop.DBus.ListActivatableNames   <

在 linux 上,在屏幕末尾,我们转到下一行。
在 BSD(OpenBSD-NetBSD) 上,命令行在同一行继续,第一个单词消失。
在 xfce-terminal-emulator、xterm 或 TTY (Alt-Ctrl-F3) 中相同

我尝试在默认部分的 gettytab 中添加 am 无济于事。
Termcap 手册页说:
如果当光标到达右边距时显示环绕到下一行的开头,那么它应该具有 am 功能。
我能做些什么 ?

4

2 回答 2

1

简短的回答

如果你想你当前的 shell 没有这个功能

set +o emacs

如果您想生成没有此功能的新外壳

ksh +o emacs

长答案

这种行为主要是由于OpenBSD 支持的 shell输入交互编辑模式。

在这些编辑模式中,如果行长于屏幕宽度(请参阅 COLUMNS 参数),则使用“>”、“+”或“<” 字符显示在最后一列,分别表示在当前位置之后、之前和之后或之前还有更多字符。该行会根据需要水平滚动。

如果要删除此功能,可以使用或set中的内置命令。您还可以在调用期间使用删除此标志shksh+o

最后,如果您想检查当前 shell 上是否启用了某些交互式编辑模式,您可以调用set -oset +o不使用参数。它会给你类似的东西,这里是set -o命令:

$ set -o
Current option settings
allexport      off  keyword        off  notify         off  verbose        off 
braceexpand    on   login          on   nounset        off  vi             off 
bgnice         off  markdirs       off  physical       off  viraw          off 
csh-history    off  monitor        on   posix          off  vi-show8       off 
emacs          off  noclobber      off  privileged     off  vi-tabcomplete on  
errexit        off  noexec         off  restricted     off  vi-esccomplete off 
gmacs          off  noglob         off  sh             off  xtrace         off 
ignoreeof      off  nohup          on   stdin          on   
interactive    on   nolog          off  trackall       off

这里是set +o命令:

$ set +o
set +o allexport -o braceexpand +o bgnice +o csh-history +o emacs +o errexit 
+o gmacs +o ignoreeof -o interactive +o keyword -o login +o markdirs -o monitor 
+o noclobber +o noexec +o noglob -o nohup +o nolog +o notify +o nounset 
+o physical +o posix +o privileged +o restricted +o sh -o stdin +o trackall 
+o verbose +o vi +o viraw +o vi-show8 -o vi-tabcomplete +o vi-esccomplete 
+o xtrace
于 2019-07-02T11:33:48.380 回答
0

我认为您实际描述的可能是 Linux 和大多数 BSD 上使用的两个非常不同的 shell 以及它们非常不同的命令行编辑实现之间的差异。

这可能与各种终端仿真器实现之间的差异无关;描述这些终端仿真的终端功能数据库之间也没有差异。

在 BSD 系统上,默认 shell 的命令行编辑器会根据光标的位置在整个屏幕宽度上滚动。在某些 Linux 系统上,我看到默认 shell 的命令行编辑器会绕长行以继续下一行。

于 2019-07-11T22:17:06.257 回答