是否有任何支持鼠标报告的 unix shell?

Joh*_*ion 3 mouse bash shell cursor

我目前在 OSX 上使用 bash(通过 iTerm2)。有时我必须使用一组非常冗长的命令行参数来运行程序。如果我发现我打错了,回到错误并修复它需要很长时间。我知道一些程序,例如 nano,支持用于光标定位的鼠标报告。任何外壳都支持它,或者(甚至更好)作为 bash 的选项?

jw0*_*013 5

听起来你会从投入一小段时间学习一些默认readline键盘快捷键中受益。请注意, 上面user606723 的回答给出了一些基本的回答,但HomeAlt+arrow键不适用于所有终端。以下是我发现以下最有用的一些,它们也适用于更多终端。

(除非另有说明,“单词”表示字母数字字符串。)

  • Alt-f: 向前一个
  • Alt-b:回一个
  • Ctrl-a: 转到行首
  • Ctrl-e: 到行尾
  • Alt-d: 删除到词尾
  • Alt-Backspace: 删除到词首
  • Ctrl-w: 向后删除到空格
  • Ctrl-y: 粘贴最近删除的文本
  • Ctrl-b, Ctrl-f: 向后/向前移动一个字符,相当于leftright
  • Ctrl-h, Ctrl-d:分别相当于BackspaceDelete

我列出最后几个是因为我发现它们比使用箭头键或删除/退格键更方便。您可以看到如何使用这些基本快捷方式轻松地进行大量编辑。但还有更多:

  • Alt-.: 轮换历史记录中前几行的最后一个单词(空格分隔)。使用它可以得到你最近输入的命令的最后一个参数。
  • Ctrl-_:撤消(增量)
  • Ctrl-]: 向前搜索字符(就像f在 vim 中一样,但不太方便)
  • Ctrl-r: 反向历史搜索
  • Alt-0... Alt-9: 下一个命令的数字参数。例如,如果您想删除 4 个单词:Alt-4Alt-d. 或者,如果你需要1024A的出于某种原因在命令行中: Alt-1024A
  • Ctrl-u: 从光标位置删除到行首
  • Ctrl-k: 从光标位置删除到行尾

这些只是我使用的一些 - 手册页中还有更多。