วิธีแทนที่ช่องว่างสี่ช่องด้วยแท็บใน Sublime Text 2 ได้อย่างไร


310

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

ฉันต้องการแทนที่ "สี่ช่องว่าง" ทั้งหมดที่เขียนโดยโปรแกรมแก้ไขข้อความอื่นด้วยแท็บ ฉันจะทำมันได้อย่างไร

คำตอบ:


639

มุมล่างขวามือบนแถบสถานะคลิกSpaces: N(หรือTab Width: Nที่ N เป็นจำนวนเต็ม) ตรวจสอบให้แน่ใจว่ามีTab Width: 4การแปลงจากช่องว่างสี่ช่องจากนั้นเลือกConvert Indentation to Tabsจากเมนูตามบริบทที่จะปรากฏขึ้นจากการคลิกเริ่มต้น

หากคุณต้องการทำสิ่งที่ตรงกันข้ามให้คลิกSpacesหรือTab Widthข้อความบนแถบสถานะแล้วเลือกจากเมนูเดียวกัน

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


3
ในขณะที่คำตอบทั้งหมดถูกต้องคำตอบนี้เป็นคำตอบที่ง่ายที่สุด! ขอบคุณ
Mohsen

1
ต้องยอมรับ; มันคือ :) ไม่เคยใช้เมนูบริบทของแถบสถานะเดาฉันมักจะคิดว่าพวกเขาเป็นตัวบ่งชี้คงที่
Ekin Koc

2
พวกเขาจะไม่โดดเด่นอย่างที่ควรจะเป็นฉันมีข้อบกพร่องสองสามข้อที่ฉันต้องยื่นเพื่อประเสริฐไม่มี stoppers ที่แสดง บรรณาธิการที่ยอดเยี่ยม
ncremins

คุณยังสามารถใช้ประโยชน์จากการตั้งค่าในไฟล์ประเสริฐโครงการหากคุณต้องการให้ผู้แก้ไขจดจำการตั้งค่านี้สำหรับไฟล์ทั้งหมดในโครงการ
Michael

1
@phreakhead ฉันไม่แน่ใจว่าฉันเข้าใจความต้องการของคุณอย่างเต็มที่หรือไม่ (ลองเปิดคำถามใหม่?) แต่ถ้าคุณตั้งค่า translate_tabs_to_spaces เป็น false แล้วเมื่อคุณพิมพ์ (ข้อความใหม่) และคุณกดแท็บมันจะเป็นอักขระแท็บ . หากคุณมีไฟล์ที่มีการเยื้องเป็น 4spaces (แทนแท็บ) อยู่แล้วคุณสามารถใช้ตัวเลือกที่ด้านล่างของเมนูในภาพหน้าจอเพื่อแปลงการเยื้องเป็นแท็บ
Michael

106

เลือกทั้งหมดจากนั้น:

Windows / Linux:

Ctrl+ Shift+p

จากนั้นพิมพ์ "เยื้อง"


Mac:

Shift+ Command+p

จากนั้นพิมพ์ "เยื้อง"


นี่คือเร็วที่สุดในขณะที่มือบนแป้นพิมพ์ +1
eduncan911

ที่น่าตื่นตาตื่นใจ ... นี้จะช่วยให้คุณเลือกที่จะ "reindent เส้น" จากไฟล์เช่นเงินทุนที่มาพร้อมกับ 2 สายการเยื้อง
Shina

ฉันคิดว่ามันไม่ได้ทำในสิ่งที่เขาขอ สิ่งนี้ยังรวม reindent บรรทัดดังนั้นจึงเป็นการเปลี่ยนแปลงการเยื้องและเขาถามเฉพาะเกี่ยวกับการแปลงช่องว่างเป็นแท็บ อย่างไรก็ตามมันเป็นคำตอบที่ดี แต่ในบางกรณีอาจทำให้การเยื้องของคุณ (ตัวอย่างเช่นเทมเพลตเยื้องเบลด)
Sergi Ramón

นี้จะดีกว่าเพราะมันใช้งานได้ดีกับการคัดลอกรหัสวาง
SaurabhM

45

ในการกำหนดค่า Sublime ให้ใช้แท็บทุกครั้งให้ลองเพิ่มรายการต่อไปนี้ไปยัง preferences-> settings-user:

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

