在BSD系统上配置tty



对于Linux上这样的命令,debian Linux 4.19.0-1-amd64#1 SMP debian 4.19.12-1(2018-12-22)x86_64 GNU/Linux with xfce I get:

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 I get:

ktop/DBus org.freedesktop.DBus.ListActivatableNames   <

在linux上,在屏幕的最后,我们转到下一行
在BSD(OpenBSD-NetBSD)上,命令行在同一行继续,第一个单词消失
它在xfce终端模拟器、xterm或TTY(Alt-Ctrl-F3)中是相同的

我试图在gettytab中的defout部分添加我,但没有成功
Termcap手册页说:
如果光标到达右边距时,显示内容一直延伸到下一行的开头,那么它应该具有am功能
我能做什么?

简短回答

如果你想让你的当前外壳没有这个功能

set +o emacs

如果你想在没有这个功能的情况下生成一个新的外壳

ksh +o emacs

答案很长

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

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

如果要删除此功能,可以使用shksh中的set内置命令。您也可以在调用期间使用+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

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

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

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

相关内容

  • 没有找到相关文章

最新更新