我正在尝试使用textmate,但我发现很难用它来导航项目。
我承认我可能只是不太了解IDE。
是否可以突出显示类或方法并跳转到其定义?
答案 0 :(得分:5)
我不确定我是否理解你的问题,但是如果你想找一个适合Python的IDE,我强烈建议你看一下PyDev
它是迄今为止功能最丰富的Python IDE,它拥有一个非常活跃的开发团队。我是否提到它的免费和开源?
答案 1 :(得分:1)
Wing IDE是python的优秀IDE。
答案 2 :(得分:1)
我也一直在寻找能够轻松实现此类事情的IDE 。
大约两个小时前,我下载了Pycharm,这让我感到震惊。对于任何语言,这可能是我用过的最酷的IDE。到目前为止,它似乎完成了像VisualStudio或Eclipse这样的大型IDE(对于许多语言)所做的一切,只是没有这些怪物的学习曲线或资源消耗。
它完全符合您的要求......只需右键单击任何类,方法或其他任何内容,选择“转到实现”(或声明),然后弹出一个新选项卡
还有许多其他令人惊奇的光滑功能......试试吧!
这是一个30天的试用期,之后它非常合理(例如学术上29美元,个人100美元,商业团队200美元。如果你有一个真正的OpenSource项目至少积极开展工作,那么哦和免费3个月。)
(如果这听起来像是一则广告,我道歉。我可以向你保证,事实并非如此。我只是......对于IDE很痴迷......而且非常沮丧,因为它们很少符合我的标准。我如果我发现任何“警告”,我会修改这个,但到目前为止,非常好。)
答案 3 :(得分:0)
如果您询问IntelliJ IDEA,Python仅适用于商业版。
如果你问的是Python IDE,IDLE已经提供了Python。我还可以推荐Boa Constructor。
答案 4 :(得分:0)
WingIDE如果你能分出一些现金,你可以做你想要的所有捆绑,几乎没有配置工作。 另外,带有Aptana的pydev的Eclipse是免费的,并且确实是这样,加上更多(ctrl +点击几乎所有的重定向和许多其他有用的东西,如pyc删除等)。
导航问题通常不仅仅是缺乏工具的症状。一个体面的项目结构和一个版本控制系统(即使你在本地和独奏工作)将有助于解决这个问题。
答案 5 :(得分:0)
我不确定textmate中可用的功能,但是只需简单的搜索工作吗?即Ctrl + F和查询“def function”包括def部分,以便找到定义而不是调用?
答案 6 :(得分:0)
我是pyscripter http://code.google.com/p/pyscripter/的粉丝。有那些功能和更多(和正则表达式检查!)
开源当然。
答案 7 :(得分:0)
Aptana Studio 3.0
PyDev团队现在在Aptana的支持下运作,这使得Aptana Studio 3 - 一个Eclipse定制 - 比首次下载Eclipse的两步流程更好,然后安装PyDev扩展。
Aptana为Python(及其他)预配置,另外还支持Django项目[包括JavaScript支持]。
该产品快速且响应迅速,具有强大的元级功能,例如跳转到可调用的定义,从 init 初始化,模块浏览,非常好的代码完成以及更...
到目前为止,在Eclipse + PyDev,NetBeans Python Edition和Aptana Studio 3的基础上,基于相对广泛的个人测试,AS3获胜。
答案 8 :(得分:0)
这是一个用于TextMate的小型Bundle / Command,可以完成99%的Python跳转定义:
FUNC="$TM_CURRENT_WORD"
DIR="$TM_PROJECT_DIRECTORY"
OUTPUT=''
# Define the class or function definition string that we're looking for.
FUNCDEF='(def|class) '$FUNC
# Find all files that contain FUNCDEF
FILES=(`egrep "$FUNCDEF" $DIR/* -r -l --include=*.py`)
#
# Look for a function declaration within a files contents.
#
# <file>
#
function lookup_function {
local line=`nl -b a "$1" | egrep "$FUNCDEF" | awk '{print $1}'`
if [[ "$line" -gt 0 ]]; then
# echo 'Jumping to --> '$1':'$line
mate "$1" -l "$line"
exit 0
fi
}
# Iterate files
for file in ${FILES[@]}; do
echo $file
lookup_function "$file"
done
# Nothing found
echo 'Function '${FUNC}' was not found within the current project.'