278

尝试从首选项-> 设置-> 键盘映射它,但“键”组合框只有“向前删除”但没有“删除”。另一方面,我的键盘只有“删除”,没有“前向删除”!

除了偏好之外,还有其他方法吗?

4

9 回答 9

520

启用选项键作为元键

  1. 转到Terminal> Preferences> Profiles>Keyboard
  2. 检查Use option key as meta key

图片

在 2018 年 10 月 23 日捕获的 macOS High Sierra 10.13.6 上。

将选项键切换为元键的窗口图示

笔记

许多应用程序(包括 bash 和 tcsh)将 Meta-Delete 视为“向后删除字”。

于 2008-11-29T16:30:08.417 回答
81

OS X 的终端运行 bash,其中包括 readline 支持。按照Glomek的建议,告诉终端使用 option 作为元键(或者使用Esc),然后你有一堆方便的选项:f 和 Meta+b 通过单词前后移动,+和+到行首和行尾,+从光标到行尾删除(杀死),等等。CtrlwCtrlaCtrleCtrlk

请参阅http://www.bigsmoke.us/readline/shortcuts以获取一个不错的小参考表。

于 2012-01-28T03:56:23.860 回答
71

删除一个倒退的词:

Ctrl-w。

于 2015-08-17T20:18:54.680 回答
28

命令编辑快捷键

Ctrl + a- 转到命令行的开头

Ctrl + e– 转到命令行末尾

Ctrl + k– 从光标处删除到命令行末尾

Ctrl + u– 从光标处删除到命令行开头

Ctrl + w– 从光标处删除到单词的开头(即向后删除一个单词)

Ctrl + y- 将使用删除快捷方式之一(如上面的快捷方式)剪切的单词或文本粘贴到光标后

Ctrl + xx– 在命令行开头和当前光标位置之间移动(然后再返回)

Alt + b– 向后移动一个单词(或转到光标当前所在单词的开头)

Alt + f- 向前移动一个单词(或转到光标当前所在单词的末尾)

Alt + d- 从光标处删除到单词的结尾(如果光标在单词的开头,则删除整个单词)

Alt + c– 大写到从光标开始的单词的结尾(如果光标在单词的开头,则整个单词)

Alt + u- 从光标到词尾变为大写

Alt + l- 从光标到词尾变成小写

Alt + t– 将当前单词与前一个单词交换

Ctrl + f- 向前移动一个字符

Ctrl + b– 向后移动一个字符

Ctrl + d– 删除光标下的字符

Ctrl + h– 删除光标前的字符

Ctrl + t- 将光标下的字符与前一个字符交换

命令调用快捷键

Ctrl + r- 向后搜索历史

Ctrl + g- 退出历史搜索模式

Ctrl + p– 历史中的上一个命令(即,回溯命令历史)

Ctrl + n– 历史中的下一个命令(即向前浏览命令历史)

Alt + .– 使用上一条命令的最后一个字

命令控制快捷键

Ctrl + l- 清除屏幕

Ctrl + s- 停止输出到屏幕(用于长时间运行的详细命令)

Ctrl + q- 允许输出到屏幕(如果之前使用上面的命令停止)

Ctrl + c– 终止命令

Ctrl + z– 暂停/停止命令

Bash Bang (!) 命令

Bash 还有一些使用 ! (bang) 允许您使用 bash 命令做一些时髦的事情。

!!– 运行最后一个命令 !blah– 运行以 'blah' 开头的最新命令(例如 !ls)

!blah:p– 打印出 !blah 将运行的命令(也将其添加为命令历史记录中的最新命令)

!$– 上一条命令的最后一个字(同Alt + .

!$:p– 打印出 !$ 将替代的单词

!*– 除最后一个单词外的上一个命令(例如,如果您键入_find somefile.txt /,那么!*将给您_find somefile.txt

!*:p– 打印出什么!*可以替代

于 2019-11-21T03:20:25.787 回答
27

⌃W(control+W) 与 meta + delete 不同(ESC+delete,如果你没有选中使用选项作为元键) meta+delete 将/ _视为单词分隔符,^W将空格视为分隔符。

例如在(末尾的光标)上使用 ESC+Bakcspace

rm /dira/dirb/file1

rm /dira/dirb/

而 ^W 也会给出

rm

所以在定义修改终端配置文件时最好使用\033\177而不是^W。这样,您实际上将 ⌥⌫ 映射到 esc⌫ 正在执行的操作,并且您继续让 ^W 根据空格分隔符擦除单词。

我希望能够发布一张关于如何做到这一点的图片,但作为一个新手,我不能。

请参阅 bouke 评论以查看如何修改终端配置文件。

于 2015-06-10T10:06:02.427 回答
26

默认情况下,元退格会在大多数 shell 中执行向后的单词 yank。如果您按退出键,然后按退格键,则几乎可以在任何地方使用。

于 2008-11-29T19:12:07.203 回答
19

在您的终端配置文件中,您可以将⌥⌫(选项+删除)绑定到⌃W(控制+W),因此它与其他应用程序类似。

终端配置文件键盘设置

于 2015-04-21T13:32:13.247 回答
2

Natural Text EditingProfile -> Keys 中启用预设。你可以简单地删除这个词

  • 落后于alt + delete
  • 转发fn + alt + delete
于 2019-12-28T17:08:43.427 回答
1

如果您使用的是Iterm2(这就像 OSX 的常规终端更好:) 您可以使用它来更改此行为:

您需要将左 ⌥ 键设置为转义字符。这可以通过 iTerm2 > Preferences > Profiles > Keys 来完成。

在此处输入图像描述

于 2021-10-14T09:35:14.257 回答