ตรงข้ามกับคำเยื้อง [ปิด]


11

เราบอกว่าเราเยื้องรหัส ฉันกำลังเขียนตัวสร้างสตริงซึ่งสามารถเพิ่ม / ลบแท็บเพื่อเยื้องรหัส

ตัวอย่าง:

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

ฉันควรตั้งชื่อวิธีการอย่างไร


3
มันค่อนข้างปิดหัวข้อ แต่: บางทีคุณอาจหลีกเลี่ยงการโทรเยื้อง / เฉพาะเจาะจงได้อย่างชัดเจนหากคุณแทนที่การเพิ่มการเรียก ("<ul>") และ Ident () โดย BeginElement ("ul") ที่จะรวมถึงการเยื้องตรรกะ (และเป็นวิธี EndElement แน่นอน)
เดวิด

@ David: 1 แต่แน่นอนคุณต้องการที่จะใช้องค์ประกอบที่ซ้อนกันแบบอินไลน์เข้าบัญชี :)
Demian เบรชต์

11
เกี่ยวกับoutdentอะไร
เควิน

@ เควิน: ทางเลือกที่ดี แต่ทำไมคุณไม่เพิ่มเข้าไปในคำตอบ?
jgauffin

@David: มันถูกใช้ภายในกรอบงานและไม่เปิดเผยต่อผู้ใช้ (คลาสเป็นแบบสาธารณะแม้ว่าผู้ใช้จะสามารถใช้เพื่อจุดประสงค์ของตัวเองได้) นอกจากนี้ยังสามารถใช้งานได้มากกว่ามาร์กอัปดังนั้นจึงBeginElementไม่เหมาะสม
jgauffin

คำตอบ:


24

ทุกคนรู้เรื่องนี้ดี ทำไมไม่ใช้Indent()และOutdent()?


นี่คือสิ่งที่ฉันมักจะเรียกมันอย่างน้อยที่สุด
Callum Rogers

กันที่นี่ฉันเคยได้ยินมันเรียกว่า outdent
Brian Knoblauch

17

สำหรับตรงข้ามของผมจะใช้indent unindentจาก Wiktionary:

unindent

นิรุกติศาสตร์
un- + เยื้อง; เกิดขึ้นในปี 1980 เมื่อคอมพิวเตอร์ทำให้มันเป็นเรื่องไม่สำคัญสำหรับทุกคนที่จะย้ายข้อความไปมาบนหน้า
กริยา
unindent ( บุคคลที่สามเอกพจน์ปัจจุบันง่าย unindents , กริยาปัจจุบัน unindenting , ที่ผ่านมาที่เรียบง่ายและกริยาที่ผ่านมา ไม่เยื้อง )
1. ในการลบเยื้อง; เพื่อย้ายบล็อกข้อความใกล้ชิดกับขอบด้านซ้าย
ฉันต้องแยกย่อหน้าแรกของแต่ละย่อหน้าออกมาเพื่อให้เรียงความของฉันพอดีกับกระดาษด้านใดด้านหนึ่ง

ตามพจนานุกรมนิรุกติศาสตร์ออนไลน์เยื้องมาจาก:

ต้น 15c., indenten / endenten "เพื่อทำรอยหยัก; เพื่อให้ (บางสิ่งบางอย่าง) ที่มีลักษณะฟันหรือขรุขระ" และ "เพื่อสร้างสัญญาทางกฎหมาย" จาก O.Fr. endenter "เป็นรอยบากหรือบุ๋มให้ขอบหยักเป็น" จาก ML indentare "เพื่อให้ฟันด้วย" จาก in- "เป็น, ใน, บน, บน, บน" (ดูใน - (2)) + L. dens (gen . dentis ) "ฟัน" (ดูฟัน) ที่เกี่ยวข้อง: เยื้อง; เยื้อง ความรู้สึกในการพิมพ์นั้นได้รับการพิสูจน์ในยุค 1670 เป็นครั้งแรก คำนามมีการบันทึกครั้งแรกในปี 1590 จากคำกริยา คำนามก่อนหน้านี้ของ "ข้อตกลงที่เป็นลายลักษณ์อักษร" (สาย 15c.) มีการอธิบายไว้ในพจนานุกรมภาษาอังกฤษยุคกลางว่า "ตัวย่อscribalของการลงทุน "

การเยื้องจึงเหมือนกับการใส่ "รอย" ในซอร์สโค้ด ในการลบรอยเว้านั้นคุณต้องทำการเยื้องออก: unindent


16
Indent
Dedent

ในการสำรองข้อมูล Google ด่วนช่วยให้: unindent มี 290,000 ครั้งในขณะที่ผู้ที่อุทิศตนมีจำนวน 1,920,000 ครั้งซึ่งเป็นการบ่งบอกคร่าวๆว่าอันหลังนั้นมีการใช้กันอย่างแพร่หลายมากขึ้น แม้ว่าสิ่งนี้ควรใช้เป็นข้อโต้แย้งอย่างระมัดระวัง

