Bash 下的 emacs 和 vi 键绑定

初衷只是为了记述一下在 Bash/Zsh中怎么调用 Vi编辑当前的命令,但一发挥便涉及到了 Bash/Zsh的键绑定的话题,无法打住,只得另立新篇。这里也只说 Bash的键绑定,不会有 Zsh键绑定的内容

什么是 Bash的键绑定(keybing) 呢?就是在 Bash中的快捷键方案,即相当于某个 IDE的快捷键配置,或者叫 Keymap。比如说 IntelliJ IDEA中可选择的 Keymap有 Eclipse,Emacs,JBuilder,Mac OS X,Mac OS X 10.5+,NetBean,Visual Studio,以满足不同使用者的习惯。

相应的 Bash也为我们提供了两种键绑定的方案,即 emacs(认)和 vi键绑定类型。

Emacs键绑定

我们大多数天天在 Bash下无意识中使用着 Emacs键绑定类型,即使可能从未用过 Emacs本身。比如我们在 Bash下的按键组合

ctrl + a 跳到命令行的开始
ctrl + e 跳到命令行末尾
!! 重复最后一个命令
ctrl + l 清屏操作,类似于 clear命令
ctrl + c 中断/杀掉当前运行的进程 (SIGINT)
ctrl + d 发送 EOF标记,这会关掉当前的 shell (EXIT)
ctrl + z 发送 SIGTSTP给当前任务,使其挂起送到后台。(所以如果 vi未正常退出,而是按 ctrl + z的话,vi进程还呆在后台

它们都是来自于Emacs键绑定。是不是那么的熟悉啊?阅读全文 >>

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...