【问题标题】:Does anyone know a visual studio keyboard short cut to swap around two sides of a statement?有谁知道一个 Visual Studio 键盘快捷方式来交换语句的两侧?
【发布时间】:2010-09-21 11:51:45
【问题描述】:

只是想知道是否有人知道交换语句两侧的键盘快捷键。例如:

我想换

firstNameTextbox.Text = myData.FirstName;

myData.FirstName = firstNameTextbox.Text;  

有谁知道快捷方式,如果有的话?显然我会把它们打出来,但是我需要交换很多语句,我认为这样的快捷方式会很有用!

随意添加您认为很酷的任何快捷方式!

我的贡献是 CTRL + E, D - 这会将您的代码格式化为 Visual Studio 标准!我猜是众所周知的,但我一直使用它! :)

更新

只是为了让大家知道,通过对发布的文章的一点窥探,我设法构造了一个正则表达式,所以这里是:

查找:

{.+\.Text = myData\..+};

并替换为:

\2 = \1;

希望人们可以将其应用于他们想要交换的自己的表达方式!

【问题讨论】:

  • 对不起兄弟,但你打错了 - 将代码格式化为 Visual Studio 标准的快捷方式是 --->>>> "CTRL + K, D"
  • @J Sinh:我不是“兄弟”,我没有打错,这是键盘快捷键。试试看。
  • 配置一个外部工具命令“open emacs”,然后用 C-x-(-C-s=C-space-end-C-x-home-C-y-C-x-) 做一个键盘宏然后享受。

标签: visual-studio keyboard-shortcuts


【解决方案1】:

我认为以下线程是一个很好的起点

Invert assignment direction in Visual Studio

【讨论】:

    【解决方案2】:

    如果没有特定的键盘快捷键,我会这样做:

    • 首先,选择要修改和替换的文字

      " = " with "                 =               "
      

      (这里的关键是要加很多空格)。

    • 如果您按住Alt 并使用鼠标,您可以选择代码“块”。使用它仅选择等式右侧的文本(在您的选择中添加额外的空白会很有帮助)
    • 使用相同的Alt + Left-Click 组合选择左侧的开头(只需选择一个空白区域)。您应该可以将文本粘贴到此处。
    • 如果您在刚刚添加的文本中添加了额外的空白,则应该能够使用Alt + Click 技术轻松插入=。使用相同的技巧删除悬在代码块右侧的等号。

    虽然这可能无法完全满足您的要求,但我发现这些技巧非常有用。

    【讨论】:

      【解决方案3】:

      如果您使用的是ReSharper,您可以按 CtrlAltShift + 来执行此操作> 或

      【讨论】:

      • 该快捷方式移动整行而不是交换表达式的 LHS 和 RHS。
      【解决方案4】:

      该功能在 Resharper 中。选择代码段并单击内容向导,它是左角的铅笔图标,上面写着 View Actions List,然后选择 Reverse Assignment。 完成了。

      【讨论】:

      • 它现在是左侧排水沟中的锤子
      【解决方案5】:

      swap-word 是一个 VSCode 扩展,听起来它会做你想做的事。

      快速交换位置两个单词或选择...

      但我不确定它是否与VS兼容。

      【讨论】:

        【解决方案6】:

        由于我对需要在 Visual Studio 搜索/替换对话框中输入复杂字符串的答案不满意,因此我为自己编写了一个小 AutoHotkey 脚本,只需按键盘快捷键即可执行交换.而且,无论您是在 VS 中还是在另一个 IDE 中。
        每当按下 Win+Ctrl-S 时,此热键(只需从文本文件作为脚本启动一次或编译为 exe)就会运行

        #^s Up::  
         clipboard := "" ; Empty the clipboard
         Sendinput {Ctrl down}c{ctrl up}
         Clipwait
         Loop, Parse, clipboard, `n, `r  ; iterates over seperates lines
         {   
          array := StrSplit(RegExReplace(A_LoopField,";",""),"=")  ; remove semicolon and split by '='
          SendInput, % Trim(array[2]) . " = " .  Trim(array[1]) . ";{Enter}"
         }
        return 
        

        更多细节是可能的,例如还支持行以逗号结尾的代码

        ...and 我可以将更多热键和热字符串放入同一个脚本中,例如对于我打错最多的词:

        ::esle::else    ; this 1 line rewrites all my 'else' typos
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-14
          • 2014-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多