Dedentนอกจากนี้ยังมีคำศัพท์มาตรฐานที่ใช้ในเอกสารหลาม


2
ในความเป็นจริง "การอุทิศ" มีการเข้าชมเพียง 321,000 ครั้งเมื่อคุณใส่ในเครื่องหมายคำพูดและจำนวนการเข้าชมเหล่านั้นไม่ได้เกี่ยวข้องกับการเยื้อง แต่เป็นชื่อหรือสิ่งอื่น ๆ (อาจเป็นคำทันตแพทย์) "unindent" มีจำนวน 267,000 ครั้ง
Falcon

2
Dedent ไม่ใช่คำภาษาอังกฤษที่แท้จริง API ที่ดีนั้นชัดเจนและเข้าใจง่ายโดยทุกคนที่อ่านแหล่งข้อมูล (เท่าที่ฉันรัก Python สิ่งนี้ทำให้ฉันรู้จักกับการเล่นโวหารที่ฉันไม่ชอบเลย) ถัดจากกันแล้วมันก็สมเหตุสมผล แต่อาจไม่เป็นอย่างอื่น (หรือสำหรับคนที่ไม่ค่อยพูดภาษาอังกฤษ)
Demian Brecht

1
@ Dessert แน่นอนว่ามันเป็นคำภาษาอังกฤษเรากำลังใช้มันอยู่ เราจะใช้มันอย่างไรถ้ามันไม่มีอยู่จริง? ภาษาอังกฤษไม่ใช่ภาษา prescriptivist ที่มีการควบคุมอย่างเข้มงวด
Konrad Rudolph

6
"เกิน" มีเกือบ 14 ล้านครั้ง
Mike Sherrill 'Cat Recall'

2
@ Dessert Brecht: มันเป็นแค่ความคิดใหม่ ในฐานะโปรแกรมเมอร์คุณจะต้องหมกมุ่นอยู่กับมันทุกวัน รับใช้มัน
Jon Purdy

12

คุณไม่ได้ตั้งใจเยื้องหรือ?

เจตนาหมายถึงสิ่งที่แตกต่างอย่างสิ้นเชิง

มิฉะนั้นอาจจะUnindent?

ในหมายเหตุด้าน:

  • การใช้แท็บเพื่อย่อหน้ารหัสไม่ดี (imho) - ช่องว่างแบบพกพามีมากขึ้น
  • ฉันจะไม่เปิดเผย API นี้ต่อลูกค้า builderควรจะเพียงพอที่สมาร์ทที่จะรู้ว่าสิ่งที่และสิ่งที่จะไม่เยื้อง

4
โพสต์โดย Jeff Atwood ไม่ได้บอกว่าทำไมการใช้แท็บไม่ดี มันเพิ่งจะดูถูกผู้ใช้แท็บในตอนท้าย
Peter Taylor

16
"ช่องว่างแบบพกพามากกว่า": สิ่งที่ห่านั่นควรหมายความว่าอย่างไร!?!? ... ยังผมไม่เห็นแท็บที่ไม่ดีจริงผมเองพบพวกเขาดี มันง่ายกว่าในการแยกวิเคราะห์และช่วยให้ผู้ใช้สามารถเลือกวิธีที่พวกเขาควรจะแสดงใน spacy ฉันไม่เห็นข้อเสียเชิงลบใด ๆ ต่อพวกเขาตรงกันข้ามกับช่องว่างที่ไม่มีข้อดีดังกล่าวมาก่อนหน้านี้
dagnelies

3
@arnaud: คุณควรอ่านบนแท็บกับช่องว่าง มันเป็นการถกเถียงทางศาสนาเป็นส่วนใหญ่ แต่จากประสบการณ์ของผมพื้นที่ส่วนใหญ่ได้รับชัยชนะเสมอ ( โดยเฉพาะอย่างยิ่งถ้าคุณกำลังทำงานในโครงการ OS หรือมีนักพัฒนาหลายคนที่ใช้บรรณาธิการต่าง ๆ ) จริงๆแล้วในตอนท้ายของวันสิ่งที่สำคัญคือความมั่นคง
Demian Brecht

2
วิธีที่ดีที่สุดคือมีเครื่องมือแก้ไขซึ่งจะใส่ช่องว่าง X โดยอัตโนมัติเมื่อคุณกด Tab
Jose Faeti

2
@ Konrad: ตั้งชื่อบรรณาธิการหนึ่งคนที่ไม่สนับสนุนแท็บ?
Callum Rogers

5

SetIndentLevel(int level)สิ่งที่เกี่ยวกับ

