如何在Sublime Texteditor中获得大纲视图?


117

我如何在中获得轮廓视图 Windows的Sublime文本编辑器中

迷你地图很有用,但我错过了传统轮廓(代码中所有功能的按顺序排列列表,它们以快速导航和定向的顺序显示)

也许有一个插件,插件或类似的东西?如果您可以简短地说出使它起作用所需的步骤,那也很好。

在崇高文字论坛上,这个问题重复的


我为SublimeText 3 添加了功能请求。请随时对其投票。
名字是卡尔2015年

Answers:


266

CTRL+ R或Mac的CMD+ R,以获取功能列表。这在Sublime Text 1.3或更高版本中有效。


听起来不错。但是当我按ctrl-r时没有任何反应。我打开了一个php文件。我可以在菜单中找到命令吗?没有插件就可以使用吗?karlthorwald
user89021'2

6
Ctrl + r存在于当前Beta版本(sublimetext.com/beta)中,但不存在于1.2
jskinner 2010年

1
这太棒了,而且我真的缺少Eclipse的轮廓视图。说实话,这要好得多,尽管我希望有一种方法可以使它仅拉出主函数而不是回调/成功函数。
Michael BW

1
不幸的是,该列表未排序。我想念具有功能列表的Eclipse的大纲视图。
scorpiodawg

1
实际轮廓视图上是否还有其他进展,例如Eclipse和Oxygen编辑器中提供的功能?ctrl + r缺少的是没有迹象表明已概述的内容是变量还是函数。
kstubs 2014年


16

包控制中提供了一个名为Outline的插件,请尝试! https://packagecontrol.io/packages/Outline

注意:它不适用于多行/多列模式。对于多行/多列的工作,请使用此fork:https : //github.com/vlad-wonderkidstudio/SublimeOutline


2
注意:要退出“大纲”视图,请单击“大纲”选项卡中的小关闭按钮,然后按 Shift+ Alt+ 1或转到“视图->布局->单个”。要打开备份,请使用Ctrl+ Shift+,P然后搜索Browse Mode: Outline
Gabriel Staples


0

如果您希望能够打印出或保存轮廓,则ctr / command + r不是很有用。一个人可以对以下grep 或某些变体进行简单查找 ^[^\n]*function[^{]+{ 它的进行,以适应您所使用的语言和情况。

找到所有内容后,您就可以将结果复制并粘贴到新文档中,并且根据功能的数量,可以花很长时间进行整理。

答案远非完美,特别是在注释中包含单词function(或等效词)的情况下,但我确实认为这是一个有用的答案。

通过快速编辑,这就是我现在正在从事的工作的结果。

    PathMaker.prototype.start = PathMaker.prototype.initiate = function(point){};
    PathMaker.prototype.path = function(thePath){};
    PathMaker.prototype.add = function(point){};
    PathMaker.prototype.addPath = function(path){};
    PathMaker.prototype.go = function(distance, angle){};
    PathMaker.prototype.goE = function(distance, angle){};
    PathMaker.prototype.turn = function(angle, distance){};
    PathMaker.prototype.continue = function(distance, a){};
    PathMaker.prototype.curve = function(angle, radiusX, radiusY){};
    PathMaker.prototype.up = PathMaker.prototype.north = function(distance){};
    PathMaker.prototype.down = PathMaker.prototype.south = function(distance){};
    PathMaker.prototype.east = function(distance){};
    PathMaker.prototype.west = function(distance){};
    PathMaker.prototype.getAngle = function(point){};
    PathMaker.prototype.toBezierPoints = function(PathMakerPoints, toSource){};
    PathMaker.prototype.extremities = function(points){};
    PathMaker.prototype.bounds = function(path){};
    PathMaker.prototype.tangent = function(t, points){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.bezierTangent = function(path, t){};
    PathMaker.prototype.splitBezier = function(points, t){};
    PathMaker.prototype.arc = function(start, end){};
    PathMaker.prototype.getKappa = function(angle, start){};
    PathMaker.prototype.circle = function(radius, start, end, x, y, reverse){};
    PathMaker.prototype.ellipse = function(radiusX, radiusY, start, end, x, y , reverse/*, anchorPoint, reverse*/ ){};
    PathMaker.prototype.rotateArc = function(path /*array*/ , angle){};
    PathMaker.prototype.rotatePoint = function(point, origin, r){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.rotate = function(path /*object or array*/ , R){};
    PathMaker.prototype.moveTo = function(path /*object or array*/ , x, y){};
    PathMaker.prototype.scale = function(path, x, y /* number X scale i.e. 1.2 for 120% */ ){};
    PathMaker.prototype.reverse = function(path){};
    PathMaker.prototype.pathItemPath = function(pathItem, toSource){};
    PathMaker.prototype.merge = function(path){};
    PathMaker.prototype.draw = function(item, properties){};
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.