簡體   English   中英

如何使用fish_prompt_pwd_dir_length 在提示中更改fish pwd 長度?

[英]How do you change fish pwd length in prompt using fish_prompt_pwd_dir_length?

我希望魚殼在提示中顯示完整路徑。 查看 pwd_prompt 的來源,我看到一個名為 fish_prompt_pwd_dir_length 的變量,如果將其設置為 0,它應該可以執行我想要的操作。

但是當我set -U fish_prompt_pwd_dir_length 0什么也沒有發生。

查看fish_config variables 選項卡,我看到此變量設置為 0,但顯示的路徑仍然減少。

我做錯了什么,你真的可以在不編寫自己的 pwd_prompt 函數的情況下做到這一點嗎?

UPD(2016 年 6 月 20 日):

自 2.3.0 版(現在是最新版本)以來,一切都按預期工作

上一個答案:

到目前為止,我的解決方法是將prompt_pwd復制到新函數prompt_pwd_full並稍微處理一下。

prompt_pwd_full.fish:

set -l args_pre
set args_pre $args_pre -e 's|^/private/|/|'

function prompt_pwd_full -V args_pre
  set -q fish_prompt_pwd_dir_length; or set -l fish_prompt_pwd_dir_length 1

  if [ $fish_prompt_pwd_dir_length -eq 0 ]
    set -l fish_prompt_pwd_dir_length 99999
  end

  set -l realhome ~
  echo $PWD | sed -e "s|^$realhome|~|" $args_pre -e 's-\([^/.]{'"$fish_prompt_pwd_dir_length"'}\)[^/]*/-\1/-g'
end

注意:我在 OS X 上,所以我拋出了一堆與它無關的代碼,所以它可能無法在其他操作系統上運行。

UPD:正如faho在評論中指出的那樣,沒有特別的理由將/private/重寫為/ ,所以我的函數現在看起來像這樣:

function prompt_pwd_full
  set -q fish_prompt_pwd_dir_length; or set -l fish_prompt_pwd_dir_length 1

  if [ $fish_prompt_pwd_dir_length -eq 0 ]
    set -l fish_prompt_pwd_dir_length 99999
  end

  set -l realhome ~
  echo $PWD | sed -e "s|^$realhome|~|" -e 's-\([^/.]{'"$fish_prompt_pwd_dir_length"'}\)[^/]*/-\1/-g'
end

set -g fish_prompt_pwd_dir_length 80添加到~/.config/fish/config.fish對我~/.config/fish/config.fish 我的魚版本是3.0.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM