在Visual Studio 2012中移动行向上/向下快捷方式

时间:2012-08-09 11:43:30

标签: keyboard-shortcuts text-editor visual-studio-2012

在VS2010中我设置了一个快捷方式 Alt + Up / Down 来向上或向下移动代码行,就像我以前在Java中的Eclipse一样天。

现在,由于VS2012中没有Power Tools和宏(我在VS2010中设置此快捷方式的方式),因此如何使其工作?

我看到有人提到Resharper可以做到这一点,但是为了爱火和水,我找不到可以做到这一点的命令列表中的命令名称。 我尝试过ReSharper_MoveUp / MoveDown并且不会向上/向下移动线路:

Move_Up command did not do the trick

这会上下移动文本块。我只是想逐行上下,没有奇特的逻辑。 前

What I have

ALT + Up (当光标在WriteLine行上时)我想看到这个:

Line moved one up, inside the bracket, indented

我见过这些帖子:What's the equivalent for eclipse's ALT+UP/DOWN (move line) in Visual Studio?Visual Studio: hotkeys to move line up/down and move through recent changes,但建议的解决方案都不适用于VS2012。

还有其他想法吗?

UPD 2012年11月7日:。扩展正在赶上Visual Studio 2012.现在我知道至少有3个提供此功能的扩展:

UPD 2012年11月15日:偶然发现了另一个声称可以执行此处所需的扩展程序。但是没试过:LineMan Extension

2015年5月10日UPD 刚刚安装了VS2015 RC,这已经内置了: MoveLineUp/Down

9 个答案:

答案 0 :(得分:54)

对于使用Visual Studio 2013或更高版本到达此问题的用户,该功能内置于程序中。只需使用 Alt Up Alt Down 来移动光标所在的行 - 或选中的行和下来。

如果您希望在工具>中重新绑定它选项> 环境> 键盘,键为Edit.MoveSelectedLinesUpEdit.MoveSelectedLinesDown。您可能需要先从其他现有密钥中删除新组合。

答案 1 :(得分:33)

更新:huzzah,Productivity PowerTools VS2012现已推出并提供此功能(以及其他个人喜爱的Tools.AddEndTokenAtTheEnd。)

MoveLine Extension(与VS 2012兼容;我必须手动重启VS才能在VS的键盘快捷键工具中查看命令。)

答案 2 :(得分:10)

安装ReSharper。

打开工具 - >选项 - >环境 - >键盘(如图所示)

  1. 查找“ReSharper.ReSharper_MoveUp”
  2. 在“使用新的快捷方式:”中选择:“文本编辑器”
  3. 点击“按快捷键:”并按快捷键(例如Alt + ArrowUp)
  4. 按“分配”按钮 与“ReSharper.ReSharper_MoveDown”
  5. 相同

    P.S。适用于单行和多个选定行,但在移动1行后删除选择。希望有一种方法可以在一次选择中多次移动多行。

答案 3 :(得分:7)

如果你有Resharper,那么你可以点击 Ctrl + Shift + Alt + 来移动目前排队。或 Ctrl + Shift + Alt + 以向下移动一行。

这适用于Resressper 7中的VS 2012 Premium与Visual Studio键盘方案(7.0.97.60到 确切地说。)

编辑:这被映射到'ReSharper.ReSharper_MoveUp'/'MoveDown'命令。

答案 4 :(得分:4)

在Visual Studio 2017中(至少)我在下面

enter image description here

答案 5 :(得分:2)

您可以使用Move Line Command扩展名。

只需按照公式349的评论:

  

我能够按原样使用2012。

     

将程序包重命名为.zip并将所有文件解压缩到一个文件夹中。编辑extension.vsixmanifest文件并查找SupportedProducts XML节点。将Version =“10.0”更改为Version =“11.0”。

     

重新压缩文件夹内容并重命名为.vsix。效果很棒!

答案 6 :(得分:2)

虽然很多人似乎都在推荐misc。 Visual Studio Extensions和Resharper,我想指出有一个 native 热键可以实现这个目标。当我的Resharper用他们的MoveUp和MoveDown版本替换我的默认热键时,我开始尝试找到答案。

虽然Resharper的热键确实上下移动,但它们原始海报正在寻找的东西,而且它们不是我想要的。这些热键移动方法和代码块,各行。

Visual Studio有两个热键命令可以向上或向下移动选定的行。 这些热键是:

  • Edit.MoveSelectedLinesDown
  • Edit.MoveSelectedLinesUp

我正在使用Visual Studio 2013,所以我不知道这些是否存在于旧版本中。如果2012没有这些热键,那么扩展是唯一的解决方案。

无论哪种方式,我都有一个问题,即在Visual studio的列表中找到确切的热键,我花了很长时间才找到这些,所以我希望我的解决方案可以帮助处于类似情况的其他人自己的。

答案 7 :(得分:1)

Shift+Del and then Ctrl+V

Shift+Del does the cut (same as Ctrl+X) operation on the current line on which cursor is positioned.

Then you can use Ctrl+V to paste it at any place you like.

Good thing is that you don't need to select the complete current line, just the cursor needs to be positioned on the line.

One downside to using this shortcut is that you won't be able to see the line moving ( up or down ) lively in front of your eyes.

答案 8 :(得分:0)

ReSharper的向上移动和向下移动快捷方式是明智的 - 而不仅仅是移动当前行(这很容易导致代码损坏),它会在当前语句列表中上下移动当前语句方法体。这比仅移动一行代码要强大得多。

但是,这并不能帮助您在if块中获得声明。在这里你需要做两件事之一。

首先,将语句移到上方if块,然后使用 Ctrl + Shift + Alt + 将其推向范围。该语句现在位于if块内,您可以使用向上和向下移动它。您还可以使用 Ctrl + Shift + Alt + Left 将其拉出范围,在{ {1}}阻止。

或者,您可以将文本插入符号放在if块的右括号外部,然后使用 Ctrl + Shift + Alt + 向下向下移动大括号,踩过以下语句,包括它们在if区块内。

这些键可以做的不仅仅是移动单个语句。如果将文本插入符号放在方法或类声明上, Up Down 将上下移动整个方法或类声明。如果将文本插入符号放在方法的参数列表中, Left Right 将重新排列单个参数(然后 Alt + 输入可以调用Change Signature重构。

help pages

中的更多详细信息