จะเปลี่ยนโหมดการเยื้องใน Atom ได้อย่างไร


195

ฉันยังไม่สามารถหาคำตอบได้ Atom ดูเหมือนจะใช้ช่องว่างเป็นโหมดการเยื้องเริ่มต้น ฉันชอบที่จะมีแท็บแทน Sublime Text มีฟังก์ชันในตัวสำหรับการสลับและแปลงการเยื้อง

มีใครพบวิธีเปลี่ยนโหมดการเยื้องของ Atom หรือไม่

ภาพหน้าจอบางส่วนจาก Sublime Text:

เมนูเยื้องข้อความประเสริฐเปิด เมนูเยื้องข้อความประเสริฐ


4
สำหรับการแปลงการเยื้องคุณสามารถค้นหาและแทนที่นิพจน์ปกติและใช้ \ t เพื่อค้นหาหรือแทรกแท็บ
mer10z_tech

1
จะมีวิธีง่าย ๆ ในการเปลี่ยนรหัสปัจจุบันเป็น 4 จากโหมดการเยื้อง 2
Charlie Parker

1
ฉันใช้ปลั๊กอินตรวจจับการเยื้องอัตโนมัติซึ่งไม่เพียง แต่จะกำหนดค่าปุ่มแท็บโดยอัตโนมัติเพื่อทำสิ่งที่มีอยู่แล้วในไฟล์ แต่จะแสดงโหมดการเยื้องที่ด้านล่างซ้าย
while1fork

@CharlieParker คุณโปรดไปที่การตั้งค่าให้คลิกที่แท็บการแก้ไขและการตั้งค่าเยื้องถึง 4
เครก

หมายเหตุ: Atom โดยค่าเริ่มต้นจะแสดงและข้ามช่องว่างเช่นแท็บ! ดูคำตอบของ tparker ได้ที่นี่: stackoverflow.com/a/46333677/1599699
Andrew

คำตอบ:


219

ดูซอฟท์แท็บและแท็บความยาวภายใต้การตั้งค่า> การตั้งค่าแก้ไข

โหมดการเยื้องสลับได้อย่างรวดเร็วคุณสามารถใช้Ctrl-Shift-Pและการค้นหาสำหรับบรรณาธิการ: สลับซอฟท์แท็บ


1
เช่น @zamber กล่าวว่าหากการเยื้องหน้าโดยอัตโนมัติและไม่ได้เป็นการตั้งค่าการเยื้องของคุณให้เปิดอีกครั้งแล้วลองอีกครั้ง
Victor S

58
เช่นเดียวกับข้อความด้านข้าง - แท็บนุ่มคืออักขระเว้นวรรคในแท็บแท็บยากคืออักขระแท็บ นอกจากนี้หากการตั้งค่าไม่ได้รับการตรวจซ้ำให้ลองCtrl-Shift-P Editor: Toggle Soft Tabs
ivan-k

2
ฉันต้องการที่จะเพิ่มว่าไม่มีวิธีการแก้ปัญหาในหัวข้อนี้ทำงานให้ฉันจนกว่าฉันจะเปลี่ยนเป็นแบบอักษรขาวดำ หลังจากเปลี่ยนเป็นแบบอักษรขาวดำฉันลองแต่ละวิธีและพวกเขาทั้งหมดใช้งานได้จริง หวังว่านี่จะช่วยใครซักคนในอนาคต ...
Native Coder

จะมีวิธีง่าย ๆ ในการเปลี่ยนรหัสปัจจุบันเป็น 4 จากโหมดการเยื้อง 2
Charlie Parker

ฉันไม่เห็นประโยชน์ใด ๆ ที่จะไม่ใช้ตัวอักษรแบบโมโนสเปซเมื่อทำการเข้ารหัสฉันต้องยอมรับ
Frank Bailey

65

ไปที่ไฟล์ -> การตั้งค่า

มี 3 ตัวเลือกต่าง ๆ ที่นี่

  1. แท็บนุ่ม
  2. ความยาวแท็บ
  3. ประเภทแท็บ

ฉันทำการทดสอบและได้มาถึงข้อสรุปเหล่านี้เกี่ยวกับสิ่งที่แต่ละคนทำ

Soft Tabs - การเปิดใช้งานหมายความว่ามันจะใช้ช่องว่างเป็นค่าเริ่มต้น (เช่นสำหรับไฟล์ใหม่)

ความยาวแท็บ - ความกว้างของอักขระแท็บที่แสดงหรือจำนวนช่องว่างที่แทรกสำหรับแท็บหากเปิดใช้งานแท็บซอฟต์

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

หมายเหตุ: Soft = ช่องว่าง, แท็บ hard =


คุณอาจพูดถึงAtomic Soft Tabs ?
neeh

3
จะมีวิธีง่าย ๆ ในการเปลี่ยนรหัสปัจจุบันเป็น 4 จากโหมดการเยื้อง 2
Charlie Parker

