我想执行set -o vi
,但我却执行了set -ovi
。
现在,当我检查时,set -o
我看到了额外奇怪的选项,例如:
$ set -o
set -o
...
update_terminal_cwd;
结果,update_terminal_cwd;
打印在每个命令上。
如何在不重新启动 shell 的情况下撤消拼写错误?
答案1
如果您set -ovi
这样做了,请重复,因为set +ovi
其中一个的效果将被另一个逆转。
您实际上所做的是激活详细选项,set -o v
该选项也显示历史记录(如果设置)。
最重要的值集由 打印echo "$-"
,通常仅himBH
在交互式 shell 中。
set -o
较长的值列表由或打印set +o
。前者将打印设置(打开)或未设置(关闭)值的人类可读描述。后者将打印一个几乎完整的列表,可以执行该列表以恢复set
状态。
使用set -o
或set +o
list 检查详细状态并使用以下命令之一取消设置:
set +o verbose
set +o v
是的,+
意思是未设置(关闭),很奇怪,我明白。
答案2
set +v
(一般情况下,如果set -<char>
打开某个选项,set +<char>
则会将其关闭。)
答案3
或者通过类似的方法检查差异(可能是鲁莽的假设,选项不像环境变量那样传递):
set -o > now
bash -ic 'set -o' > default
diff default now