Sublime Text 3:使用制表符缩进时保持选中整行

时间:2014-07-10 23:54:02

标签: select tabs sublimetext indentation sublimetext3

我有一个问题让我对Sublime Text 3感到疯狂。当我通过单击线的一侧选择多行并拖动时,我然后按Tab键来更正缩进,但后来我想移动整个除了我必须重新选择它之外,因为第一行只是从文本开始的地方选择,而不是从行开始的地方选择。

让我们看看我是否可以说明这一点......下面是我的行:

Text Line 1
Text Line 2

我选择它们(使用*显示选择)

*Text Line 1
Text Line 2*

我缩进了行,现在选择如下:

    *Text Line1
    Text Line 2*

请注意,选择以文本开头。我希望选择保持在行的开头,如下所示:

*   Text Line 1
    Text Line 2*

我到处搜寻,但显然我是唯一一个被这个困扰的人。我用过的每一个其他代码编辑器都按照我想要的方式进行。

1 个答案:

答案 0 :(得分:3)

你可以实现这个小插件:

  1. 工具 - >开发者 - >新插件......
  2. 用以下内容替换内容:

    import sublime
    import sublime_plugin
    
    
    class IndentSelectWholeFirstLineEventListener(sublime_plugin.EventListener):
        def on_post_text_command(self, view, command_name, args):
            if command_name == 'indent':
                if all(not sel.empty() for sel in view.sel()):
                    if all(view.line(sel.begin()) != view.line(sel.end()) for sel in view.sel()):
                        new_selections = []
                        for sel in view.sel():
                            new_selections.append(sel.cover(view.line(sel.begin())))
                        view.sel().clear()
                        view.sel().add_all(new_selections)
    
  3. 将其保存在ST建议的文件夹中,如fix_selection_after_indent.py
  4. 这是如何运作的:

    执行indent命令后,如果所有选择都不为空,并且它们都跨越多行,则扩展选择以覆盖每个选择的整个第一行。