鼠标点击与 SSH 客户端集成,在命令行上,而不仅仅是 vim?

鼠标点击与 SSH 客户端集成,在命令行上,而不仅仅是 vim?

在 中vim,您可以使用选项:set mouse=a,然后(如果您的 SSH 客户端支持)您将能够简单地单击,光标就会移动,而不必使用箭头键或类似的东西。

我意识到vim切换到“备用屏幕”。我只是想知道是否有办法在“主”屏幕上也使用这种集成。如果是这样,是否有任何 shell 脚本解释器可以处理这个问题?

现在我正在使用bash,有时我会输入一个很长的命令,并且必须在中途更正一些内容。如果有一个bash合理的替代方案,或者一个处理鼠标交互的扩展,bash我会很高兴。你知道我需要什么才能完成这项工作吗?

此外,我感兴趣,mysql但让我们从主命令行开始。

答案1

bash具有调用外部编辑器来编辑您正在处理的当前命令行的内置功能。鼠标支持取决于所使用的编辑器。

如果您使用的是bash类似 emacs 的模式,请使用Ctrl-XCtrl-E来访问编辑器。

如果您使用类似 vi 的键绑定,请使用ESCv

您还可以使用内置fc命令编辑任何前一行。

$ 帮助足球俱乐部

FC:fc [-e ename] [-lnr] [first] [last]fc -s [pat=rep] [command]

显示或执行历史列表中的命令。

fc用于列出或编辑并重新执行历史列表中的命令。 FIRST 和 LAST 可以是指定范围的数字,或者 FIRST 可以是字符串,这意味着以该字符串开头的最新命令。

选项: -e ENAME 选择要使用的编辑器。默认为$FCEDIT,然后$EDITOR,然后vi

[...]


顺便说一句,对此有一个小烦恼(以任何形式):

可能有一些简单的方法可以中止编辑或使 bash 返回编辑该行本身而不立即执行它,但我从未找到一种方法(我没有很努力地寻找)。

退出而不保存只是执行该行,就像调用编辑器之前一样。

我发现的唯一方法是删除编辑器中的整个缓冲区,然后保存并退出。#当然,或者在开头添加评论。

PS:我使用 emacs 模式行编辑,Ctrl-XCtrl-Evim我需要真正的编辑能力时。我不知道为什么,我喜欢vivim,但我就是不喜欢命令行上的 vi 模式。

答案2

对 readline 的本机鼠标支持不存在(开箱即用),但可以通过一些很酷的技巧来启用,其他用户@Tinmarino 展示了他的 答案相似的 问题

他的脚本你可以放置在某个地方,在 bash 启动期间获取它,然后你就可以启用鼠标跟踪。

它有效,但是(也许只对我来说)当在 tmux-mosh-tmux-sudo 级联中时,“x”的计算会变得不稳定,并且有一个偏移量。

mysql 客户端也是使用 readline (iirc) 构建的,因此上面的方法也可以在那里工作。

编辑:以前的版本是我回答问题的误解。

相关内容