ข้อมูลเพิ่มเติมที่นี่: http://www.sublimetext.com/docs/2/indentation.html


5
นี่คือคำตอบที่ถูกต้องเพราะแม้หลังจากเลือก "เยื้องโดยใช้ช่องว่าง" ตัวเลือกนั้นจะรีเซ็ตเมื่อเริ่มต้นใหม่
mvd

1
OP ขอผกผัน ซึ่งแปลกไม่มีตัวเลือกสำหรับ เกลียดชังแท็บ
phreakhead


9

ใช้ regex "ค้นหา" เพื่อหา\t(backslash-t, แท็บ) และแทนที่ด้วยช่องว่างสี่ช่อง

ไม่ว่าเมนูหลักหรือเมนูระยะห่างบาร์สถานะขวาล่างจะทำสิ่งเดียวกันโดยมีการทำงานน้อยลง


3
นี่คือสิ่งที่ตรงกันข้ามกับสิ่งที่โปสเตอร์ถาม
Max Nanasy

3
@ MaxNanasy ดังนั้นมันจึงเป็น ฉันเดาว่าฉันไม่ชอบตัวละครในแท็บลึกมากจนมันเป็นจิตใต้สำนึก
Dave Newton

2
คำตอบนี้ไม่เกี่ยวข้องกับคำถามที่ถูกถามอย่างสมบูรณ์ โปรดพิจารณาเปลี่ยนเป็นคำตอบที่ถูกต้องหรือลบคำตอบของคุณ
Randy the Dev

2
@AndrewDunn "สมบูรณ์" จริงๆ? การผกผันของบางสิ่งบางอย่างอาจ "ไม่สมบูรณ์" ได้อย่างไร? ตามคำนิยามมันเกี่ยวข้องและการแก้ไขนั้นชัดเจน ถ้าเพียงเรามีความสามารถในการแก้ไขคำตอบ
Dave Newton

6

สร้างปุ่มลัดสำหรับวิธีที่รวดเร็วที่สุด

{ "keys": ["super+alt+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }

เพิ่มไปที่การตั้งค่า> การผูกกุญแจ (ผู้ใช้) เมื่อคุณกดsuper+ alt+ tมันจะแปลงช่องว่างเป็นแท็บ


2

คุณสามารถเพิ่มการผูกคีย์อย่างง่าย:

ค่ากำหนด> การโยงคีย์ - ผู้ใช้:

[
    { "keys": ["super+l"], "command": "reindent"},
]

ตอนนี้เลือกบรรทัดหรือไฟล์แล้วกด: command + l


0

หากคุณต้องการใช้การเปลี่ยนแปลงนี้ซ้ำกับไฟล์ทั้งหมดใน directoy คุณสามารถใช้ modal Find> Find in Files ...

ค้นหาในไฟล์ modal

แก้ไขฉันไม่ได้ไฮไลต์ไว้ในภาพ แต่คุณต้องคลิกปุ่ม. * ทางด้านซ้ายเพื่อให้ Sublime ตีความฟิลด์ค้นหาเป็น regex / แก้ไข

แก้ไข 2ฉันถูกทอดทิ้งเพื่อเพิ่มจุดเริ่มต้นของสตริงสมอลงใน regex ฉันกำลังแก้ไขด้านล่างและจะอัปเดตภาพเมื่อฉันมีโอกาส/ แก้ไข

regex ในฟิลด์ค้นหา^[^\S\t\n\r]{4}จะจับคู่อักขระช่องว่างสีขาวในกลุ่ม 4 (ไม่รวมแท็บและอักขระขึ้นบรรทัดใหม่) ช่องแทนที่\tระบุว่าคุณต้องการแทนที่ด้วยแท็บ

หากคุณคลิกปุ่มทางด้านขวาของช่องตำแหน่งคุณจะเห็นตัวเลือกที่จะช่วยให้คุณกำหนดเป้าหมายการค้นหาแทนที่ Add Folderตัวเลือกจะช่วยให้คุณเลือกโฟลเดอร์ที่คุณต้องการค้นหาซ้ำ Add Include Filterตัวเลือกที่จะช่วยให้คุณ จำกัด การค้นหาไฟล์ของส่วนขยายบางอย่าง

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