การลบการเยื้องเป็นเพียงการตั้งค่าระดับเป็น 0 Afaik ไม่มีคำศัพท์สำหรับการตรงกันข้ามของการดำเนินการนี้


+1 - นั่นเป็นวิธีที่ดีกว่าการเรียกใช้ฟังก์ชันสองครั้งเพื่อเพิ่มและลดระดับเยื้อง
mcottle

6
ไม่แน่ใจว่าดีกว่า 2 วิธี การใช้เมธอด setIndentLevel นั้นเป็นความรับผิดชอบของคุณที่จะต้องจดจำว่าการเยื้องที่ลึกลงไปในกรณีขององค์ประกอบที่ซ้อนกันในเอกสาร นั่นหมายถึงการรักษาเคาน์เตอร์ ไม่แน่นอนที่ควรจะเป็นความรับผิดชอบของผู้สร้างไม่ใช่ของคุณ
เดวิด

1
@David: คุณสามารถสร้างวิธีการ wrapper ได้สองวิธีเพื่อติดตามมัน ในบางกรณีมันอาจจะดีกว่าหรือง่ายกว่าที่จะใช้ในขณะที่ในกรณีอื่น ๆ มันไม่ได้ ด้วยอินเทอร์เฟซอื่นคุณจะต้องเรียกใช้วิธีการเพิ่ม / ลดหลายครั้งหรือวนซ้ำ ดังนั้นฉันอาจต้องการทั้งสามเวอร์ชัน: ตั้งค่า / เพิ่ม / ลดลง
Falcon

1
@ David setIndentLevel(1 + getIndentLevel())- ดีที่สุดของทั้งสองโลก
Izkata

5

คำว่า "เยื้อง" ไม่ได้หมายถึง "แทรกช่องว่าง" - หมายถึง "ปรับช่องว่างเพื่อให้สิ่งต่าง ๆ เข้าแถว" ดังนั้นการเยื้องอาจหมายถึงทั้งการเพิ่มหรือลบแท็บ เหมือนไม่มีทางตรงกันข้ามกับ "เดิน" แนวคิดในการพูดไม่มีตรงกันข้ามกับ "เยื้อง" คุณสามารถลบการเยื้องยกเลิกการเยื้องหรือเปลี่ยนระดับการเยื้องซึ่งแต่ละอย่างเป็นการดำเนินการที่ย้อนกลับหรือแก้ไขผลกระทบของการเยื้องในวิธีที่ต่างกัน แต่ไม่มีการเยื้องใด ๆ "การอุทิศ" ที่เป็นที่นิยมและ "การผูกมัด" เป็นวิธีที่ผิดเหมือนกับ "คลี่คลาย" หรือ "ป้องกัน" (BTW นี่อาจเป็นคำถามที่ดีสำหรับ english.se)

ในกรณีของคุณผมไปกับและIncreaseIndentationLevelDecreaseIndentationLevel


1
english.se ไม่ค่อยชอบพูดคุยเรื่องการเขียนโปรแกรม
jgauffin

มันเป็นคำศัพท์เรียงพิมพ์มากกว่าคำศัพท์การเขียนโปรแกรม แต่ตกลง
tdammers

"การเยื้อง" ไม่ใช่ "การเยื้อง"
Mike Sherrill 'Cat Recall'

1
ตกลง "เพิ่มการเยื้อง" และ "ลดการเยื้อง" เป็นข้อกำหนดที่ถูกต้องโดยพูดอย่างเคร่งครัด ฉันคาดหวังว่าจะเป็นภาษาที่โปรแกรมเมอร์จะใช้และเข้าใจ คุณใช้ "การเร่งความเร็วเชิงลบ" เมื่อคุณพูดถึงการนำรถของคุณหยุดใช่มั้ย
StevenV

4

ฉันเคยเห็นคำว่า "outdent" ยกตัวอย่างเช่นที่ Wikipedia Template:หน้าOutdent

สำหรับการตอบกลับในหน้าพูดคุยเมื่อเยื้องลึกเกินไป การเยื้องหน้าพูดคุยทำได้โดยใช้อักขระโคลอน (:) เพื่อสร้างแท็บ เทมเพลตนี้สร้างแถบตัวเชื่อมต่อและข้อความเริ่มต้นเพื่อระบุการเยื้องออกตามจำนวนโคลอนที่ใช้ในการเยื้องก่อนหน้า ...



2

FWIW Google เอกสารและ MS Word ใช้ "เพิ่มการเยื้อง" และ "ลดการเยื้อง" ฉันลืมว่าบรรณาธิการคนไหน (บางทีมันเป็น TinyMCE ทำงานกับมันเมื่อเร็ว ๆ นี้) แต่ฉันรู้ว่าฉันเคยเห็น "เยื้อง" และ "เลิก"


1

