BSD 系统上 tty 的配置
configuration of tty on BSD system
对于 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
OpenBSD LeOpenBSD 6.4 上的相同命令 GENERIC.MP#364 amd64 with xfce 我得到:
ktop/DBus org.freedesktop.DBus.ListActivatableNames <
在 linux,在屏幕末尾,我们转到下一行。
在 BSD(OpenBSD-NetBSD) 上,命令行在同一行继续,第一个单词消失。
在 xfce-terminal-emulator、xterm 或 TTY (Alt-Ctrl-F3)
中是一样的
我尝试在默认部分的 gettytab 中添加 am,但没有成功。
Termcap 手册页说:
如果当光标到达右边距时显示环绕到下一行的开头,那么它应该具有 am 功能。
我能做什么?
简答
如果您希望当前 shell 没有此功能
set +o emacs
如果您想生成一个没有此功能的新 shell
ksh +o emacs
长答案
此行为主要是由于 OpenBSD 支持 shell input interactive editing mode。
In these editing modes, if a line is longer than the screen width (see the COLUMNS parameter), a ‘>’, ‘+’, or ‘<’ character is displayed in the last column indicating that there are more characters after, before and after, or before the current position, respectively. The line is scrolled horizontally as necessary.
如果要删除此功能,可以使用 sh
or ksh
中的 set
build-in 命令。您还可以在调用期间使用 +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
我认为您实际描述的可能是在 Linux 和大多数 BSD 上使用的两种非常不同的 shell 之间的区别,以及它们非常不同的 command-line 编辑实现。
这可能与各种终端仿真器实现之间的差异无关;也没有描述这些终端仿真的终端功能数据库之间的差异。
在 BSD 系统上,默认的 shell 的 command-line 编辑器会根据光标的位置滚动整个屏幕。在某些 Linux 系统上,我看到默认的 shell 的 command-line 编辑器将长行换行以继续下一行。
对于 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
OpenBSD LeOpenBSD 6.4 上的相同命令 GENERIC.MP#364 amd64 with xfce 我得到:
ktop/DBus org.freedesktop.DBus.ListActivatableNames <
在 linux,在屏幕末尾,我们转到下一行。
在 BSD(OpenBSD-NetBSD) 上,命令行在同一行继续,第一个单词消失。
在 xfce-terminal-emulator、xterm 或 TTY (Alt-Ctrl-F3)
我尝试在默认部分的 gettytab 中添加 am,但没有成功。
Termcap 手册页说:
如果当光标到达右边距时显示环绕到下一行的开头,那么它应该具有 am 功能。
我能做什么?
简答
如果您希望当前 shell 没有此功能
set +o emacs
如果您想生成一个没有此功能的新 shell
ksh +o emacs
长答案
此行为主要是由于 OpenBSD 支持 shell input interactive editing mode。
In these editing modes, if a line is longer than the screen width (see the COLUMNS parameter), a ‘>’, ‘+’, or ‘<’ character is displayed in the last column indicating that there are more characters after, before and after, or before the current position, respectively. The line is scrolled horizontally as necessary.
如果要删除此功能,可以使用 sh
or ksh
中的 set
build-in 命令。您还可以在调用期间使用 +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
我认为您实际描述的可能是在 Linux 和大多数 BSD 上使用的两种非常不同的 shell 之间的区别,以及它们非常不同的 command-line 编辑实现。
这可能与各种终端仿真器实现之间的差异无关;也没有描述这些终端仿真的终端功能数据库之间的差异。
在 BSD 系统上,默认的 shell 的 command-line 编辑器会根据光标的位置滚动整个屏幕。在某些 Linux 系统上,我看到默认的 shell 的 command-line 编辑器将长行换行以继续下一行。