我有一个问题让我对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*
我到处搜寻,但显然我是唯一一个被这个困扰的人。我用过的每一个其他代码编辑器都按照我想要的方式进行。
答案 0 :(得分:3)
你可以实现这个小插件:
用以下内容替换内容:
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)
fix_selection_after_indent.py
这是如何运作的:
执行indent
命令后,如果所有选择都不为空,并且它们都跨越多行,则扩展选择以覆盖每个选择的整个第一行。