我使用 Tab 补全比输入字母更多。我曾经打字rm ~/De<TAB>,它会完成,rm ~/Desktop/以便我可以继续下一个级别。
最近,这种行为改变了。完成现在 yield rm ~/Desktop<SPACE>,这意味着如果我想继续,我必须退格并键入斜杠。这让我哭了。
更改似乎位于 中的函数_longopt()中/etc/bash_completion,但这是我所能遵循的。这种改变是有意的吗?如果是,它有什么好处?我可以恢复旧的行为吗,最好是通过配置选项,而不是仅仅从其他系统复制旧代码?
编辑:供参考的功能。
_longopt()
{
local cur prev split=false
_get_comp_words_by_ref -n = cur prev
_split_longopt && split=true
case "$prev" in
--*[Dd][Ii][Rr]*)
_filedir -d
return 0
;;
--*[Ff][Ii][Ll][Ee]*|--*[Pp][Aa][Tt][Hh]*)
_filedir
return 0
;;
esac
$split && return 0
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W "$( $1 --help 2>&1 | \
sed -ne 's/.*\(--[-A-Za-z0-9]\{1,\}\).*/\1/p' | sort -u )" \
-- …Run Code Online (Sandbox Code Playgroud) 多年来,不,几十年(字面上 - 两个!),我尽可能在我的终端中启用可视铃,无论是简陋的 XTerm 还是 Gnome 终端。最近,在我从 Unity 切换到 Gnome 3 之后,我在 Gnome 终端中听到了一个响铃(通过立体声扬声器)。
到目前为止,我的搜索似乎总是导致错误的方向:如何启用可听铃声或如何完全禁用整个功能。这不是我的本意。在出现提示时,当我过于频繁地按退格键或在自动完成之前按退格键时,我希望终端窗口闪烁,而我不想听到任何声音。这个设置隐藏在哪里?
不久前,GIMP 在发出see命令时非常意外地接管了打开 PDF 文件。它列在/etc/mailcap更合适的 evince 之前。当然我可以手动编辑这个文件,但是由于它是由系统管理的,下次update-mime运行将覆盖这些更改。
有一个名为的文件/etc/mailcap.order承诺帮助实现我想要的。我添加并在那里输入:
evince:application/pdf
Run Code Online (Sandbox Code Playgroud)
但是,下一次update-mime运行的答案是:
Warning: package evince listed in /etc/mailcap.order does \
not have mailcap entries.
Run Code Online (Sandbox Code Playgroud)
将包名称更改为evince-common或将媒体类型更改为*/*没有任何效果。那么什么是正确的格式呢?
我的 LUKS 加密驱动器有 3 个密码短语。其中两个是安全的(并且很长),另一个丢失了。然而,我依稀记得它达不到标准;它在实验期间使用过,之后应该擦掉。鉴于我不再知道它,但至少其他两个,我怎么能摆脱它?