Mac iTerm2按单词删除失效:如何单独删除路径末尾单词?
解决iTerm2 + Bash环境下Option+BACKSPACE按单词删除的问题
我完全懂你遇到的糟心情况——在iTerm2里用Ctrl+W删路径末尾的单词时,会连前面一大段路径一起删掉,而原生Terminal里好用的Option+BACKSPACE在bash环境下却没效果。别慌,这其实是iTerm2的Meta键配置和bash默认的单词分隔符设置共同导致的,按下面两步就能轻松搞定:
第一步:把iTerm2的Option键设为Meta键
首先得让iTerm2把Option键识别成Meta键,这样bash才能接收到对应的操作信号:
- 打开iTerm2的偏好设置(快捷键
Cmd+,就能调出) - 切换到Profiles标签页,再点选Keys子标签
- 在窗口右下角找到「Left Option (⌥)」的下拉菜单,选择「Esc+」
- 如果你习惯用右侧的Option键,也可以把「Right Option (⌥)」同样设为「Esc+」
第二步:修改Bash的单词分隔符配置
bash默认把/当作单词的一部分,所以Meta+BACKSPACE会一直删到第一个非单词字符(也就是路径开头的/)。我们需要把/从默认的单词字符列表里移除:
- 打开你的bash配置文件,常用的是
~/.bashrc或者~/.bash_profile(如果是macOS默认bash,可能需要改~/.bash_profile) - 添加下面这行代码:
这行代码会覆盖默认的export WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'WORDCHARS变量,去掉了其中的/,这样bash就会把/当作单词分隔符。 - 保存文件后,在终端执行下面的命令让配置立即生效:
嫌麻烦的话直接重启iTerm2也能生效。source ~/.bashrc
现在你再输入/one/two/three/four/five试试,按Option+BACKSPACE就只会删掉末尾的five了!而且这个修改还能让其他Meta键操作更顺手——比如Option+f(向前跳一个单词)、Option+b(向后跳一个单词)都会以/为分隔,操作路径的时候特别方便。
内容的提问来源于stack exchange,提问作者slayedbylucifer
相关产品推荐
相关产品推荐

