zle

Zsh:使单个文件选择智能、时尚且功能正确(突出显示、光标下方的完成等)
zle

Zsh:使单个文件选择智能、时尚且功能正确(突出显示、光标下方的完成等)

我希望使用 zsh 拥有一个近乎完美的“单文件选择器”。到目前为止,我还没有看到任何问题,因为他们倾向于关注命令行的 zle 设置。假设我们正在编写一个文件选择器,提示用户在某个目录中提供单个文件。下面是我的起始代码,可以工作,但需要进行多项改进: 突出显示:当前菜单选项应反白突出显示。 顺序:可能的文件补全应显示在提示下方。 提示步进:在打印上面可能的选项后,提示不应向下步进。这与2有关。 仅一个:仅按 Tab 键完成第一项,因为我们只要求用户提供 1 个文件名,而不是多个。 (这就是我所说的“功能正确”的意思) 大小:如果可能的完成数量超出了提示下方的...

Admin

如何在 zle emacs 键盘映射中将元更改为选项 (macOS)?
zle

如何在 zle emacs 键盘映射中将元更改为选项 (macOS)?

由于我同时使用 bash 和 zsh,因此我想学习 zle 的 emacs 键盘映射(因为这是 bash 中的默认设置)。我的问题是 macOS 的选项键无法与元快捷方式一起使用(例如 M-. 用于从最后一个命令中提取最后一个参数)。有没有办法将选项键设置为元? ...

Admin

当前的 zle 键映射/模式是什么?
zle

当前的 zle 键映射/模式是什么?

例如,如果我按下正确的按键组合进入viins并离开终端,然后忘记了,我如何知道我什么时候回来?我如何知道默认模式是什么?该指南有这样的内容: 如果您处于错误的模式,~/.zshrc 中的“bindkey -e”将带您进入 emacs 模式,“bindkey -v”将带您进入 vi 模式。 但什么是模式?我想在打字之前知道。据我所知, $KEYMAP 特殊变量仅可用之内zle 小部件,我在 zshell 用户指南中找不到任何man zshzle关于如何判断当前模式的信息。 任何帮助或见解将不胜感激。 ...

Admin

模糊搜索历史记录:显示历史记录,保持多行命令的行完整
zle

模糊搜索历史记录:显示历史记录,保持多行命令的行完整

我正在开发一个 zsh 小部件来模糊搜索历史记录。 skim-history() { origquery=${BUFFER} output=$(history -1 1 | sd '^[ ]*[0-9]*[ ]*' '' | sk --tac --no-sort --exact) if [ $? -eq 0 ]; then BUFFER=$output else BUFFER=$origquery fi CURSOR=$#BUFFER } zle -N skim-history bindkey '^R...

Admin

如何在触发bindkey后取消zle功能?
zle

如何在触发bindkey后取消zle功能?

希望你做得很好。 我的 中有以下内容.zshrc: # 1. invoke zoxide to pick dir # 2. open target dir in ranger # 3. when exiting ranger, cd into last dir zoxide_to_ranger () { eval 'ranger "$(zoxide query -i)" --choosedir=$HOME/.rangerdir < $TTY' LASTDIR=$(< ~/.rangerdir) cd "$LASTDIR" ...

Admin

zsh History-beginning-search-backwards 未根据需要定位光标
zle

zsh History-beginning-search-backwards 未根据需要定位光标

在 bash 中,我使用了这个: % cat .inputrc "\e[A": history-search-backward "\e[B": history-search-forward 我希望在 .zsh 中有相同的行为,所以我尝试了这些绑定键: "^[[A" history-beginning-search-backward "^[[B" history-beginning-search-forward 这些几乎是我想要的,除了当我只是向上箭头(没有输入文本)查看紧邻的上一个命令时,光标位于行的开头,而不是末尾。 'bindkey'^[[A'his...

Admin

zsh 中的“全局键盘映射”是什么?
zle

zsh 中的“全局键盘映射”是什么?

zsh手册中18.2.2 本地键盘映射它三次引用“全局键盘映射”。 这个术语是在哪里定义的? 如何找出我当前的全局键盘映射是什么,以及如何更改它? ...

Admin

如何在 zsh 中使用 `Alt + .` 与 Vim 绑定
zle

如何在 zsh 中使用 `Alt + .` 与 Vim 绑定

我正在使用 zsh 和bindkeys -v. Alt + .不按预期工作。它似乎在下一行重复当前在标准输入中输入但未输入的内容。 这个帖子似乎暗示它确实像在 bash 中那样工作,即获取最后输入的命令的最后一个参数。 需要什么才能使这项工作按预期进行? ...

Admin

zsh 键绑定:使后向杀字作用于整个带引号的字符串
zle

zsh 键绑定:使后向杀字作用于整个带引号的字符串

当使用Ctrl+w或Alt+Backspace或Alt+d键盘快捷键向后/向前删除单词时,我知道我可以定义 WORDCHARS 字符: WORDCHARS='~!#$%^&*(){}[]<>?.+;-' 例如,使用Ctrl+wfrom 该字符串的末尾,将连续删除每个单词 echo aaa bbb ccc ddd eee 但如果我有带引号的字符串,如何将整个带引号的块视为一个实体? echo 'aaa bbb ccc' 'ddd eee fff' 所以,Ctrl+w应该一次性删除整个“ddd eee fff”。对于用双引号引起来的字符...

Admin

在 zle 键绑定中使用 fzf
zle

在 zle 键绑定中使用 fzf

我的中有以下功能.zshrc function foo() { filename="$(fzf)" } zle -N foo bindkey '^X' foo 现在,如果我foo通过键入来调用它,它会按预期工作,但如果我通过 键绑定 with 来调用它^X,则fzf缓冲区为空。 任何人都可以复制这个吗?我怎样才能解决这个问题? ...

Admin

zsh:菜单补全中的 PageUp
zle

zsh:菜单补全中的 PageUp

在我的.zshrc我有 zstyle ':completion:*' menu select=20 这样,当我点击Tab两次时,我会收到一个完成菜单(假设至少有 20 个可供选择)。然后我可以使用Up和Down键进行导航。我希望向上/向下PgUp滚动PgDown页面,但这不是默认行为。 一个自然的想法是使用bindkey绑定PgUp和PgDown适当的命令。但是,我只能在文档中找到up-line-or-history和,但找不到它们的页面类似物。down-line-or-history我缺少什么? ...

Admin

如何在 Zsh Line Editor 中绑定 _list_expansions
zle

如何在 Zsh Line Editor 中绑定 _list_expansions

我正在尝试将“可能的完成”(当前绑定到)绑定到Zsh 中的C-d键。M-= 因此,代码应该是: bindkey "\e=" _list_expansions 但没有效果!?您了解原因以及如何解决吗? ...

Admin