与缩进项相反


11

我们说我们缩进代码。我正在写一个字符串生成器,它可以添加/删除制表符以缩进代码。

样品:

builder.Add("<ul>");
builder.Indent();
builder.Add("<li></li>");
builder.Dedent(); // <-- what should this be named.
builder.Add("</ul>");   

我应该给该方法命名什么?


3
这有点离题,但是:如果用包含缩进逻辑的BeginElement(“ ul”)替换Add(“ <ul>”)和Ident()调用,也许可以避免显式调用indent / dedent。(当然还有EndElement方法)
David

@David:+1,但是您当然要考虑内联嵌套元素:)
Demian Brecht

11
outdent
凯文

@Kevin:很好的选择,但是为什么不添加它作为答案呢?
jgauffin's

@David:它在框架内使用,并且不向用户公开(尽管该类是公共的,以便用户可以出于自己的目的使用它)。此外,它不仅可以用于标记,所以BeginElement不适合使用。
jgauffin 2011年

Answers:



17

相反indent,我会使用unindent。来自维基词典:

不缩进

词源
un- +缩进;起源于1980年代,当时计算机使任何人都无法在页面上四处移动文本。
动词
缩进第三人称单数简单现在 缩进现在分词 缩进简单过去和过去分词 未缩进
1.删​​除缩进;将一段文字移到更靠近左边距的位置。
我必须缩进每个段落的第一行,以便我的论文适合论文的一面。

根据在线词源词典,缩进来自:

15c。早期,缩进/弯折开槽;给(某物)带齿或锯齿状的外观”,也“从法律上做出契约”,来自O.Fr. 从ML indentare切入到“ 切入凹入,给其成锯齿状的边缘” ,从in到“ in,in,in,on,on”(参见in-(2))+ L. dens(gen 。dentis) “牙”(见牙)。相关: 缩进;缩进。印刷感首先得到证明是1670年代。名词最早是从动词上记录的1590年代。“书面协议”(晚15℃。)的早期名词的意义是在中古英语词典所描述的“抄写的缩写。的endenture。”

因此,缩进就像在源代码中添加一个“缺口”。要删除该缺口,请撤消缩进:unindent。


16
Indent
Dedent

为了证明这一点,一个快速的Google会有所帮助:unindent有290,000个命中,而dedent有1,920,000个命中,这表明后者被更广泛地使用。尽管应该非常谨慎地将其用作论点。

Dedent也是python文档中使用的标准术语。


2
实际上,当您将dedent放在引号中时,它只有32.1万次命中,其中许多命中与缩进没有任何关系,而只是名称或其他东西(可能是牙医术语?)。“ unindent”的点击量为267.000。
猎鹰

2
Dedent不是实际的英语单词。良好的API清晰易懂,任何阅读该源代码的人都容易理解(就我所爱的Python一样,这使我产生了一个我根本不喜欢的怪癖)。彼此并排,这是有道理的,但可能没有其他意义(或对于英语不太熟练的人)。
Demian Brecht

1
@Demian当然是一个英语单词,我们正在使用它。如果它不存在,如何使用?英语不是严格管制的规定主义语言。
康拉德·鲁道夫

6
好吧,“出色”的点击量接近1400万。
Mike Sherrill'Cat Recall'

2
@Demian Brecht:这只是新词。作为程序员,您每天都沉迷于其中。习惯它。
乔恩·普迪

12

你不是说缩进吗?

意图意味着完全不同的东西。

否则,也许Unindent

附带说明:

  • 使用制表符缩进代码是不好的(恕我直言)-空间更便于携带。
  • 我不会将此API公开给客户端。本builder应该是足够聪明,知道什么对,什么不缩进。

4
杰夫·阿特伍德(Jeff Atwood)的帖子没有说为什么使用制表符不好。最后,这只是对标签用户的侮辱。
彼得·泰勒

16
“空间更具可移植性”:这到底意味着什么?!?!?...此外,我不同意标签页不好,实际上,我个人认为标签页不错。它更干净,更易于解析,并且使用户能够选择在视图中应如何显示拼写。与没有前述优点的空间相比,我认为它们没有任何负面影响。
dagnelies 2011年

3
@arnaud:您应该阅读制表符和空格。这在很大程度上是一场宗教辩论,但根据我的经验,空间总是占主导地位(尤其是当您正在开发OS项目或有多个使用不同编辑器的开发人员时)。归根结底,最重要的是一致性。
Demian Brecht

2
最好是拥有一个编辑器,当您按Tab时会自动放置X空格。
Jose Faeti 2011年

2
@Konrad:命名一个不支持标签的编辑器?
卡勒姆·罗杰斯

5

那呢 SetIndentLevel(int level)

然后,删除缩进只是将级别设置为0。Afaik没有与该操作相反的术语。


