Notepad++ 制表符到除行首以外的任何地方的空格

Notepad++ tabs to spaces everywhere other than beginning of line

由于我不得不使用新的编码风格,我需要在行的开头使用制表符,但 space 在其他任何地方都需要使用制表符来对齐。

有没有一种方法可以自定义 notepad++,使其仅在不在新行开头的情况下用 space 替换制表符?

作为我的意思的例子,我将使用 'code':

function someFunction():
    while(true):
        veryLongCodeStuff()  // Some comment
        shortCode()          // Aligned comment

我必须这样写(其中 \t = 制表符和“.”代表 space):

function someFunction():
\twhile(true):
\t\tveryLongCodeStuff()..// Some comment
\t\tshortCode()..........// Aligned comment

要转换现有文件,我建议采用两步法:

  1. 用空格替换 所有 制表符(这可以通过编辑 -> 空白操作 -> TAB 到 Space 来完成)
  2. 替换行首的空格:像这样做一个正则表达式find/replace:

    • 打开替换对话框
    • 查找内容: ^([\t]?)( ){4} 而不是 4 使用您配置的空格数作为制表符宽度
    • 替换为: \t
    • 检查正则表达式
    • 单击 全部替换:因为每个“全部替换”仅替换 一个 全部 的缩进级别行:重复直到查找对话框的状态栏告诉你,没有更多的替换被完成(只需按住 Alt-A 一两秒)