如何让IPython使用MacOSX上带有coreutils的.bashrc或.Bash_配置文件中的声明对Bash多行调用的输出进行着色?

如何让IPython使用MacOSX上带有coreutils的.bashrc或.Bash_配置文件中的声明对Bash多行调用的输出进行着色?,macos,bash,grep,ipython,gnu-coreutils,Macos,Bash,Grep,Ipython,Gnu Coreutils,我的配置可能有一些奇怪之处,请注意。我使用Mac OS X Mountain Lion,但我使用的是通过自制程序安装的coreutils: 我的.bash_配置文件中有一些函数,用于在Python程序中进行grepping function greppy() { find . -name '*.py' -exec grep -nHr --color "$1" {} \; ; } function grepcy() { find . -name '*.pyx' -exec grep -nHr --

我的配置可能有一些奇怪之处,请注意。我使用Mac OS X Mountain Lion,但我使用的是通过自制程序安装的coreutils:

我的.bash_配置文件中有一些函数,用于在Python程序中进行grepping

function greppy() { find . -name '*.py' -exec grep -nHr --color "$1" {} \; ; }
function grepcy() { find . -name '*.pyx' -exec grep -nHr --color "$1" {} \; ; }
要从IPython调用它们,我调用多行bash:

In [6]: %%bash
   ...: . ~/.bash_profile
   ...: greppy triangle
   ...:
这将正确运行函数,但不会为grep搜索项着色。我也注意到:

In [10]: %%bash
   ....: source ~/.bash_profile
   ....: ls --color
   ....: 
颜色输出正确,但调用:

In [11]: %%bash
   ....: source ~/.bash_profile
   ....: la
在我的.bash_配置文件中,它的别名是始终使用ls-a--color,而不是

另一个可能有用的注意事项是,my.bash_配置文件还调用dircolors来读取.dir_颜色配置,该配置调整ls的目录颜色(以不同的方式为py和pyx颜色着色,并使.pyc颜色相对灰色,以便它们不太可见)。我不确定是否有额外的互动


我在一台颜色正确的工作机器上的较旧(.ipythonrc别名)配置中设置了.bashsrc和IPython别名。我正试着在我的MacBookAir上使用同样的东西,供家庭使用。这在我的整个ipython/bash/vim Python开发圈中并不是一个非常重要的部分,但我对环境中的小细节非常挑剔,如果可以的话,我希望它能正常工作。

有点难看,但是如果你和我一样,真的想给输出着色,那么这里是你对bash和zsh的最佳选择(奖励):

zsh:

您可以定义一个别名来执行此操作:

%alias greppy zsh -c 'source ~/.zshrc && greppy %s'

希望这可能对其他人有所帮助

如果我通过
%%bash
cell magic调用ls,我会得到与您相同的行为。看起来像是个虫子。
In [10]: !zsh -c 'source ~/.zshrc; greppy searchterm'
%alias greppy zsh -c 'source ~/.zshrc && greppy %s'