Ame*_*ina 24 osx shell coreutils
我刚刚切换到 Macbook Air。我安装的zsh使用自制的,但是当我在使用一些代码,我(原本).zshrc
,我得到一个错误说.dircolors was not found
。
下面是有问题的代码:
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
Run Code Online (Sandbox Code Playgroud)
是dircolors
不是与Mac OS X运?我应该如何安装它?
如果我直接在 shell 上运行 dircolors 我得到:
bash: dircolors; command not found
Gil*_*il' 15
该命令dircolors
特定于 GNU coreutils,因此您可以在非嵌入式 Linux 和 Cygwin 上找到它,但不会在其他 Unix 系统(如 OSX)上找到它。生成的设置.zshrc
不能移植到 OSX。
由于您使用的是默认颜色,因此您可以将空字符串传递给
list-colors
以获取文件完成中的颜色。
对于带有实际ls
命令的颜色,请CLICOLOR
在 OSX 上设置环境变量,LSCOLORS
如果要更改颜色,还要设置(格式参见手册)。
if whence dircolors >/dev/null; then
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
alias ls='ls --color'
else
export CLICOLOR=1
zstyle ':completion:*:default' list-colors ''
fi
Run Code Online (Sandbox Code Playgroud)
如果你想设置非默认颜色(dircolors
使用文件参数),我的建议是对dircolors -b ~/.dircolors
你的输出进行硬编码,.zshrc
并为 zsh 和 GNU ls 使用这些设置。
LS_COLORS=…
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
if whence dircolors >/dev/null; then
export LS_COLORS
alias ls='ls --color'
else
export CLICOLOR=1
LSCOLORS=…
fi
Run Code Online (Sandbox Code Playgroud)
Rap*_*ens 14
因为 FreeBSD 没有命令dircolor
并且 OS X 有 FreeBSD 的基础,所以你不能使用它。
最简单的就是使用
export CLICOLOR=YES
Run Code Online (Sandbox Code Playgroud)
在您的.zshrc
and.bashrc
和 remove 中eval "$(dircolors -b)"
。要更改颜色,您可以使用环境变量LSCOLORS
。例如:
export LSCOLORS="Gxfxcxdxbxegedabagacad"
Run Code Online (Sandbox Code Playgroud)
您可以在手册页中找到有关它的更多信息
man ls
Run Code Online (Sandbox Code Playgroud)
另一种方法export CLICOLOR=YES
是使用别名ls
alias ls=ls -G
Run Code Online (Sandbox Code Playgroud)
有些人建议从 Mac Ports 安装 GNU-Coreutils,但在我看来,这是一种矫枉过正。你可以在这里找到端口
小智 7
我不再做整个 mac 的事情,所以我没有任何东西可以测试,但是为了让这个在 FreeBSD 上工作,我设法弄清楚如何从端口让它工作。我记得OSX有这样的东西brew
和macports
-尝试从此安装GNU的coreutils如果你真的想dircolors
工作。我还必须为设置别名dircolors
来gdircolors
,因为这是命令FreeBSD的港口安装了乐趣。祝任何最终尝试这个的人好运!
这是某人通过 brew 获取 coreutils 的链接:
http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
您可以dircolors
从 Homebrew coreutils 包安装:
brew install coreutils
Run Code Online (Sandbox Code Playgroud)
但是,默认情况下,GNU coreutils 不包含在内PATH
。编辑您的~/.zshrc
,~/.bashrc
并添加:
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
Run Code Online (Sandbox Code Playgroud)
现在启动新的 shell 会话后dircolors
应该可以工作了。
归档时间: |
|
查看次数: |
35381 次 |
最近记录: |