1
ขอขอบคุณที่ช่วยชี้แจงศัพท์แสงบางส่วนที่ใช้เพื่อทำความเข้าใจปัญหานี้
MiFiHiBye



11

คุณสามารถลองไปที่ "Atom> การตั้งค่า> ตัวแก้ไข" แล้วตั้งความยาวแท็บเป็น 4

ป้อนคำอธิบายรูปภาพที่นี่

นี่สำหรับ mac สำหรับ windows คุณจะต้องค้นหาเมนูที่เหมาะสม



6

ไปงานปาร์ตี้สาย แต่วิธีที่สะอาดในการทำสิ่งนี้ในแต่ละโครงการคือการเพิ่มไฟล์. editorconfigในรากของโครงการ ช่วยให้คุณไม่ต้องเปลี่ยนการตั้งค่าของ Atom เมื่อคุณทำงานกับหลายโครงการพร้อมกัน

นี่เป็นตัวอย่างของการตั้งค่าพื้นฐานที่ฉันใช้อยู่ ใช้งานได้กับ Atom, ST, ฯลฯ ...

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2

ฉันเกือบโยน Atom ออกไปโดยสิ้นเชิงจนกระทั่งฉันเห็นสิ่งนี้ การตั้งค่า config.cson ดูเหมือนจะไม่ทำสิ่งใดกับไฟล์ที่มีอยู่ ขอบคุณ!
killthrush

3

สิ่งนี้สร้างขึ้นในแกน: ดูSettings ⇒ Tab Typeและเลือกauto:

เมื่อตั้งค่าเป็น "auto" ตัวแก้ไขจะตรวจจับชนิดแท็บโดยอัตโนมัติตามเนื้อหาของบัฟเฟอร์ (โดยจะใช้ช่องว่างนำหน้าแรกในบรรทัดที่ไม่มีความคิดเห็น) หรือใช้ค่าของการตั้งค่า Soft Tabs หากอัตโนมัติ การตรวจสอบล้มเหลว

คุณอาจต้องการดูแพ็คเกจการตรวจจับการเยื้องอัตโนมัติ จากเอกสาร:

ตรวจจับการเยื้องของไฟล์ที่เปิดโดยอัตโนมัติ โดยจะดูที่ไฟล์ที่เปิดแต่ละไฟล์และตั้งค่าแท็บเฉพาะไฟล์ (แท็บฮาร์ด / ซอฟต์, ความยาวแท็บ) โดยยึดตามเนื้อหาของไฟล์แทนการใช้ค่าเริ่มต้นของตัวแก้ไขเสมอ

คุณอาจกำหนดค่า atom ให้ใช้ 4 ช่องว่างสำหรับแท็บ แต่เปิดโครงการ Rails ซึ่งมีค่าเริ่มต้นเป็น 2 ช่องว่าง หากไม่มีแพ็คเกจนี้คุณจะต้องเปลี่ยนการตั้งค่า tabstop ทั่วโลกหรือเสี่ยงต่อการเว้นวรรคนำที่ไม่สอดคล้องในไฟล์ของคุณ


หากใช้ 'อัตโนมัติ' และทำให้เกิดความผิดพลาด (ในกรณีของฉันมันตัดสินใจที่จะใช้ช่องว่างเมื่อฉันต้องการแท็บในไฟล์นี้โดยเฉพาะ) คุณจะทำอย่างไร (ด้วยเมนูลัดหรือการกดแป้นพิมพ์โดยไม่ต้องเจาะลึกการตั้งค่า) ฉันไม่คิดว่าการตรวจจับอัตโนมัติล้มเหลว แต่มันผิดพลาด มันจะไม่พิมพ์แท็บยากสำหรับฉัน ฉันทำการค้นหาและแทนที่ทุกที่แล้ว แต่ยังคงคีย์แท็บแทรกช่องว่าง 4
Ed Randall

ฉันจะไม่ใช้search-and-replaceฉันจะใช้ชุดคำสั่งconvert spaces to tabs(หรืออะไรทำนองนั้น) ฉันคิดว่ามันได้ผลกับฉันในอดีต
jcuenod

3

ฉันเพิ่งมีปัญหาเดียวกันและไม่มีคำแนะนำข้างต้นทำงาน ในที่สุดฉันก็ลองยกเลิกการเลือก "แท็บนุ่มของอะตอมมิก" ในเมนูการตั้งค่าตัวแก้ไขซึ่งใช้งานได้


OH! นั่นคือสิ่งที่หมายถึง! ผมก็สงสัยว่าทำไมปุ่มลูกศรของฉันได้ข้ามผ่านช่องว่างเมื่อมีไม่ใด ๆ\t's ในแฟ้ม ...
แอนดรู

2

