失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Mac终端terminal光标快速移动方法 emacs/vim模式 | bash vim zsh vim模式

Mac终端terminal光标快速移动方法 emacs/vim模式 | bash vim zsh vim模式

时间:2024-08-02 17:53:20

相关推荐

Mac终端terminal光标快速移动方法 emacs/vim模式 | bash vim  zsh vim模式

在Docker容器的 bash 中,默认使用的是 emacs

可以用bind -V | grep keymap查看,用 set -o vi 临时修改为 vi 模式

虽然可以在 bash 设置为永久 vi 模式,但是如果每个容器都这样去设置,那也太麻烦了,应该可以用 dockerfile 配置吧,具体还没研究过

默认emacs模式下的快捷键

将光标移动到行首:control + a将光标移动到行尾:control + e单词为单位移动:option + 方向键搜索以前使用命令:control + r快速使用历史命令: 方向键上下清除当前行:control + u清除屏幕:control + l清除至当前行尾:control + k

使用vim模式移动光标

切换到vi模式:set -o vi

退出vi的编辑模式:ESC

向前移动一个单词位:w

向后移动一个单词位:b

移动光标到行首:^

移动光标到行尾:$ 或 0

上下选择历史命令: j k

左右移动光标: h l

开启vi 模式后,默认是 insert 模式,按下esc键进入命令模式,按下i进入insert模式

若需要切换回emacs模式,执行set -o emacs即可。

开启 Mac 终端时bash默认vim模式

在实际使用中我发现仅设置set -o vi 只能保证当前是vim模式,若重启终端又会回到Emacs模式,解决方法如下

在 bashrc 中添加set -o vi,然后再配置.inputrc文件(在服务器上的 bash 也是这么设置 vim 模式的)

设置方法

在终端输入

$ vim ~/.inputrc

在这个文件里输入以下代码

set editing-mode vi$if mode=viset keymap vi-command"gg": beginning-of-history"G": end-of-history"L": end-of-lineset keymap vi-insert"jj": vi-movement-mode

设置完后,重启终端,这样就可以默认打开vim,同时可以使用我最习惯的jj来替代esc

iterm2中zsh命令行用jk映射到esc的方法

终端输入vim ~/.zshrc,添加如下代码,然后source ~/.zshrc即可

bindkey -M viins 'jk' vi-cmd-mode

How to switch comfortably to vi command mode on the zsh command line?

更新:zsh 的 vim 模式配置

打开.zshrc

bindkey -v # 开启 vi-mode 模式# 后面命令的描述参考:http://bolyai.cs.elte.hu/zsh-manual/zsh_14.htmlbindkey -M vicmd "H" vi-beginning-of-linebindkey -M vicmd "L" vi-end-of-linebindkey -M vicmd "e" down-line-or-search

文档:http://bolyai.cs.elte.hu/zsh-manual/zsh_14.html

参考:TheCW:用Vim快捷键编辑你的命令:Zsh Vi-Mode

zsh vi-mode yy 复制到剪贴板

在 zshrc 中添加如下代码:

# Yank to the system clipboardfunction vi-yank-xclip {zle vi-yankecho "$CUTBUFFER" | pbcopy -i}zle -N vi-yank-xclipbindkey -M vicmd 'y' vi-yank-xclip

/questions/61466461/yank-in-visual-vim-mode-in-zsh-does-not-copy-to-clipboard-in-ordert-to-paste-w

如果觉得《Mac终端terminal光标快速移动方法 emacs/vim模式 | bash vim zsh vim模式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。