+1-比增加和减少缩进级别的两个函数调用更好的方法。
mcottle

6
不确定是否比2种方法更好。使用setIndentLevel方法意味着您有责任记住在文档中嵌套元素的情况下缩进的深度。那将意味着保持反击。不,绝对应该由制造商负责,而不是您的责任。
大卫

1
@David:您可以轻松地创建两个包装方法来跟踪它。在某些情况下,它可能会更好或更容易使用,而在其他情况下,则不是。使用其他接口,您将不得不多次或循环调用一次增加/减少方法。所以我可能想要所有三个版本:设置/增加/减少
Falcon

1
@David- setIndentLevel(1 + getIndentLevel())两全其美。
2013年

5

“缩进”一词实际上并不表示“插入空格”,而是“调整空格以使内容对齐”。因此,缩进可能意味着添加或删除制表符。就像“走”没有对立,从概念上讲,“缩进”也没有对立。您可以删除缩进,撤消缩进或更改缩进级别,它们中的每一个都是以某种方式以某种方式还原或更改缩进效果的操作,但是它们都不是与缩进相反的操作。流行的“弯曲”和“弯曲”与“弯曲”或“破坏”的错误方式相同。(顺便说一句,这对于english.se可能是一个很好的问题)

就您而言,我会选择IncreaseIndentationLevelDecreaseIndentationLevel


1
english.se不是很喜欢讨论编程术语。
jgauffin's

它比排版术语更像是排版术语,但可以。
tdammers 2011年

“缩进”,而不是“缩进”。
Mike Sherrill'Cat Recall'11

1
严格来说,同意“增加缩进”和“减少缩进”是正确的术语。我希望这是程序员会使用和理解的语言。在谈论将汽车停下来时,您确实会使用“负加速度”,不是吗?
StevenV 2011年

4

我在Wikipedia Template:Outdent页面上见过“ outdent”一词。

当缩进太深时,在对话页面上减少回复。对话页上的缩进使用冒号(:)来产生制表符;此模板会根据前一个缩进中使用的冒号数量,产生一个连接器栏和表示该缩进的初始文本。



2

FWIW Google文档和MS Word使用“增加缩进”和“减少缩进”。我忘记了哪个编辑器(也许是TinyMCE,最近正在使用该编辑器),但是我知道我曾经见过“ Indent”和“ Outdent”


1

缩进的定义:

从边缘开始比文本的主要部分更远的位置开始(一行文本)或位置(一段文本,表格等)

其实并没有相反的意思,而是您在缩进主要文本而不是指定行。

我认为更好的术语是RemoveIndent()或ReduceIndent()

话虽如此,谷歌搜索术语“缩进相反”揭示了以下术语:Outdenthttp://www.urbandictionary.com/define.php?term=indent这可能也是合适的。


Outdent和dedent一样丑陋。实际上,“缩进”中的“ in-”不是前缀,实际上是在替换它,好像是在滥用英语语法一样。
tdammers 2011年

@tdammers-从某种意义上讲是这样。您要向内凹入该段落,所以相反的是向外凹入该段落-Outdent。就函数名称而言,我个人更喜欢Remove / ReduceIndent()...
Gavin Coates

1
@tdammers:显然,缩进中 的“ in-” 前缀(“ etinmonline.com/index.php?term=indent”)。没关系–我看不到任何关于民间词源的“辱骂”(en.wikipedia.org/wiki/Folk_etymology);这是语言进化的一部分。我不同意减少缩进是丑如DEDENT语言。我什至不知道哪一个音节要重读;无论哪种方式都很难看。但是outdent很好而且很明显。这是缩进的完美补充。这两个词构成了一对不错的对,它们之间以非常强烈的视觉对比定义了彼此。我喜欢。

抱歉,我刚刚意识到我未能正确阅读此问题或其答案……我以为是关于在文本编辑器中自动显示换行的。在这种情况下,在我看来,outdent(意味着选择显示一条比其上一行更靠左的行的选项)将是完美的。但是这个问题实际上是关于删除一个已经存在的缩进的,就像按下Shift + Tab时会发生什么。在这种情况下,我同意reduceIndent(),甚至unindent()
callum 2011年

我做了自己的研究;是的,“ in-”实际上是前缀,但是正如callum所言,“ outdent”表示从左边缘的左侧开始的行。IIRC,这样的事情在排版中被称为否定缩进,而不是凸出,这也不是我们在这里所说的。
tdammers 2011年

0

我知道我参加聚会有点晚了,但是在遇到相反的问题时遇到了同样的问题Indent。由于对这个问题有几个不同的答案,所以我问了一位英国同事(英国)他会选择什么:他的第一个建议是IncreaseIndentDecreaseIndent。但是IndentDetent也可以。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.