หากคุณใช้ Babel คุณอาจต้องแน่ใจว่าได้อัปเดตแพ็คเกจ "Language Babel" ของคุณด้วย สำหรับฉันแม้ว่าฉันจะตั้งค่าความยาวแท็บไว้ที่ 2 ในการตั้งค่าตัวแก้ไขหลักของฉันการตั้งค่าเดียวกันในการตั้งค่าภาษา Babel ก็เอาชนะด้วย 4

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

ตรวจสอบให้แน่ใจว่าไวยากรณ์ที่เหมาะสมมี "Babel ES6 Javascript Grammar", "ไวยากรณ์ภาษา babel-extension" และ "Regular Expression" คุณอาจต้องการอัปเดตทั้งหมดให้สอดคล้องกัน


2

Tab Controlให้การควบคุมที่ดีในลักษณะเดียวกันกับที่อธิบายไว้ในคำถามของคุณ

ยังดีสำหรับนักพัฒนา JavaScript คือความยาวแท็บ ESLintสำหรับการใช้การกำหนดค่า ESLint

หรือถ้าคุณกำลังใช้.editorconfigสำหรับการกำหนดกฎการเยื้องเฉพาะโครงการจะมีEditorConfig


1

หากการตั้งค่าการเยื้องแท็บ / ช่องว่างส่วนกลางไม่ตรงกับความต้องการของคุณอีกต่อไป (IE คุณพบว่าตัวเองทำงานกับรหัสฐานแบบดั้งเดิมที่มีรูปแบบการเยื้องที่หลากหลายและคุณต้องสลับไปมาอย่างรวดเร็วและการตรวจจับอัตโนมัติไม่ทำงาน) - ควบคุมปลั๊กอินซึ่งเรียงลำดับการทำงานของเมนูซ้ำในภาพหน้าจอของคุณ


1

เมื่อการตรวจจับการเยื้องอัตโนมัติของ Atom ผิดพลาดอย่างสิ้นหวังและปฏิเสธที่จะให้ฉันพิมพ์อักขระแท็บตัวอักษรในที่สุดฉันก็พบว่าส่วนขยาย 'แท็บกองทัพ'ซึ่งทำให้ฉันกลับมาควบคุม ฉันต้องการเก็บ shift-tab เอาไว้สำหรับ outdenting ดังนั้นให้ตั้งค่า ctrl-tab เพื่อแทรกฮาร์ดแท็บ ใน keymap ของฉันฉันเพิ่ม:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'


1

หากคุณใช้เวอร์ชั่น 1.21.1:

  1. คลิกที่แพ็คเกจ / การตั้งค่ามุมมอง / เปิด
  2. เลือก "Editor" ที่แผงด้านซ้าย
  3. ลดขนาดลงจนกว่าคุณจะเห็น "ความยาวแท็บ"
  4. แก้ไขค่า ฉันชอบที่จะตั้งค่าเป็น 4

ตอนนี้เพียงปิดบานหน้าต่างแท็บที่ใช้งานอยู่และคุณทำเสร็จแล้ว


0

คำตอบที่ได้รับความนิยมสูงสุดทั้งหมดในที่นี้เป็นคำตอบที่ดีและจะเปิดช่องว่างสำหรับแท็บ แต่สิ่งเหล่านั้นหายไปทั้งหมด วิธีใช้ช่องว่างแทนแท็บกับรหัสที่มีอยู่

ในการทำเช่นนี้เพียงเลือกรหัสทั้งหมดที่คุณต้องการจัดรูปแบบจากนั้นไปที่ Edit-> Lines-> Auto Indent และจะแก้ไขทุกอย่างที่เลือก

หรือคุณสามารถเลือกรหัสทั้งหมดที่คุณต้องการจัดรูปแบบจากนั้นใช้ Ctrl Shift P แล้วค้นหาการเยื้องอัตโนมัติ เพียงคลิกที่ผลการค้นหาและจะแก้ไขทุกอย่างที่เลือก


0

การเปลี่ยนการกำหนดค่าเฉพาะภาษา

ฉันเปลี่ยนการตั้งค่าแท็บเริ่มต้นและยังไม่ได้รับผลกระทบเมื่อฉันแก้ไขไฟล์ซึ่งเป็นไฟล์ Python นอกจากนี้ยังไม่เปลี่ยนแปลงเมื่อฉันแก้ไขการตั้งค่า "*" ใน ~ / .atom / config.cson ฉันไม่มีคำอธิบายที่ดีสำหรับสิ่งเหล่านี้

อย่างไรก็ตามเมื่อฉันเพิ่มสิ่งต่อไปนี้ใน config.cson ของฉันฉันสามารถเปลี่ยนแท็บในไฟล์ Python ของฉันเป็น 2 ช่องว่าง:

'.source.python':
  editor:
    tabLength: 2

ขอบคุณทรัพยากรนี้สำหรับการแก้ปัญหา: ปุ่ม Tab ไม่เคารพความยาวแท็บ

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