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

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

我目前在 OSX 上使用 bash(通过 iTerm2)。有时我必须运行带有非常长命令行参数的程序。如果我发现自己输入错误,则需要花很长时间才能返回错误并进行修复。我知道某些程序(例如 nano)支持鼠标报告光标定位。是否有任何 shell 支持此功能,或者(甚至更好)作为 bash 的选项?

答案1

听起来你应该花点时间学习一些默认的readline键盘快捷键。请注意user606723 的回答 上面给出了一些基本的按键,但HomeAlt+arrow键并非在所有终端上都有效。以下是我认为最有用的几个按键,它们在更多终端上也有效。

(除非另有说明,“单词”指的是字母数字字符串。)

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

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

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

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

答案2

我不知道但是......


历史扩展

teh纠正后重复上一个命令the

^teh^the^

在将foo第一次出现的单词更改为后重复包含该单词的最后一个命令barqax

!?foo?:s/bar/qax/

行编辑

您可以使用 emacs 风格的编辑命令快速浏览该行。

我更喜欢 vi 模式set -o vi,这意味着我可以使用bw一次向前和向后移动一个单词,并使用fx将光标移动到下一个特定字符出现的位置x

答案3

GPM(通用鼠标)是控制台和 xterm 的鼠标服务器

编辑:显然还有一个版本 2

答案4

这不是一个“答案”,而是一个解决方案。我将其作为答案提交,因为我需要额外的空间。

Home您是否尝试过使用和Alt+的组合Left

  • Home- 将采取正面该命令。
  • End- 将采取结尾该命令。
  • Alt+ Left- 将带您“单词”左边。
  • Alt+ Right- 将带您“单词”正确的。

使用这些组合键,应该可以更轻松地追溯到您的错误=)

相关内容