[英]fish shell: unable to erase function
嘗試臨時禁用fish_mode_prompt
函數時:
function get_input -a prompt var_name -d 'get user input and place it in var_name'
functions -c fish_mode_prompt fish_mode_prompt_tmp
functions -e fish_mode_prompt
read --global --prompt-str="$prompt" $var_name
functions -c fish_mode_prompt_tmp fish_mode_prompt
functions -e fish_mode_prompt_tmp
end
我收到以下錯誤:
functions: Function “fish_mode_prompt” already exists. Cannot create copy “fish_mode_prompt_tmp”
~/.config/fishdots/plugins/fishdots_crm/init/rc1.d/01.functions.fish (line 114):
functions -c fish_mode_prompt_tmp fish_mode_prompt
^
in function “get_input”
called on standard input
with parameter list “hello world: charlie”
functionsfunctions - print or erase functions
-
Synopsis
functions [ -a | --all ] [ -n | --names ]
functions [ -D | --details ] [ -v ] FUNCTION
functions -c OLDNAME NEWNAME
functions -d DESCRIPTION FUNCTION
functions [ -e | -q ] FUNCTIONS...
functions: Type “help functions” for related documentation
我不完全確定這里發生了什么。 應該行嗎?
參見https://github.com/fish-shell/fish-shell/issues/741 。 functions --erase
實際上不會刪除包含自動加載的函數定義的文件。
與其嘗試以這種方式重命名功能,不如將其替換為虛擬實現:
function fish_mode_prompt; end
read --global --prompt-str="$prompt" $var_name
function -e fish_mode_prompt
但我不明白您為什么要這樣做。 如果您使用的是vi模式,則實際上應該始終讓其狀態指示器出現。 即使在執行read
命令時。 如果您不喜歡狀態指示器,則只需定義您自己的〜/ .config / fish / functions / fish_mode_prompt.fish自動加載的腳本,並使用一個空的fish_mode_prompt
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.