我的配置可能有一些奇怪之处,只是需要注意。我在Mac OS X Mountain Lion上,但使用通过Homebrew:安装的coreutils
我的.bash_profile中有一些函数用于通过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_profile中始终使用ls-a-color,而不是。
另外一个可能有用的注意事项是,我的.bash_profile还调用dircolors来读取.dir_colors配置,该配置调整了ls的目录颜色(使py和pyx的颜色不同,并使.pyc的颜色相对为灰色,这样它们就不那么显眼了)。我不确定是否还有其他互动。
我在一台颜色正确的工作机器上的一个旧的(.ipysonrc别名)配置中设置了一个.bashsrc和IPython别名。我正试图让同样的东西在我的MacBook Air上运行,供家庭使用。这并不是我整个ipython/bash/vim Python开发圈子中非常重要的一部分,但我对环境中的一些小细节非常挑剔,如果可以的话,我希望它能发挥作用。
有点难看,但如果你像我一样,真的想给输出上色,下面是你对bash和zsh(奖金)的最佳选择:
In [10]: !bash -c 'source ~/.bash_profile; greppy searchterm'
zsh:
In [10]: !zsh -c 'source ~/.zshrc; greppy searchterm'
你可以定义一个别名:
%alias greppy zsh -c 'source ~/.zshrc && greppy %s'
希望这能对其他人有所帮助!