【问题标题】:Editor with support for mixed spaces and tabs?支持混合空格和制表符的编辑器?
【发布时间】:2012-04-17 18:11:27
【问题描述】:

是否有任何文本编辑器(适用于 Windows)良好 支持 混合 空格和制表符,适用于 C++/C#/Java 等语言(以及 Python 的奖励积分) /Ruby/等)?
即制表符将用于缩进,空格将用于对齐


例如, 代表一个制表符,. 代表一个空格, 代表光标的当前位置。

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

template<class T1,
.........class T2>
class Foo
{
  → template<int M,
  → .........int N>
  → void foo(int bar,■
}

我希望能够按⏎Enter键,看看:

template<class T1,
.........class T2>
class Foo
{
  → template<int M,
  → .........int N>
  → void foo(int bar,
  → .........■
}

之后我应该可以键入下一个参数,关闭括号,然后按 ⏎ Enter,然后使用制表符/空格让光标自动回到正确的位置,如下所示:

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 % 的时间。

但我正在寻找一些希望能够提供更多强大支持的东西,以及对当前语言的词法支持以弄清楚要做什么。毕竟,编辑器错误不应该比手动缩进更难修复——否则我只能手动进行,永远不要使用该功能!

【问题讨论】:

  • @Luiggi:Notepad++ 很烂,尤其是在这方面。顺便说一句,好问题。我认为问题在于大多数人不使用这种类型的缩进(虽然我非常喜欢这样排列)
  • jozefg:这是无可争辩的事实,但您能指出如何在 VIM 中解决这个特殊问题吗?我会对此感兴趣
  • 进入线程 5 分钟,cmets 中已经存在“ 很烂”和“使用 ”。伙计们,破坏合法问题的方法。
  • 在 Python 等布局敏感的语言中使用混合制表符和空格确实是一个错误。而在所有其他方面,它只是丑陋的。
  • 只用空格缩进。标签比它的价值更麻烦。

标签: c# java c++ windows text-editor


【解决方案1】:

不确定这是否可以作为答案。但是,我的 gvim 与当前 vimrc 完全符合您正在寻找的制表符和空格。 我强烈推荐使用Gvim。这是个人选择的问题,可能会有更好或更差的编辑器。

您可以使用 se syn= 命令在 vim 上突出显示任何语言

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

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

编辑我真的怀疑是否有一个编辑乌托邦可以这么说。您可能必须根据“适合工作的工具”原则取得平衡。

【讨论】:

  • +1 看起来很不错,我会试试看能否让 gvim 工作。谢谢!
  • 我想我让它工作了......我需要一段时间才能习惯 vim :) 但我喜欢它!谢谢!
  • 对不起@Mehrdad - 我不明白你想强调什么
  • 缩进没有回到括号中,这是我要强调的。
猜你喜欢
  • 2011-03-28
  • 2011-04-04
  • 2011-07-12
  • 2019-02-15
  • 2023-03-30
  • 2014-07-15
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
相关资源
最近更新 更多