最近开始用Zsh取代Bash。每每被问why? 因为个人也是新手,很难全面的概括Zsh的长处和短处。 但是个人特别喜欢的一个Zsh的一个功能是push-line.
在用命令行的时候,经常会遇到这样的情况: 一个命令输完了,才想起来在这个之前必须执行另外一条命令。用Bash的时候,只好全部删除然后重新输入。 但是Zsh的话,就可以使用push-line的功能--把当前已经输入的命令push到一个stack里,先去执行别的命令,完成后,刚才输入到一半的命令会自动调出来,以便继续输入或执行。
比如:
% ls
(按下Ctrl-Q, ls命令会被push到stack中,命令行被清空)
% cd ~/dev/
(输入新的命令,回车后cd命令会被执行)
% ls
(刚才输入的ls命令自动被pop到命令行上)
如何,这个功能很方便吧。下面介绍一下如何绑定push-line功能的快捷键。
Zsh支持Emacs和VI(注意不是VIM)风格的输入。在Emacs风格下,<Ctrl-Q>或者<ESC-Q>都默认绑定到push-line功能上。但是在很多终端上,<Ctrl-Q>被设置为重开output, 这样就与Zsh的设定冲突了,不能使用。而在VI风格下,默认没有push-line的快捷键绑定。
下面,给出push-line快捷键设定的一种方法。
Zsh下通过bindkey命令来查看和更改快捷键设置。
%bindkey -l
列出目前可用keymap。默认情况下有emacs, viins, vicmd 和 main 四个keymaps.
viins是VI的insert mode,vicmd是VI的command mode。 main是一个pointer,指向目前正在被使用的keymap.
%bindkey -N newmap viins
以viins为基础,创建一个新的keymap。创建出来的newmap是viins的一个copy。类似的,你可以基于emacs创建自己的keymap。
%bindkey -M newmap '^K' push-line
指定<Ctrl-K>为push-line功能的快捷键。这一设定是针对newmap这个keymap的。
%bindkey -A newmap main
让main指向newmap。 其实就是alias.
好了。这样就可以通过Ctrl-K来调用push-line功能了。
分享到:
相关推荐
此安装包适用于centos7,本人采用 yum install --downloadonly --downloaddir=./study/zsh_do wnload zsh 命令将安装包获得,对于网络不方便的小伙伴,将其下载后,只需要一条 命令即可完成安装:rpm -ivh zsh-5.0.2...
语法高亮插件 https://github.com/zsh-users/zsh-syntax-highlighting
Debian11-zsh-std-80g.ova
zsh-git-prompt, 用于zsh的信息性git提示 针对zsh的实时信息提示 显示当前git存储库信息的zsh 提示。 特别是分支 NAME 。与远程分支的差异。暂存的文件数。更改等。( 来自这个博客帖子的最初想法) 。示例提示可能...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
Ubuntu 18.04下安装zsh和oh-my-zsh
zsh高亮插件zsh-syntax-highlighting-master.zip。zsh-syntax-highlighting-master.zip
zsh-syntax-highlighting
zsh-better-npm-completion:更好地完成npm
zsh-5.5.1-6.el8_1.2.x86_64.rpm
RockyLinux8-zsh-std-80g.ova.
RockyLinux84-zsh-lvm-160g.ova,网盘文件,永久连接
Ubuntu2004-zsh-lvm-160g.ova,网盘文件,永久连接
docker-zsh-completion-1.13.1-47.2.gitf43d177.el7.x86_64.rpm
zsh-abbrev-alias 该zsh插件提供的功能类似于Vim的缩写扩展。 该插件查询了 。 有关bash版本,请参见 。 安装 使用 zplug " momo-lab/zsh-abbrev-alias " 别名设置是在zplug load后zplug load 。 例如 $ abbrev...
哦,我Linux 一起安装zsh,Oh My Zsh,zsh-syntax-highlighting,zsh-users / zsh-autosuggestions,zsh-completions和powerlevel10k。
zsh-history-substring-search 这是的历史记录搜索功能的无尘室实现,您可以在其中键入历史记录中任何命令的任何部分,然后按选定的键(例如UP和DOWN箭头)来循环进行匹配。 要求 4.3或更高版本 安装 使用软件包...
zplug " akarzim/zsh-docker-aliases " 使用 : git clone https://github.com/akarzim/zsh-docker-aliases.git ~ /.oh-my-zsh/custom/plugins/zsh-docker-aliases # then add `zsh-docker-aliases` to `plugins` ...
zsh是众多shell里面比较强大的一个,有强大的补全功能,绚丽的颜色配置,传统的bash在它面前都显得没有任何光彩,最重要的就是兼容bash,但是又比bash好用,这里是基于oh-my-zsh的一个强大的配置文件