`
tetsu.soh
  • 浏览: 78158 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

zsh小技巧 -- push-line与customize key binding

阅读更多
最近开始用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功能了。

0
0
分享到:
评论

相关推荐

    zsh-5.0.2-33.el7.x86_64.rpm

    此安装包适用于centos7,本人采用 yum install --downloadonly --downloaddir=./study/zsh_do wnload zsh 命令将安装包获得,对于网络不方便的小伙伴,将其下载后,只需要一条 命令即可完成安装:rpm -ivh zsh-5.0.2...

    zsh-syntax-highlighting.zip

    ZSH语法高亮插件,全称为"zsh-syntax-highlighting",是由开源社区项目GitHub上的"zsh-users"组织维护的一个重要工具。该插件的目标是实时地对用户输入的ZSH命令进行语法高亮,使得命令行界面更加清晰、易读,从而...

    Ubuntu 18.04下安装zsh和oh-my-zsh.doc

    zsh-syntax-highlighting 是一个语法高亮插件,可以使用以下命令安装: `git clone https://github.com/zsh-users/zsh-syntax-highlighting.git` 或者使用 `sudo apt install zsh-syntax-highlighting` 命令。 ...

    Debian11-zsh-std-80g.ova

    Debian11-zsh-std-80g.ova

    zsh-5.0.2-34.el7_8.2.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    zsh-syntax-highlighting

    `zsh-syntax-highlighting` 是一个用于 Z shell 的语法高亮插件,它为命令行输入提供了丰富的颜色和样式,使用户在输入命令时可以更容易地识别出不同的语法元素,从而提高效率和减少错误。这个插件是开源社区的产物...

    zsh-git-prompt, 用于zsh的信息性git提示.zip

    zsh-git-prompt, 用于zsh的信息性git提示 针对zsh的实时信息提示 显示当前git存储库信息的zsh 提示。 特别是分支 NAME 。与远程分支的差异。暂存的文件数。更改等。( 来自这个博客帖子的最初想法) 。示例提示可能...

    zsh-vi-mode:Z适用于ZSH的更好且友好的vi(vim)模式插件

    学习`zsh-vi-mode`需要对vi/vim编辑器有一定的了解,可以通过在线教程、官方文档或者参考其他经验丰富的用户分享的配置来掌握更多技巧。随着熟练度的提高,你会发现这种模式可以极大地提高命令行操作的效率,使你在...

    zsh-better-npm-completion:更好地完成npm

    `zsh-better-npm-completion`是一个专门针对npm(Node Package Manager)的ZSH(Z Shell)插件,旨在提高开发者在使用npm命令时的体验,通过智能补全功能,帮助用户更快速、准确地输入命令。 首先,我们要理解ZSH是...

    zsh-syntax-highlighting-master.zip

    标题"zsh-syntax-highlighting-master.zip"表明这是一个压缩文件,其中包含的是与ZSH(Z shell)相关的代码或插件。"zsh-syntax-highlighting-master"部分提示我们,这个插件专注于ZSH的语法高亮功能,而".zip"则...

    zsh-autosuggestions

    **zsh-autosuggestions** 是一个为 Zsh(Z shell)设计的插件,它提供了命令行自动补全的功能,可以极大地提升用户在终端中的工作效率。这个插件基于用户输入历史记录,实时地提供可能的命令建议,用户只需要通过...

    linux-简单的zsh插件可在长时间运行的任务完成后自动发送通知

    本主题关注的是一种名为"zsh-auto-notify"的插件,该插件在长时间运行的任务完成时能自动发送通知,极大地提升了用户的工作效率。 **ZSH插件机制** ZSH插件系统允许用户通过加载预先编写好的插件来扩展其功能。这些...

    zsh-5.0.2-31.el7.x86_64.rpm

    zsh-5.0.2-31.el7.x86_64

    RockyLinux8-zsh-std-80g.ova.rar

    【RockyLinux8-zsh-std-80g.ova.rar】这个压缩包文件的标题表明,它包含了一个名为"RockyLinux8-zsh-std-80g.ova"的虚拟机镜像文件,该镜像是基于RockyLinux8操作系统,并且优化了用于标准ZSH(Z shell)环境。...

    zsh-syntax-highlighting:鱼壳,如Zsh的语法突出显示

    对于开发者来说,`zsh-syntax-highlighting` 还提供了一些实用的调试选项,可以帮助定位和解决与插件相关的任何问题。例如,开启 `ZSH_HIGHLIGHT_DEBUG` 变量可以打印出高亮规则的匹配信息。 总之,`zsh-syntax-...

    zsh-5.5.1-6.el8_1.2.x86_64.rpm

    zsh-5.5.1-6.el8_1.2.x86_64.rpm

    Item2zshoh-my-zsh完全使用手册及坑解决方案.docx

    plugins=(git zsh-autosuggestions zsh-syntax-highlighting) # 使更改立即生效 source ~/.zshrc ``` #### 卸载oh-my-zsh 若想卸载oh-my-zsh,可以使用官方提供的卸载脚本。 ```bash uninstall_oh_my_zsh ``` ##...

    zsh-syntax-highlighting-filetypes:使用dircolors实时突出显示zsh语法

    zsh-syntax-highlighting-filetypes是一个zsh插件,它扩展了zsh-syntax-highlighting项目,为不同的文件类型提供特定的高亮显示。这个插件的目标是帮助用户更直观地理解命令行输入,提高代码的可读性和编辑效率。...

    linux-优化和扩展zshsyntaxhighlighting

    3. **集成其他插件**:如果使用了其他`zsh`插件,如`autojump`或`z`,可以考虑与`zsh-syntax-highlighting`进行集成,使得它们的命令也能得到高亮。 4. **共享和反馈**:如果你创建了一个有用的扩展或优化,记得...

Global site tag (gtag.js) - Google Analytics