gpt4 book ai didi

shell - zsh 命令行编辑器 : go back to previous lines when entering a command

转载 作者:行者123 更新时间:2023-12-04 23:01:15 24 4
gpt4 key购买 nike

请注意,我不是在谈论历史上的前几行。我说的是当前多行命令中的前几行。

例如,当我在 zsh 中键入多行命令时(_ 表示光标):

$ for i in {1..5}; do
for> echo i_

在这一点上,我可能会改变主意,想让 i循环 {1..10}相反,所以我需要回到上一行。但是,我不知道如何执行此操作,如 ⌫、← 或 C-b ,或者任何我能想到的都停在第二行的开头。那么,到底有没有可能搬回来呢?提前致谢。

事实上,这不仅限于 zsh。例如,我也从未在 bash 中弄清楚这一点。

我已经花了相当多的时间在谷歌上搜索而没有任何发现,所以如果这很明显,请原谅我并责怪我的 Google-fu。

供您引用,我正在使用 Emacs 键绑定(bind),并且
$ bindkey | grep delete
"^D" delete-char-or-list
"^H" backward-delete-char
"^[[3~" delete-char
"^?" backward-delete-char

不确定这是否会有所帮助。

最佳答案

以下是您的 visual bash 中的模式的vim模式。

内部 .bashrc把下面几行。

set -o vi

# I do not remember which one of these is used by `v`, so I set both
export VISUAL=/usr/bin/nano
export EDITOR=/usr/bin/nano

重新加载 bash ,然后按 Esc进入 normal模式。
输入 v , 和 nano应该加载。您现在可以在 nano 中输入您的多行命令。 .保存并退出时,将执行多行命令。

对于 zsh ,您的 rc 中的以下行可以做到。我从 this answer 中偷了最后三行并在我的 zsh 上进行了测试.
bindkey -v
autoload -U edit-command-line
zle -N edit-command-line
bindkey -M vicmd v edit-command-line

关于shell - zsh 命令行编辑器 : go back to previous lines when entering a command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com