私はArch Linuxをローカルで実行しています。以下を介してリモートDebian 10サーバーに接続するときssh
:
すべてのコマンドがステータスコード0を返す限り、すべてが正常です。別のコードが返されると、次のようにカーソルと右のプロンプトが左に2文字移動します。最初のプロンプトは正常で、Ctrl + Cを押した後、2番目のプロンプトは次のようになります。
----|---------------------------------
~ » user@hostname
--|-----------------------------------
~ » 130 ↵ user@hostname
その後、カーソル位置を表示するためにダッシュラインを手動で変更しました|
。実際に»
コマンドの入力を開始すると上書きされます。
そして、履歴にある命令を使って変更しようとすると、画面に見えるものとは異なる文字に変更をすることになり、とても混乱して面倒です。
ステータスコード0を返す次のコマンドの後、カーソルは再び正常になります。
これは端末全体で発生するようです(コンソールでAlacrittyとURXVTを使用してみました)。
私は「af-magic」テーマを使用しています。ステータスコードを表示しない別のテーマに切り替えると、問題は消えます。ステータスコード(例: "smt")を表示する他の項目についても同様です。したがって、ステータスコードの表示に関する内容が問題を引き起こしているようです。
私の.zshrc
ローカルとリモートは同じです。ローカルではこの問題はありません。
HISTSIZE=1000000
SAVEHIST=1000000
HISTFILE=~/.cache/zsh/history
## oh my zsh
export ZSH="$HOME/.config/zsh/oh-my-zsh"
ZSH_THEME="af-magic"
plugins=(
git vi-mode zsh-autosuggestions history-substring-search
)
ZSH_DISABLE_COMPFIX="true"
source $ZSH/oh-my-zsh.sh
## Load aliases
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
## vim mode config
# ---------------
bindkey -M vicmd 'k' history-substring-search-up
bindkey -M vicmd 'j' history-substring-search-down
# Activate vim mode.
bindkey -v
# autosuggest config
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#3a3a3a"
bindkey '^ ' autosuggest-accept
# Remove mode switching delay.
KEYTIMEOUT=5
# Change cursor shape for different vi modes.
function zle-keymap-select {
if [[ ${KEYMAP} == vicmd ]] ||
[[ $1 = 'block' ]]; then
echo -ne '\e[1 q'
elif [[ ${KEYMAP} == main ]] ||
[[ ${KEYMAP} == viins ]] ||
[[ ${KEYMAP} = '' ]] ||
[[ $1 = 'beam' ]]; then
echo -ne '\e[5 q'
fi
}
zle -N zle-keymap-select
_fix_cursor() {
echo -ne '\e[5 q'
}
precmd_functions+=(_fix_cursor)
この問題を解決する方法に関する提案はありますか?
ベストアンサー1
私のlocale
設定はありません。今設定しましたが動作します!