2009-05-15 6 views

Trả lời

18

Với vỏ cá mới (v2.3), bạn có thể làm set -U fish_prompt_pwd_dir_length 0. Và nó sẽ sử dụng đường dẫn đầy đủ. Tôi cũng sử dụng dartfish cho chủ đề của mình. Xem ví dụ dưới đây:

enter image description here

+1

không hoạt động 'cá, phiên bản 2.3.0' – Daniel

+0

Nó hoạt động cho tôi. Tôi có v2.3 –

+0

Tôi nên thêm rằng tôi sử dụng chủ đề dartfish. Có lẽ đó là một phần của chủ đề? –

-2

Các prompt_pwd chức năng xác định các chức năng được hiển thị. Bạn sẽ có thể viết phiên bản của riêng bạn để có được những gì bạn muốn.

16

Dưới đây là phiên bản của tôi về prompt_pwd thể sẽ hiển thị những gì bạn đang tìm kiếm:

function prompt_pwd --description 'Print the current working directory, NOT shortened to fit the prompt' 
    if test "$PWD" != "$HOME" 
     printf "%s" (echo $PWD|sed -e 's|/private||' -e "s|^$HOME|~|") 
    else 
     echo '~' 
    end 

end 

này sẽ hiển thị các dấu ngã cho thư mục chính, như thường lệ, nhưng loại bỏ các lệnh sed rằng chỉ kéo chữ cái đầu tiên từ mỗi thư mục khi bạn có một vài thư mục sâu.

Để chỉnh sửa prompt_pwd sử dụng funced. Nó sẽ cho phép bạn thay đổi chức năng tương tác. Từ dòng lệnh loại funced prompt_pwd. Khi lời nhắc hiển thị theo ý thích của bạn, hãy sử dụng funcsave prompt_pwd để làm cho hành vi vẫn tồn tại trong các phiên trong tương lai.

+3

Bạn không thực sự cần những 'if', trong dir nhà,' sed' vẫn sẽ sản xuất '~ ' – jpillora

+0

Phiên bản của bạn xuất hiện trên máy tính của tôi như là'/V/Y/U/s/D/p001' thay vì 'Âm lượng/Yosemite Tôi/Người dùng/slippyd/Máy tính để bàn/p001' (kết quả của' echo $ PWD) '. –

+1

Gõ 'fish_config' vào vỏ cá, nó sẽ mở ra giao diện web cấu hình cá trong trình duyệt của bạn. Bây giờ bạn có thể chọn từ một danh sách dài các tùy chọn cho lời nhắc của bạn .. – Bhargav

5

Cá nhân tôi không thích chạm vào chia sẻ/mặc định. Cá có một thiết kế chức năng tuyệt vời, do đó tận dụng điều đó.

Tạo ~/.config/fish/functions/prompt_long_pwd.fish với các nội dung:

function prompt_long_pwd --description 'Print the current working directory' 
     echo $PWD | sed -e "s|^$HOME|~|" -e 's|^/private||' 
end 

Sau đó, chỉ cần chỉnh sửa của bạn ~/.config/fish/functions/fish_prompt.fish sử dụng prompt_long_pwd. Đây là dấu nhắc tùy chỉnh mà tôi sử dụng:

~/.config/cá/config.fish:

set -g __fish_git_prompt_show_informative_status 1 
set -g __fish_git_prompt_hide_untrackedfiles 1 

set -g __fish_git_prompt_color_branch magenta bold 
set -g __fish_git_prompt_showupstream "informative" 
set -g __fish_git_prompt_char_upstream_ahead "↑" 
set -g __fish_git_prompt_char_upstream_behind "↓" 
set -g __fish_git_prompt_char_upstream_prefix "" 

set -g __fish_git_prompt_char_stagedstate "●" 
set -g __fish_git_prompt_char_dirtystate "✚" 
set -g __fish_git_prompt_char_untrackedfiles "…" 
set -g __fish_git_prompt_char_conflictedstate "✖" 
set -g __fish_git_prompt_char_cleanstate "✔" 

set -g __fish_git_prompt_color_dirtystate blue 
set -g __fish_git_prompt_color_stagedstate yellow 
set -g __fish_git_prompt_color_invalidstate red 
set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal 
set -g __fish_git_prompt_color_cleanstate green bold 

~/.config/cá/chức năng/fish_prompt.fish

function fish_prompt --description 'Write out the prompt' 

    set -l last_status $status 

    if not set -q __fish_prompt_normal 
     set -g __fish_prompt_normal (set_color normal) 
    end 

    # PWD 
    set_color $fish_color_cwd 
    echo -n (prompt_long_pwd) 
    set_color normal 

    printf '%s ' (__fish_git_prompt) 

    if not test $last_status -eq 0 
    set_color $fish_color_error 
    end 

    echo -n '$ ' 

end 
+0

không nhận được phiếu bầu ... câu trả lời này có đúng không? – rynop

+0

Hầu hết câu trả lời của bạn không liên quan đến việc trả lời câu hỏi. Mọi người muốn bạn xóa các phần không liên quan. –

0

Cách dễ nhất để tùy chỉnh dấu nhắc cá là sử dụng fish_config.