鱼经常发出警告
error: Unable to open universal variable file '/': Permission denied
造成这种情况的原因是什么?如何解决?
鱼经常发出警告
error: Unable to open universal variable file '/': Permission denied
造成这种情况的原因是什么?如何解决?
对于上下文,我使用的是 FISH 3.1.0。
我查看了fish_config
,但没有一个提示选项只是删除主机名/计算机,而其余部分保持不变。
有没有办法保留大部分默认提示,但只是在开始时删除该部分?
我只是使用默认提示。这里完全使用type fish_prompt
:
fish_prompt is a function with definition
# Defined in /usr/share/fish/functions/fish_prompt.fish @ line 4
function fish_prompt --description 'Write out the prompt'
set -l last_pipestatus $pipestatus
set -l normal (set_color normal)
# Color the prompt differently when we're root
set -l color_cwd $fish_color_cwd
set -l prefix
set -l suffix '>'
if contains -- $USER root toor
if set -q fish_color_cwd_root
set color_cwd $fish_color_cwd_root
end
set suffix '#'
end
# If we're running via SSH, change the host color.
set -l color_host $fish_color_host
if set -q SSH_TTY
set color_host $fish_color_host_remote
end
# Write pipestatus
set -l prompt_status (__fish_print_pipestatus " [" "]" "|" (set_color
$fish_color_status) (set_color --bold $fish_color_status) $last_pipestatus)
echo -n -s (set_color $fish_color_user) "$USER" $normal @ (set_color
$color_host) (prompt_hostname) $normal ' ' (set_color $color_cwd)
(prompt_pwd) $normal (fish_vcs_prompt) $normal $prompt_status $suffix " "
end
我使用 fish shell 和 Gnome-Terminal 版本 3.44。
当我打开一个新终端时,我希望它在以前访问过的目录中启动。我怎样才能通过鱼壳来实现呢?
我在 /Users/myUser/.config/fish/functions 中名为 mvnw.fish 的文件中有一个 fish 函数
/Users/myUser/.config/fish/functions 目录确实出现在 $fish_function_path 变量中(在第一位,并不重要)。
我的功能似乎有效:
function mvn-or-mvnw
if [ -f ./mvnw ]
echo "Executing mvnw instead of mvn"
./mvnw $argv
else
mvn $argv
end
end
如果我明确地采购它,它确实可以正常工作。但它永远不会被鱼自动拾取。
我究竟做错了什么?
很抱歉,我在这里问这样的问题,但我完全不知道是什么原因造成的,而且我似乎无法在其他任何地方找到任何信息。每当我在我的计算机(运行 MacOS Big Sur 11.4 的英特尔 Mac)上启动 fish 时,我都会收到一个关于 $PATH 条目的长错误。
set: Warning: $PATH entry "/usr/local/opt/fzf/bin:/usr/local/opt/[email protected]/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/opt/[email protected]/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/VMware Fusion.app/Contents/Public:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS" is not valid (No such file or directory)
set: Did you mean 'set PATH $PATH /usr/local/opt/[email protected]/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/opt/[email protected]/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/VMware Fusion.app/Contents/Public:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Wireshark.app/Contents/MacOS'?
我能想到的唯一问题是我的计算机上没有安装 Wireshark,但我发现这不太可能,因为它曾经是,但我很久以前就卸载了它,而且这个错误在最近几天才开始出现。
有谁知道这个错误的原因以及我如何能够解决它?
我的鱼配置包含以下绑定:
bind \ci nextd-or-forward-word
bind \co prevd-or-backward-word
bind \t complete
当我注释掉complete
然后目录导航按预期工作。但是打开它会导致重新绑定\ci
as Tab
,因此nextd-or-forward-word
不再起作用。我知道根据控制字符没关系,我也可以通过发出以下命令来确认:
>> fish_key_reader
Press a key:
hex: 9 char: \cI (or \t)
bind \t 'do something'
但是,我想区分\cI
和Tab
。有没有办法在 Fish 中实现这一点?
每当我打开一个新的终端窗口(小于 100 列宽)时,Fish 都会提示我:
⏎
foo@bar ~>
我没想到第一行⏎会出现!如果它是 100 列或更宽,则不会出现此行...
我不记得这种情况是什么时候开始发生的,可能是一个月左右,但我可以说它在 fish 3.2.1 版和任何时候都会以这种方式运行$COLUMNS <= 99
。我已经清空了我的启动脚本,试图找出导致它的原因,而我的 MWEconfig.fish
包含:
set foo (ls)
即捕获完整输出的外部程序。$COLUMNS
我在100 或更大时看不到那个字符。
这感觉像是一个错误,我在这里搜索了主要的 stackoverflow 站点,以及 fish github 存储库上的问题。我在archlinux下使用wayland,在foot终端模拟器中显示,Sway作为窗口管理器。weston-terminal
我可以在and中复制它urxvt
,但在tmux
.
有关如何使这种情况消失的建议将不胜感激!
什么是从fish绑定键绑定以运行当前命令提示符并将其通过管道传输到 fzf 以便于搜索/选择的简单方法?
即 1 按键的完成方式| fzf (enter)
?
来自https://linux.die.net/man/1/zshmisc:
noglob
Filename generation (globbing) is not performed on any of the words.
zsh 示例:
$ ls /*
<lots of output>
$ noglob ls /*
ls: cannot access '/*': No such file or directory
$ ls "/*"
ls: cannot access '/*': No such file or directory
在鱼中,这适用于引号:
$ ls "/*"
ls: cannot access '/*': No such file or directory
鱼是否可以在不需要引号的情况下做同样的事情?