ฉันยังไม่สามารถหาคำตอบได้ Atom ดูเหมือนจะใช้ช่องว่างเป็นโหมดการเยื้องเริ่มต้น ฉันชอบที่จะมีแท็บแทน Sublime Text มีฟังก์ชันในตัวสำหรับการสลับและแปลงการเยื้อง
มีใครพบวิธีเปลี่ยนโหมดการเยื้องของ Atom หรือไม่
ภาพหน้าจอบางส่วนจาก Sublime Text:
ฉันยังไม่สามารถหาคำตอบได้ Atom ดูเหมือนจะใช้ช่องว่างเป็นโหมดการเยื้องเริ่มต้น ฉันชอบที่จะมีแท็บแทน Sublime Text มีฟังก์ชันในตัวสำหรับการสลับและแปลงการเยื้อง
มีใครพบวิธีเปลี่ยนโหมดการเยื้องของ Atom หรือไม่
ภาพหน้าจอบางส่วนจาก Sublime Text:
คำตอบ:
ดูซอฟท์แท็บและแท็บความยาวภายใต้การตั้งค่า> การตั้งค่าแก้ไข
โหมดการเยื้องสลับได้อย่างรวดเร็วคุณสามารถใช้Ctrl-Shift-Pและการค้นหาสำหรับบรรณาธิการ: สลับซอฟท์แท็บ
Ctrl-Shift-P
Editor: Toggle Soft Tabs
ไปที่ไฟล์ -> การตั้งค่า
มี 3 ตัวเลือกต่าง ๆ ที่นี่
ฉันทำการทดสอบและได้มาถึงข้อสรุปเหล่านี้เกี่ยวกับสิ่งที่แต่ละคนทำ
Soft Tabs - การเปิดใช้งานหมายความว่ามันจะใช้ช่องว่างเป็นค่าเริ่มต้น (เช่นสำหรับไฟล์ใหม่)
ความยาวแท็บ - ความกว้างของอักขระแท็บที่แสดงหรือจำนวนช่องว่างที่แทรกสำหรับแท็บหากเปิดใช้งานแท็บซอฟต์
ประเภทแท็บ - เป็นการกำหนดโหมดการเยื้องเพื่อใช้สำหรับไฟล์ที่มีอยู่ หากคุณตั้งเป็นอัตโนมัติจะใช้การเยื้องที่มีอยู่ (แท็บหรือช่องว่าง) หากคุณตั้งค่าเป็นอ่อนหรือแข็งมันจะบังคับให้เว้นวรรคหรือแท็บโดยไม่คำนึงถึงการเยื้องที่มีอยู่ ดีที่สุดที่จะปล่อยให้เรื่องนี้โดยอัตโนมัติ
หมายเหตุ: Soft = ช่องว่าง, แท็บ hard =
เพิ่มไปยังของคุณ ~/.atom/config.cson
editor:
tabLength: 4
คุณสามารถลองไปที่ "Atom> การตั้งค่า> ตัวแก้ไข" แล้วตั้งความยาวแท็บเป็น 4
นี่สำหรับ mac สำหรับ windows คุณจะต้องค้นหาเมนูที่เหมาะสม
การเพิ่ม@Manbroskiคำตอบที่นี่ที่ทำงานสำหรับฉัน:
ลอง Ctrl-Shift-P
Editor: Toggle Soft Tabs
ไปงานปาร์ตี้สาย แต่วิธีที่สะอาดในการทำสิ่งนี้ในแต่ละโครงการคือการเพิ่มไฟล์. editorconfigในรากของโครงการ ช่วยให้คุณไม่ต้องเปลี่ยนการตั้งค่าของ Atom เมื่อคุณทำงานกับหลายโครงการพร้อมกัน
นี่เป็นตัวอย่างของการตั้งค่าพื้นฐานที่ฉันใช้อยู่ ใช้งานได้กับ Atom, ST, ฯลฯ ...
# 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
สิ่งนี้สร้างขึ้นในแกน: ดูSettings ⇒ Tab Type
และเลือกauto
:
เมื่อตั้งค่าเป็น "auto" ตัวแก้ไขจะตรวจจับชนิดแท็บโดยอัตโนมัติตามเนื้อหาของบัฟเฟอร์ (โดยจะใช้ช่องว่างนำหน้าแรกในบรรทัดที่ไม่มีความคิดเห็น) หรือใช้ค่าของการตั้งค่า Soft Tabs หากอัตโนมัติ การตรวจสอบล้มเหลว
คุณอาจต้องการดูแพ็คเกจการตรวจจับการเยื้องอัตโนมัติ จากเอกสาร:
ตรวจจับการเยื้องของไฟล์ที่เปิดโดยอัตโนมัติ โดยจะดูที่ไฟล์ที่เปิดแต่ละไฟล์และตั้งค่าแท็บเฉพาะไฟล์ (แท็บฮาร์ด / ซอฟต์, ความยาวแท็บ) โดยยึดตามเนื้อหาของไฟล์แทนการใช้ค่าเริ่มต้นของตัวแก้ไขเสมอ
คุณอาจกำหนดค่า atom ให้ใช้ 4 ช่องว่างสำหรับแท็บ แต่เปิดโครงการ Rails ซึ่งมีค่าเริ่มต้นเป็น 2 ช่องว่าง หากไม่มีแพ็คเกจนี้คุณจะต้องเปลี่ยนการตั้งค่า tabstop ทั่วโลกหรือเสี่ยงต่อการเว้นวรรคนำที่ไม่สอดคล้องในไฟล์ของคุณ
search-and-replace
ฉันจะใช้ชุดคำสั่งconvert spaces to tabs
(หรืออะไรทำนองนั้น) ฉันคิดว่ามันได้ผลกับฉันในอดีต
ฉันเพิ่งมีปัญหาเดียวกันและไม่มีคำแนะนำข้างต้นทำงาน ในที่สุดฉันก็ลองยกเลิกการเลือก "แท็บนุ่มของอะตอมมิก" ในเมนูการตั้งค่าตัวแก้ไขซึ่งใช้งานได้
\t
's ในแฟ้ม ...
หากคุณใช้ Babel คุณอาจต้องแน่ใจว่าได้อัปเดตแพ็คเกจ "Language Babel" ของคุณด้วย สำหรับฉันแม้ว่าฉันจะตั้งค่าความยาวแท็บไว้ที่ 2 ในการตั้งค่าตัวแก้ไขหลักของฉันการตั้งค่าเดียวกันในการตั้งค่าภาษา Babel ก็เอาชนะด้วย 4
Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length
ตรวจสอบให้แน่ใจว่าไวยากรณ์ที่เหมาะสมมี "Babel ES6 Javascript Grammar", "ไวยากรณ์ภาษา babel-extension" และ "Regular Expression" คุณอาจต้องการอัปเดตทั้งหมดให้สอดคล้องกัน
Tab Controlให้การควบคุมที่ดีในลักษณะเดียวกันกับที่อธิบายไว้ในคำถามของคุณ
ยังดีสำหรับนักพัฒนา JavaScript คือความยาวแท็บ ESLintสำหรับการใช้การกำหนดค่า ESLint
หรือถ้าคุณกำลังใช้.editorconfig
สำหรับการกำหนดกฎการเยื้องเฉพาะโครงการจะมีEditorConfig
หากการตั้งค่าการเยื้องแท็บ / ช่องว่างส่วนกลางไม่ตรงกับความต้องการของคุณอีกต่อไป (IE คุณพบว่าตัวเองทำงานกับรหัสฐานแบบดั้งเดิมที่มีรูปแบบการเยื้องที่หลากหลายและคุณต้องสลับไปมาอย่างรวดเร็วและการตรวจจับอัตโนมัติไม่ทำงาน) - ควบคุมปลั๊กอินซึ่งเรียงลำดับการทำงานของเมนูซ้ำในภาพหน้าจอของคุณ
เมื่อการตรวจจับการเยื้องอัตโนมัติของ Atom ผิดพลาดอย่างสิ้นหวังและปฏิเสธที่จะให้ฉันพิมพ์อักขระแท็บตัวอักษรในที่สุดฉันก็พบว่าส่วนขยาย 'แท็บกองทัพ'ซึ่งทำให้ฉันกลับมาควบคุม ฉันต้องการเก็บ shift-tab เอาไว้สำหรับ outdenting ดังนั้นให้ตั้งค่า ctrl-tab เพื่อแทรกฮาร์ดแท็บ ใน keymap ของฉันฉันเพิ่ม:
'atom-text-editor':
'ctrl-tab': 'force-tab:insert-actual-tab'
หากคุณใช้เวอร์ชั่น 1.21.1:
ตอนนี้เพียงปิดบานหน้าต่างแท็บที่ใช้งานอยู่และคุณทำเสร็จแล้ว
คำตอบที่ได้รับความนิยมสูงสุดทั้งหมดในที่นี้เป็นคำตอบที่ดีและจะเปิดช่องว่างสำหรับแท็บ แต่สิ่งเหล่านั้นหายไปทั้งหมด วิธีใช้ช่องว่างแทนแท็บกับรหัสที่มีอยู่
ในการทำเช่นนี้เพียงเลือกรหัสทั้งหมดที่คุณต้องการจัดรูปแบบจากนั้นไปที่ Edit-> Lines-> Auto Indent และจะแก้ไขทุกอย่างที่เลือก
หรือคุณสามารถเลือกรหัสทั้งหมดที่คุณต้องการจัดรูปแบบจากนั้นใช้ Ctrl Shift P แล้วค้นหาการเยื้องอัตโนมัติ เพียงคลิกที่ผลการค้นหาและจะแก้ไขทุกอย่างที่เลือก
การเปลี่ยนการกำหนดค่าเฉพาะภาษา
ฉันเปลี่ยนการตั้งค่าแท็บเริ่มต้นและยังไม่ได้รับผลกระทบเมื่อฉันแก้ไขไฟล์ซึ่งเป็นไฟล์ Python นอกจากนี้ยังไม่เปลี่ยนแปลงเมื่อฉันแก้ไขการตั้งค่า "*" ใน ~ / .atom / config.cson ฉันไม่มีคำอธิบายที่ดีสำหรับสิ่งเหล่านี้
อย่างไรก็ตามเมื่อฉันเพิ่มสิ่งต่อไปนี้ใน config.cson ของฉันฉันสามารถเปลี่ยนแท็บในไฟล์ Python ของฉันเป็น 2 ช่องว่าง:
'.source.python':
editor:
tabLength: 2
ขอบคุณทรัพยากรนี้สำหรับการแก้ปัญหา: ปุ่ม Tab ไม่เคารพความยาวแท็บ