当您在 bash 默认模式下按Ctrl+ 时L,屏幕会被清除。但是当我运行set -o vi并按Ctrl+L键时会打印 ( ^L)。有什么办法可以保持这种行为吗?
例如:
"\e[1;5C"
"\e[Z"
"\e-1\C-i"Run Code Online (Sandbox Code Playgroud)
我只知道点点滴滴,比如\e代表转义和C-为Ctrl,但这些数字 ( 1) 和字母 ( Z) 是什么?什么;,[和-迹象?
是否只有反复试验,或者是否有完整的 bash 键代码列表及其语法解释?
可能的重复:
如何在交互式 shell 中删除部分路径?
bash 中是否有快捷方式可以让您删除路径的最后一部分?
例子:/usr/local/bin应该变成/usr/local/(或/usr/local)
我知道Ctrl+w但它删除了完整的最后一个词,我也想保留该功能。
我只是在阅读 readline 手册页,发现了一堆我不知道的很棒的命令。但是,有几个没有默认的键绑定。有没有办法从 shell 执行未绑定的命令?
我不是在问如何在 ~/.inputrc 中绑定命令,而是如何从 shell 或 bash 脚本中“一次性”执行它。
例如,“转储变量”命令。是否有一些命令我可以提供“转储变量”作为参数来执行它?
我只是在输入以下内容:
mv foo/bar/poit/zoid/narf.txt
Run Code Online (Sandbox Code Playgroud)
突然意识到,该死的,我必须再次输入该参数的大部分内容
mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt
Run Code Online (Sandbox Code Playgroud)
即使使用tabcompletion,也很痛苦。我知道我可以通过鼠标选择文本和中键来复制粘贴参数,但这还不够好。我想留在键盘上。
那么有没有办法使用键盘复制粘贴该行的当前参数?
在bash命令行上,?给我上一个命令。在ipythonor 中的命令行上matlab,当我输入几个字符时,?会给出以前输入的以这些字符开头的命令。我怎样才能在 中启用这种行为bash?
我知道搜索命令行历史的更高级方法,但有时简单的方法更方便。
要导航到命令的开头和结尾,我通常使用Ctrla和Ctrle。
但是,当我在 GNU 屏幕中工作时,这些键绑定不起作用,因为它们可能正在被 GNU 屏幕使用。有没有另一种方法可以移动到命令的开头或结尾?
我在 CentOS6.2
在之前工作的 Debian Wheezy 机器上,我习惯了 Alt+Left 和 Alt+Right 在活动命令行(在 bash 中)上的单词之间跳过。
但是,由于在家里我已升级到 Jessie(Debian 8.0,测试分支),这不再起作用:Alt-Left 不会跳到上一个单词,而是打印类似D或 的内容[D。OTOH,如果我打开 ssh 并连接到我的无头 Debian Wheezy,它确实可以完美运行。
此外,我刚刚在我的新工作中安装了 Fedora 20,这里的行为是相同的。这适用于 bash、csh 和 ksh(从 开始env -i),以及 rxvt-unicode 和 xfce4-terminal,所以它必须是这些级别之外的东西。
我应该在堆栈中的其他地方寻找差异吗?
我想在 readline 环境中切换到 vi 编辑模式。但我不想使用'set -o vi'。我想使用键盘快捷键临时切换。手册页说我可以用M-C-j. 但这对我不起作用。
我正在使用 Ubuntu 和一个 xterm。也不能在 gnome-terminal 下工作。