有没有办法在 MacOS 上通过终端使用普通键盘文本选择?

Posted

技术标签:

【中文标题】有没有办法在 MacOS 上通过终端使用普通键盘文本选择?【英文标题】:Is there any way of using normal keyboard text selection with a terminal on MacOS? 【发布时间】:2021-08-27 19:03:01 【问题描述】:

在过去的大约 10 年里,我习惯于使用 alt// 键来操作文本。例如,alt+ 代替跳回一个单词,alt++← 选择该单词,+ 跳转到行尾,等等。

我知道终端有不同的约定并且历来是第一位的,但我已经习惯了这些快捷方式,它们工作得很好,而且在其他任何地方都可以使用。有没有办法在终端中获得相同的控件来选择和操作文本?

我看到了以下问题:

How to move the cursor word by word in the OS X Terminal How do I clear/delete the current line in terminal?

但它们只涉及移动光标,而不是选择。

【问题讨论】:

你的意思是像vi这样的编辑器吗?或者你的意思是在命令行上?我还可以建议您使用 iTerm2 并查看superuser.com/questions/1051668/…吗? 在理想情况下,我希望它直接与命令行集成,因此它也适用于集成终端,例如 VSCode 中的终端。 ITerm2 看起来很有趣,我会研究一下,谢谢。 【参考方案1】:

移动光标:

Ctrl+A 转到行首(Home) Ctrl+E 转到行尾(End) 按住 Option 键选项并单击当前行 = 向后跳转 Ctrl+P 上一个命令(向上箭头) Ctrl+N 下一个命令(向下箭头) 按住 Option 键选项并单击上一行 = 向上跳转 Ctrl+F 前进一个字符 Ctrl+B 后退一个字符 Alt+B 后退(左)一个字或使用Option+ Alt+F 前进(右)一个单词或使用Option+ Ctrl+xx 在行首和当前光标位置之间切换 更多信息:https://ss64.com/osx/syntax-bashkeyboard.html

【讨论】:

【参考方案2】:

取决于 macOS 版本 - 您的默认 shell 可能是 zsh。

快捷键选项是 ctrl + a/e 移动到行首/行尾和 esc + W/B 向后/向前移动一个单词

其他流行的替代品是 -

一个。 bash - 使用@Hossein Amiri 的答案中列出的快捷方式

b. iterm2 - 来自 - https://coderwall.com/p/a8uxma/zsh-iterm2-osx-shortcuts

Put this in your .zshrc

bindkey "[D" backward-word
bindkey "[C" forward-word
bindkey "^[a" beginning-of-line
bindkey "^[e" end-of-line

And set iterm preferences.

【讨论】:

【参考方案3】:

你不能,我找了很久。这就是人们使用 iTerm 的原因,他们仅使用键盘即可获得更大的灵活性。

https://iterm2.com/features.html

复制模式

使用键盘进行和修改选择。

【讨论】:

以上是关于有没有办法在 MacOS 上通过终端使用普通键盘文本选择?的主要内容,如果未能解决你的问题,请参考以下文章

MacOS:在NSMenuItem快捷键入或鼠标按下之间进行标识

使用 Swift 在 macOS 上显示 Unobtrusive 消息

如何在 macOS 上检测 SwiftUI 中的键盘事件?

如何在 macOS 上检测 SwiftUI 中的键盘事件?

如何在 macOS 上通过命令隐藏终端窗口

comma是啥键