如何在Linux Ubuntu的bash中配置PowerShell风格的文本选择快捷键?
在Bash中配置PowerShell风格的文本选择快捷键
要在Ubuntu的Bash中实现你习惯的PowerShell文本选择操作,分两种场景处理:终端模拟器层面的可视化选中和Bash内部的命令行文本操作(基于GNU Readline),以下是具体配置方法:
一、终端模拟器层面(推荐,贴近PowerShell可视化选中体验)
Ubuntu默认使用GNOME Terminal,你可以直接修改它的快捷键匹配PowerShell习惯:
- 打开GNOME Terminal的设置:点击右上角菜单 → Preferences
- 切换到Shortcuts标签页,找到Text Selection分组:
- 逐个字符向左选中:设置为
Shift+Left(默认可能已匹配,无需修改) - 逐个单词向左选中:设置为
Ctrl+Shift+Left(默认通常也是这个,确认即可) - 复制选中文本:将默认的
Ctrl+Shift+C修改为Ctrl+C - 剪切选中文本:将默认的
Ctrl+Shift+X修改为Ctrl+X
- 逐个字符向左选中:设置为
注意:修改
Ctrl+C为复制后,原有的“中断命令”功能会被覆盖,若需要保留中断功能,可以将其绑定到其他快捷键(比如Ctrl+Break),或者改用下面的Bash内部配置方案。
二、Bash内部(基于GNU Readline,无可视化选中但保留命令中断功能)
Bash依赖GNU Readline处理命令行输入,通过配置~/.inputrc文件,用Readline的**标记(mark)**功能模拟选中状态,同时保留Ctrl+C的中断功能:
- 创建/编辑
~/.inputrc文件:nano ~/.inputrc - 添加以下配置(适配GNOME Terminal的快捷键序列,其他终端需自行调整序列):
# 逐个字符向左选中(Shift+Left) "\e[1;2D": "\C-@\e[D" # 逐个字符向右选中(Shift+Right) "\e[1;2C": "\C-@\e[C" # 逐个单词向左选中(Ctrl+Shift+Left) "\e[1;6D": "\C-@\e[1;5D" # 逐个单词向右选中(Ctrl+Shift+Right) "\e[1;6C": "\C-@\e[1;5C" # 删除选中的文本:有选中时删除区域,否则正常退格 "\C-h": 'if [[ "$READLINE_MARK" != "$READLINE_POINT" ]]; then kill-region; else backward-delete-char; fi' # 复制选中的文本:有选中时复制区域,否则执行原Ctrl+C(中断命令) "\C-c": 'if [[ "$READLINE_MARK" != "$READLINE_POINT" ]]; then copy-region-as-kill; else "\C-c"; fi' # 剪切选中的文本:有选中时剪切区域,否则执行原Ctrl+X操作 "\C-x": 'if [[ "$READLINE_MARK" != "$READLINE_POINT" ]]; then kill-region; else "\C-x"; fi' - 保存文件后,重启Bash或执行以下命令生效:
bind -f ~/.inputrc
若你的终端模拟器发送的快捷键序列不同(比如Konsole),可以通过
cat命令测试:运行cat后按下对应快捷键,终端会输出该快捷键的字符序列,替换配置中的对应部分即可。
内容的提问来源于stack exchange,提问作者Gwhyyy
相关产品推荐
相关产品推荐

