对于在Linux debian-linux 4.19.0-1-amd64#1 SMP Debian 4.19.12-1(2018-12-22)x86_64 GNU / Linux和xfce上的命令,我得到了:
alain@debian-linux:~$ dbus-send --system --type=method_call --print-reply --dest
=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatable
Names
在带有xfce的OpenBSD LeOpenBSD 6.4 GENERIC.MP#364 amd64上的相同命令我得到了:
ktop/DBus org.freedesktop.DBus.ListActivatableNames <
在linux上,在屏幕末尾,我们转到下一行。
在BSD(OpenBSD-NetBSD)上,命令行继续在同一行上,并且第一个单词消失了。
在xfce-terminal-emulator,xterm或TTY(Alt-Ctrl-F3)中是相同的
我尝试在defaut部分的gettytab中添加am,但无济于事。
Termcap手册页说:
如果在光标到达右边距时显示内容回绕到下一行的开头,则它应该具有am功能。
我该怎么办?
答案 0 :(得分:1)
如果您希望当前的shell没有此功能
set +o emacs
如果您想生成一个没有此功能的新外壳程序
ksh +o emacs
此行为主要是由于OpenBSD支持的外壳input interactive editing mode。
在这些编辑模式下,如果一行的长度大于屏幕宽度(请参阅COLUMNS参数),则最后一列中将显示'>','+'或'<'字符,表示还有更多字符在当前位置之后,之前,之后或之前。该行将根据需要水平滚动。
如果要删除此功能,可以使用sh
或ksh
中的set
内置命令。您也可以在调用过程中使用+o
最后,如果要检查当前shell上是否启用了某些交互式编辑模式,则可以不带参数地调用set -o
或set +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
答案 1 :(得分:0)
我认为您实际描述的可能是Linux和大多数BSD所使用的两个截然不同的shell与它们截然不同的命令行编辑实现之间的区别。
这可能与各种终端仿真器实现之间的差异无关;也没有描述这些终端仿真的终端功能数据库之间的差异。
在BSD系统上,默认外壳程序的命令行编辑器根据光标的位置在屏幕的整个宽度上滚动整个画面。在某些Linux系统上,我已经看到默认外壳程序的命令行编辑器将长行换行以继续下一行。