27

在 Visual Studio 中,您可以使用区域最小化大量代码;它们基本上只是围绕代码并将其最小化在窗口中。

Sublime 有类似的功能吗?

4

9 回答 9

22

默认情况下,您可以选择一些代码转到Edit > Code Folding > Fold.有大量的插件利用代码折叠 api 获得更多选项。

于 2012-12-14T02:11:12.340 回答
11

官方网站上有一个“请求功能”的请求

但显然:

仅供参考,Jon 表示这在编辑器控件的当前实现中是不可能的。看来我们要等到 V3 了。

Jon 是 Sublime Text 2 背后的程序员。

可能有一种方法可以通过创建一个查找标记并删除标记之间的代码区域的插件来伪造它,但它可能看起来不太好。使用当前的 API,这可能是您最好的选择!

顺便说一句,Sublime Text 中有一些代码折叠,如果你将鼠标悬停在行号旁边,当你可以折叠/展开时,你会看到一些箭头出现。

于 2012-12-13T23:07:11.343 回答
11

我最终使用了自定义注释标签,缩进比我想要折叠的代码少一级。它看起来不是最好的,尽管它达到了它的目的

class Foobar {
    // ...some code

// <fold
    function foo() {
    }
    function bar() {
    }
// </fold

    // more code...
}

这(目前)折叠为:

class Foobar {
    // ...some code

// <fold[...]
// </fold

    // more code...
}

对此有本机 ST2 支持会很好。

于 2013-01-08T16:08:39.520 回答
6

看起来是您正在寻找的东西。您可以为每种语言定义#region 和#endregion 标签,或为所有语言定义通用标签。

于 2015-07-13T15:20:05.403 回答
3

如果你痴迷于意图,这个解决方案可能会让你感到不舒服,但在这里,曾几何时,我一直在编写一个半复杂的 jQuery 插件,我有常量、变量、私有和公共函数部分以及像这样的折叠;

;(function($, undefined, window) {...

/* Consts */

    var FOO = "BAR";

/* Variables */

    var m_Foo = "bar";

/* Functions */

    /* Public Functions */

        function foo() {...}

        function bar() {...}

    /* Private Functions */

        function _foo() {...}

        function _bar() {...}

})(jQuery, window);

正如你所看到的,这一切都与意图有关。部分可以折叠;Consts, Variables, Functions. 还有里面的Functions部分,Public Functions而且Private Functions都是可以折叠的。

您还可以使用一行注释 (//) 来命名您的折叠。所以下面的想法很简单;ST2 认为更多意图的行属于它们上方的第一个意图较少的注释,例如 C/C++ 编译器如何将括号作为自己的唯一代码块处理。

于 2013-10-22T09:10:42.220 回答
2

折叠代码,请选择代码并按

ctrl+ shift+[

展开代码,请将光标放在那里并按

ctrl+ shift+]

于 2016-09-02T05:11:49.943 回答
0

我认为和我一样,OP 已经开始欣赏 VS 中一个鲜为人知的功能,称为区域,许多等同于代码折叠,但功能更强大及更高,Dio Phung 提供了我想要的答案,我怀疑OP想要,但他没有分享作为答案,所以就在这里。

Sublime Text 中提供的“代码折叠”之间的区别在于,它基于代码/编译器语法,而“区域”和这个插件的作用,允许你无限更多的自由,尽管它或多或少取决于您开始使用的代码(深度嵌套或适当模块化)。

如果你使用的是 Sublime Text 3,这里有一个插件可以做到: github.com/jamalsenouci/sublimetext-syntaxfold – Dio Phung

于 2018-10-04T18:01:28.047 回答
-1

在支持 3 种评论类型的语言(例如 PHP)中,我使用区域标签评论,如其他答案所示。这也有助于跟踪正在做的事情

# default options
    $a = 3;
    $b = 'bob';


$old_code = 1;

# bugfix #130
    $result = magic_function($data);
    fix_stuff($result);

$old_code = $result;

否则使用三斜杠/////#

于 2018-07-05T07:35:49.543 回答
-2

在崇高的文本中,它的工作原理是这样的,它遮住要折叠的线条并按下(Control + Shift +?)

我有最新版本的 sublimetext。

于 2017-12-15T15:51:14.647 回答