Sublime Text 2是否能够使用类似于Visual Studio的区域代码?

时间:2012-12-13 22:51:27

标签: visual-studio sublimetext2 minimize region folding

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

Sublime是否有类似的功能?

9 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:10)

官方网站上有“要求提供功能”的请求here

但显然:

  

仅供参考,Jon表示目前无法做到这一点   编辑器控件的实现。看起来我们要等到V3   人

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

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

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

答案 2 :(得分:10)

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

class Foobar {
    // ...some code

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

    // more code...
}

这(目前)折叠为:

class Foobar {
    // ...some code

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

    // more code...
}

拥有本机ST2支持将是不错的。

答案 3 :(得分:4)

This看起来你正在寻找什么。您可以为每种语言定义#region和#endregion的标记,或为所有语言定义通用标记。

答案 4 :(得分: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);

正如你所看到的,这完全是关于意图的。部分可以折叠; ConstsVariablesFunctions。在Functions部分内,Public FunctionsPrivate Functions都可以折叠。

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

答案 5 :(得分:2)

弃用代码,请选择代码并按

ctrl + shift + [

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

ctrl + shift + ]

答案 6 :(得分:0)

我认为,就像我自己一样,OP已经开始欣赏VS中一个鲜为人知的功能,称为 regions ,该功能很多时候都等同于代码折叠,但是FAR比上面的功能更强大,Dio Phung提供了我想要的答案,我怀疑OP想要,但是他没有分享答案,所以这里是。

Sublime Text中提供的“代码折叠”之间的区别在于,它基于代码/编译器语法,而“区域”以及此插件的作用是,尽管它或多或少地为您提供了更大的自由度取决于您要使用的代码(深度嵌套或正确模块化)。

  

如果您使用Sublime Text 3,则可以使用以下插件:   github.com/jamalsenouci/sublimetext-syntaxfold – Dio Phung

答案 7 :(得分:-1)

在支持3种注释类型的语言(例如PHP)中,我将#标签注释用于区域,如其他答案所示。跟踪正在做的事情也很好

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


$old_code = 1;

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

$old_code = $result;

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

答案 8 :(得分:-2)

在崇高的文字中,它的工作方式如下,它会遮挡要折叠的线条并按下(Control + Shift +?)

我有最新版本的sublimetext。