Text 自动热键:剪贴板将选项卡转换为空格

Text 自动热键:剪贴板将选项卡转换为空格,text,format,clipboard,autohotkey,copy-paste,Text,Format,Clipboard,Autohotkey,Copy Paste,我有一段复制到剪贴板的代码。粘贴它看起来像这样。其中[tab]是实际的制表符缩进 [tab]<header id="masthead" class="site-header"> [tab][tab]<h1> [tab][tab][tab]<h2> [tab][tab][tab][tab]<h3> [tab][tab][tab][tab][tab]<h4>; [选项卡] [附表][附表] [标签][标签][标签] [标签][标签][标签

我有一段复制到剪贴板的代码。粘贴它看起来像这样。其中[tab]是实际的制表符缩进

[tab]<header id="masthead" class="site-header">
[tab][tab]<h1>
[tab][tab][tab]<h2>
[tab][tab][tab][tab]<h3>
[tab][tab][tab][tab][tab]<h4>;
[选项卡]
[附表][附表]
[标签][标签][标签]
[标签][标签][标签][标签]
[制表符][制表符][制表符][制表符][制表符];
我想按自动热键自动规范化代码段。因此,如果每行上都有[tab],请将其删除。 然后将每个[tab]转换为2个空格[**]

<header id="masthead" class="site-header">
**<h1>
****<h2>
******<h3>
********<h4>;

**
****
******
********;
因此,一般的工作流程是:

  • 将代码复制到剪贴板
  • 按自动热键
  • 粘贴新格式化的内容
  • 自动热键的伪代码如下所示

    • 逐行浏览每个剪贴板内容
    • 如果每个项目共享相等数量的[tab]空格,请将其完全删除
    • 逐行将[tab]转换为[**]2个空格
      • ;将每个选项卡转换为2个空格:
        剪贴板=
        (
        ;
        )
        剪贴板:=StrReplace(剪贴板、选项卡、空间)
        

        好的,问题解决了,我现在想要的东西都有了。我接受了另一个源代码片段

        作为参考,需要突出显示代码段上的完整行,如下所示

        所以我现在要做的就是:

      • 复制完整代码
      • 按F9
      • 粘贴到我的记事本应用程序(支持代码片段的dynalist.io)

      • 这真的很好用。另外,如果所有其他行都有第一行[tab],是否有方法删除每行的第一个[tab]?可能只需检查line1中是否有[tab],然后从everyline上删除一个tab?
        ; convert each tab into 2 spaces:
        
        clipboard =
        (
            <header id="masthead" class="site-header">
                <h1>
                    <h2>
                        <h3>
                            <h4>;
        )
        clipboard := StrReplace(clipboard, A_Tab, A_Space A_Space)
        
        F9::
        clipboard := StrReplace(clipboard, A_Tab, A_Space A_Space)
        position := RegExMatch(clipboard, "\S")
        test := RegExReplace(clipboard, "m)^[ ]{" . position - 1 . "}")
        clipboard := test