คำจำกัดความของการเยื้อง:

เริ่มต้น (บรรทัดข้อความ) หรือตำแหน่ง (บล็อกข้อความตาราง ฯลฯ ) เพิ่มเติมจากระยะขอบมากกว่าส่วนหลักของข้อความ

ไม่ตรงข้ามกับสิ่งนี้จริงๆ แต่คุณจะเยื้องข้อความหลักเกินกว่าบรรทัดที่ระบุ

ฉันคิดว่าคำศัพท์ที่ดีกว่านี้คือ RemoveIndent () หรือ ReduceIndent ()

ต้องบอกว่าการค้นหาของ Google สำหรับคำว่า "ตรงข้ามเยื้อง" เผยให้เห็นในระยะต่อไปนี้: เยื้อง http://www.urbandictionary.com/define.php?term=indentสิ่งนี้อาจเหมาะสม


คนนอกนั้นน่าเกลียดเหมือนคนที่อุทิศตน "in-" in "เยื้อง" ไม่ใช่คำนำหน้าจริงๆแทนที่มันราวกับว่ามันเป็นการละเมิดไวยากรณ์ภาษาอังกฤษ
tdammers

@ ผู้ส่งอีเมล - ในความหมายมันเป็น คุณกำลังทำการบุ๋มย่อหน้าเข้าด้านในดังนั้นสิ่งที่ตรงกันข้ามจะเป็นการบุ๋มภายนอก - Outdent ส่วนตัวฉันชอบ Remove / ReduceIndent () แต่สำหรับชื่อฟังก์ชั่น ...
Gavin Coates

1
@tdammers: เห็นได้ชัดว่า "in-" in เยื้อง เป็นคำนำหน้า ("เป็น, ใน, บน, บน, เมื่อ" - etymonline.com/index.php?term=indent ) ไม่ใช่ว่ามันสำคัญ - ฉันไม่เห็นอะไรเลย "ดูถูก" เกี่ยวกับนิรุกติศาสตร์พื้นบ้าน ( en.wikipedia.org/wiki/Folk_etymology ); มันเป็นส่วนหนึ่งของวิวัฒนาการทางภาษา และฉันไม่เห็นด้วยว่าการใช้ชีวิตภายนอกเป็นเรื่องน่าเกลียดเหมือนคนที่อุทิศตน ผมไม่ได้แน่ใจว่าพยางค์กับความเครียดในdedent ; มันน่าเกลียดอย่างใดอย่างหนึ่ง แต่ข้างนอกเป็นสิ่งที่ดีและชัดเจน มันเป็นความลงตัวที่สมบูรณ์แบบเยื้อง คำสองคำนี้สร้างคู่ที่ดีที่ให้นิยามซึ่งกันและกันด้วยคอนทราสต์ที่ชัดเจนมาก ฉันชอบมัน.

ขออภัยฉันเพิ่งรู้ว่าฉันไม่ได้อ่านคำถามนี้หรือคำตอบที่ถูกต้อง ... ฉันคิดว่ามันเป็นเรื่องเกี่ยวกับการแสดงบรรทัดโดยอัตโนมัติในโปรแกรมแก้ไขข้อความ ในกรณีนี้outdent (หมายถึงตัวเลือกในการแสดงบรรทัดที่อยู่ไกลเกินกว่าบรรทัดข้างบน) จะสมบูรณ์แบบในความคิดของฉัน แต่คำถามนี้เกี่ยวกับการลบการเยื้องที่มีอยู่แล้ว - เช่นเดียวกับที่เกิดขึ้นเมื่อคุณกด Shift + Tab ซึ่งในกรณีนี้ผมเห็นด้วยกับหรือแม้กระทั่งreduceIndent() unindent()
callum

ทำวิจัยของฉันเอง ใช่ "in-" จริง ๆ แล้วเป็นคำนำหน้า แต่เป็น callum ฯ "outdent" จะหมายถึงบรรทัดที่เริ่มด้านซ้ายของขอบด้านซ้าย IIRC สิ่งนี้เรียกว่าเยื้องเชิงลบในการเรียงพิมพ์ไม่ใช่เรื่องล้าสมัยและไม่ใช่สิ่งที่เรากำลังพูดถึงที่นี่
tdammers

0

ฉันรู้ว่าฉันบิตปลายไปงานเลี้ยง Indentแต่ก็มีปัญหาเดียวกันหาตรงข้ามสำหรับ ในฐานะที่เป็นที่นี่มีคำตอบที่แตกต่างกันหลายคำถามที่ผมถามเพื่อนร่วมงานภาษาอังกฤษ (สหราชอาณาจักร) สิ่งที่เขาจะเลือก: เคล็ดลับแรกของเขาคือและIncreaseIndent DecreaseIndentแต่IndentและDetentก็ยังใช้ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.