5
我是一個vim用戶,最近剛開始玩zsh能夠在shell中使用vi模式(由於缺少插入/命令,這在bash中不實用模式指示器)。讀了一些例子,我設置了以下功能更新相應的線(我選擇了色彩方案,以配合VIM電力線,這也是我使用):zsh清除RPS1之前添加線到線緩衝區
vim_ins_mode="%{$fg[white]%}%{$fg_bold[blue]$bg[white]%} INSERT %{$reset_color%}"
vim_cmd_mode="%{$fg[green]%}%{$fg_bold[black]$bg[green]%} COMMAND %{$reset_color%}"
vim_mode=$vim_ins_mode
function zle-line-init zle-keymap-select {
RPS1="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}"
RPS2=$RPS1
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
它的偉大工程,只是因爲我運行更命令,先前命令中的RPS1將輸出到屏幕。你可以想像,有遍佈我的終端多明亮的箱子可以得到相當分散:
我希望以某種方式清除此字段,然後纔會慢慢倒入linebuffer爲前面的命令,但到目前爲止,無論是例子也沒有zsh主題我看着麻煩做這個。在我舊的.bashrc文件中,我有一個陷阱設置來重置我的命令的顏色,以便輸出顏色不受影響,我想知道在這裏可能有類似的東西嗎?或者也許有一個更清潔的方式與zsh?
完美的,正是我想要的,並且比陷入困境要乾淨得多 –
@AlexanderTsepkov關於這個選項的有趣之處在於我總是把它放在'.zshrc'中。但它不是默認的,所以用'zsh -f'測試你的代碼就會顯示你的行爲。而且這是你不會注意到的小便利之一,直到他們被刪除,所以我沒有記住我實際上沒有上述代碼所要求的行爲。 – ZyX