簡體   English   中英

如何在Mac OS X上使用coreutils使IPython使用來自.bashrc或.bash_profile的聲明為Bash多行調用的輸出着色?

[英]How do I get IPython to color output from Bash multiline invocation with declarations from my .bashrc or .bash_profile on Mac OS X with coreutils?

我的配置可能有些奇怪,僅作說明。 我在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的顏色相對為灰色,從而使它們更少)可見)。 我不確定是否還有其他互動。

我在工作計算機上的舊版本(.ipythonrc別名)配置中設置了.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'

希望這對其他人有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM