关于c#:Editor是否支持混合空格和制表符?

Editor with support for mixed spaces and tabs?

是否有任何文本编辑器(适用于Windows)对混合空格和制表符以及对C / C#/ Java(以及Python / Ruby /等附加点)提供良好的支持?
即,制表符将用于缩进,空格将用于对齐。


例如,假设代表制表符,.代表空格,而代表光标的当前位置。

如果我的文本编辑器中包含以下内容:

1
2
3
4
5
6
7
8
template<class T1,
.........class T2>
class Foo
{
  → template<int M,
  → .........int N>
  → void foo(int bar,
}

我希望能够按? Enter密钥,请参见:

1
2
3
4
5
6
7
8
9
template<class T1,
.........class T2>
class Foo
{
  → template<int M,
  → .........int N>
  → void foo(int bar,
  → .........
}

在那之后我应该能够键入下一个参数,关闭括号,然后按? Enter,然后使用制表符/空格使光标自动返回正确的位置,如下所示:

1
2
3
4
5
6
7
8
9
10
template<class T1,
.........class T2>
class Foo
{
  → template<int M,
  → .........int N>
  → void foo(int bar,
  → .........int baz) {
  →  →  
}

当然,如果我按Backspace或Shift-Tab或其他键,它应该清除到适当的停止点—可能是缩进的开始,该缩进的类型与当前缩进的类型相同。还有类似的东西。

注意:

我意识到很多编辑器(SciTE,Visual Studio,也许还有Emacs,Vim等)都可以使用正则表达式(或粗略的解析代码)编写脚本,从而可以在80%的时间内完成某些工作。 >

但我正在寻找一种希望得到更强大支持的东西,并为当前语言提供词法支持以弄清楚该怎么做。毕竟,编辑错误应该比首先手动缩进更容易解决-否则,我会手动代替它,而永远不要使用该功能!


不确定这是否可以作为答案。但是,我的带有当前vimrc的gvim确实可以满足您使用制表符和空格的需求。
我强烈建议使用Gvim。这是个人选择的问题,编辑的好坏可能会有所不同。

您可以使用se syn=命令

在vim上突出显示任何语言。

您找不到的是词法支持或智能感知-以可用的方式出租。

看一下屏幕截图。这是我改编的vimrc的链接。

EDIT我真的很怀疑是否有编辑乌托邦可以这么说。您可能必须基于"正确的工作工具"原则来取得平衡。

enter image description here