
答え1
次のことができます。
$ set -o extendedglob -o promptsubst
$ PS1='${${${PWD/#%(#b)$HOME(|\/*)/
答え2
- ファイルを編集する必要があります
.p10k.zsh
(私の場合はzsh / oh-my-zsh / iTermでpowerlevel10kを使用しています)。
(または必要な他のエディタを使用してください)。nano .p10k.zsh
- 行を検索し
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY
、次の値を追加します。typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_from_right
- 次の行を検索して
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER
スペースに設定します。typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
- 最後に、行を検索し
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH
て値1を追加します。typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
標準のzshテーマ(powerlevel10kテーマなし)を使用している場合は、次のことを試すことができます。
次に追加~/.zshrc
:
setopt prompt_subst
PROMPT='\$ /$(printf "%c/" ${(s./.)PWD:h})${PWD:t} '
(s./.)
– でパスを分割します/
。printf "%c/"
- 各ディレクトリフラグメントの最初の文字を印刷します。${PWD:h}
- 現在のディレクトリの「ヘッド」、つまり最後の要素を除くすべて。${PWD:t}
- ディレクトリパスの「tail」/最後の要素。
答え3
リンクを作成できます。
ln -s pokemon P
cd pokemon
その後、orを実行するとcd P
同じディレクトリになります。
答え4
私はこのテストをしました:
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print $i}}'
result : /opt/tools/intel/oneapi
それからこれ:
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print substr($i,1,1)}}'
result : /o/t/i/o
したがって、bashrcを次のように修正してみることができます。
function generate_pwd {
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print substr($i,1,1)}}'
}
export PS1="\$(generate_pwd) => "
うまくいきます。