有没有一种方法可以解决Sublime Text 3中的多行缩进问题,以便为所选内容中的第一行添加缩进字符?

威尔逊

当我在Sublime Text 3中选择几行并将其缩进为一个块时(使用TabCtrl+ ]),它将在选择之外而不是内部的第一行开头添加新的空白字符

假设我有一段代码看起来像这样(注意:以下所有内容只是为了说明这个想法;请不要从我的括号或缩进量等角度着手。):

int firstVar, secondVar;

firstVar = 4;
secondVar = 11;

现在,我稍后再返回此代码,需要将值分配作为条件:

int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);

if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
}

当然,我想很好地进行缩进,因此我选择了if子句中的两个项目,并使用Tab键将它们作为一个块进行缩进,并且Sublime Text如所期望的那样,在缩进字符之前添加了缩进字符(制表符或预定数量的空格)到每条选定的行:

[snip]

if (result == GOOD_RESULT)
{
  firstVar = 4;
  secondVar = 11;
}
else
{
}

然后,因为我将在else子句中为它们分配不同的值,所以我将它们复制并粘贴到那里,准备进行修改:

if (result == BAD_RESULT)
{
  firstVar = 4;
  secondVar = 11;
}
else
{
firstVar = 4;
  secondVar = 11;
}

还有一个问题:Sublime Text使我的代码块的第一行缩进,但是没有在选择中包括缩进字符,因此当我复制粘贴时,我没有得到第一行的缩进。(我希望可以更改背景颜色以更好地说明。)

不仅如此,如果我将其剪切并粘贴,则缩进字符将被留下。

我可以通过尝试在缩进之前记住复制/剪切来解决该问题,但是a)我并不总是记得,b)然后我必须两次缩进代码。

有谁知道解决方法吗?

racl101

在崇高3有这个命令调用Paste and Indent和该键盘命令是Super + shift + V哪里Super是你的操作系统的主要命令键。这似乎可以解决问题。

我在这里找到它:https : //gist.github.com/eteanga/1736542


编辑:原始海报添加了更多信息,因此人们不必尝试解析评论。

回到原始问题的第二步:

int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);

if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
}

我选择了第一套括号之间的两条线(在分配到firstVarsecondVar,复制它们(Ctrl+ C),然后添加一个空行的第二组之间的括号,并把我的光标在空行(通过指定的开始|,以下):

int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);

if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
|
}

然后,我“粘贴并缩进”(Ctrl+ Shift+ V),并使用文件类型的默认缩进粘贴代码,以方便我进行更改。(此外,如果我粘贴更多行,并使用不同的缩进级别,则它们都将相应地进行调整。)

int firstVar, secondVar;
int myVar = 0;
int result = someThing(myVar);

if (result == GOOD_RESULT)
{
firstVar = 4;
secondVar = 11;
}
else
{
  firstVar = 4;
  secondVar = 11;
|
}

不幸的是,它也留下了一个额外的空白行(因为如果我不加多余的行,它根本就不会缩进),但是删除起来很容易。

(因此,可悲的是,它仍然不能像多行缩进一样正常工作,因为我必须先创建然后销毁一个空白行。您说,仅需多加两次按键?是的,但这是我的两个按键如果多行缩进正确地工作将不需要做,并且会打断我的自然流程,所以我必须考虑这一点,而不是考虑我要进行的代码更改。

(或者,我可以通过在按住的同时按住来取消选择最后一行末尾的换行符Shift,然后只需要创建一个新行,而不必在粘贴后删除该行。但这要少得多。除了添加和删除以及多余的空行之外,自然要做或考虑的事情,而且仍然涉及两次额外的按键操作。

(所以无论哪种方式,即使它是一个有趣的,甚至是很酷的功能,此功能也是一个解决方法,而不是一个修复程序。)

但是,在大括号之间已经有文本行的情况下(并且您不必在最后一个大括号之前粘贴新代码),它的效果很好:您不必添加空白行,只需将光标置于要插入新代码的行的开头,然后按Ctrl+ Shift+ V这些线将插入与其周围相匹配的凹痕。

另外,您不一定必须使用默认的缩进。如果将光标放在任意列上(仅在其左侧留有空格),则“粘贴和缩进”命令将使粘贴到该列的所有内容缩进。(如果在光标右边带有文本的一行上执行此操作,则该行的缩进将更改为与您粘贴的内容相匹配的行。)

正如我所说,这是一个有趣且相当酷的功能,值得一试并逐渐了解。并且值得被接受为这个问题的答案。但仍然没有相当好,因为刚才已经正确连接了多行缩进工作。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档