ฉันจะตัดช่องว่างต่อท้ายโดยอัตโนมัติด้วย Notepad ++ ได้อย่างไร


69

ฉันไม่ต้องการลบบรรทัดว่างเปล่าอย่างสมบูรณ์ แต่ฉันต้องการลบแท็บที่ต่อท้ายและช่องว่างในนั้น Eclipseมักจะทำ (ผ่านการตั้งค่า) เมื่อเราบันทึกไฟล์

ตัวอย่างเช่นไฟล์ก่อนบันทึก ($ = จุดสิ้นสุดของบรรทัด):

def shuffle(list):$
    import random $
    $
    random.shuffle(list)
    $
$

... และเมื่อฉันบันทึกสิ่งนี้ในเครื่องมือแก้ไข Eclipse จะทำสิ่งต่อไปนี้:

def shuffle(list):$
    import random$
$
    random.shuffle(list)
$
$

ฉันจะตัดช่องว่างต่อท้ายโดยอัตโนมัติด้วย Notepad ++ ได้อย่างไร


[ \t]+$เพื่อตัดช่องว่างจากหลายไฟล์ในครั้งเดียวทำค้นหาและแทนที่สำหรับการแสดงออกปกติ ( ภาพหน้าจอ ) ( ที่มา )
Stevoisiak

คำตอบ:


73

คุณควรจะสามารถที่จะทำนิพจน์ปกติหา / แทนที่ใน Notepad ++ \s+$ใช้รูปแบบเช่น

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

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


9
ใช่ในรุ่น Notepad ++ ของฉันมีEdit -> Trim Trailing Spaceแต่ฉันจะทริกเกอร์สิ่งนั้นโดยอัตโนมัติสำหรับการบันทึกทุกครั้งหรือไม่
Srikanth

5
มีตัวเลือกสำหรับ "ตัดต่อท้ายและบันทึก" ภายใต้เมนูมาโคร
johanno

22
ฉันผูกปุ่ม Ctrl + S กับMacro -> Trim Trailing and saveตัวเลือกโดยใช้Settings -> Shortcut Mapper...ตัวเลือก มันดีกว่าต้องจำไว้ว่าให้เรียกใช้มาโครตลอดเวลา :)
Casey Kuball

การค้นหา\s+$จะตรงกับบรรทัดว่างใด ๆ โดยไม่คำนึงถึงช่องว่าง ฉันแนะนำให้ใช้[ \t]+$แทน (ดูฉันจะลบช่องว่างต่อท้ายโดยใช้นิพจน์ปกติได้อย่างไร )
Stevoisiak

63

Alt+ Shift+ Sทำสิ่งที่คุณต้องการ ในความเป็นจริงมันยังบันทึกไฟล์

ปรับปรุง

ตามที่ระบุไว้ 10basetom คุณสามารถกำหนดทางลัดอื่นให้กับแมโครนี้ คุณสามารถควบคุมทางลัดของคุณภายใต้การตั้งค่า> ทางลัด Mapper> [แมโคร]

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


10
หากต้องการตัดช่องว่างต่อท้ายเมื่อคุณบันทึก: (1) ลบทางลัดบันทึกเริ่มต้น (Ctrl + S) จากนั้น (2) กำหนดแมโคร "ตัดต่อท้ายและบันทึก" ให้กับ Ctrl + S
thdoan

1
และเมื่อต้องการลบSaveทางลัดเริ่มต้นให้ดับเบิลคลิกที่Shortcutฟิลด์แล้วเลือกNoneจากกล่องคำสั่งผสม
มิทช์

2
ฉันพบหน้านี้อัปเดตทางลัดตามที่คุณแนะนำและใช้อย่างมีความสุขหลังจากนั้น เมื่อไม่นานมานี้ฉันต้องติดตั้งเครื่องใหม่และลืมไปเลยว่าฉันเคยทำมาก่อน ... ค้นหาอีกครั้งและพบคำตอบนี้อีกครั้ง! คุณควรได้รับ +2 สำหรับการช่วยเหลือฉันเช่นนี้!
Stijn de Witt

การตั้งค่า>
ปุ่ม

นี่ควรเป็นคำตอบที่เลือกสำหรับฉัน ^^
Nam G VU

4

ปลั๊กอิน> ตัวจัดการปลั๊กอิน> แสดงตัวจัดการปลั๊กอิน
ภายใต้แท็บที่มีให้เลือก EditorConfig และคลิก [ติดตั้ง]

เพิ่ม.editorconfigไฟล์ไปยังโฟลเดอร์ (ตั้งชื่อ.editorconfig.เพื่อหลีกเลี่ยงข้อผิดพลาดของ Windows "คุณต้องพิมพ์ชื่อไฟล์" - จุดสุดท้ายจะถูกลบ)

# trims trailing whitespace for all files; filter like [*.{json,xml}]
[*]
trim_trailing_whitespace = true

EditorConfigยังสามารถระบุการเข้ารหัส, เยื้องและอักขระขึ้นบรรทัดใหม่เป็นต้น


1
ดูเหมือนว่าปลั๊กอิน EditorConfig สำหรับ Notepad ++ ไม่รองรับตัวเลือก trim_trailing_whitespace: github.com/editorconfig/editorconfig-notepad-plus-plus
jpa

1
การสนับสนุนสำหรับการtrim_trailing_whitespaceเพิ่มเป็น2016/04/20 / cc @jpa
Stijn

ฉันหวังว่าฉันจะโหวตได้มากกว่านี้แม้ว่าจะเป็นเพียง.editorconfig.กลลวงก็ตาม หากคิดว่าฉันใช้วิธีสร้าง dot-files ผ่าน Command Prompt เหมือนมนุษย์ถ้ำตลอดหลายปีที่ผ่านมา
jamesdlin

4

ฉันเปลี่ยนทางลัดเพื่อค้นหาวิธีแก้ไขปัญหานี้ ฉันลบทางลัดการบันทึก (เมนูลัด -> เมนูหลัก -> บันทึก) และแมปCtrl+ Sไปยังมาโคร "ตัดการต่อท้ายและบันทึก" (ตัวทำแผนที่ทางลัด -> มาโคร -> มาโคร -> การต่อท้ายและบันทึกการตัดแต่ง) วิธีนี้แมโครแทนที่การทำงานบันทึกและไม่มีความจำเป็นที่จะจำAlt+ Shift+ Sทางลัด


2

คำตอบที่มีอยู่ดูเก่า

ลองเส้นทางด้านล่าง:

Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Space

1
ฉันบันทึกแมโครเป็น "Trim Trailing Spaces" และ "แปลง Tabs เป็น Spaces" เพื่อความสอดคล้องในการควบคุมเวอร์ชัน Atl-Tจากนั้นผมก็บันทึกแมโครด้วยการรวมกัน keycode Alt-T, Ctrl-Sเป็นคำสั่งผสมที่รวดเร็วในการตัดแปลงและจัดเก็บ ฉันตั้งใจทำสองขั้นตอนเนื่องจากฉันไม่ต้องการตัดแต่งไฟล์ markdown หรือเปลี่ยนแท็บ / การติดตามเมื่อแก้ไขไฟล์ของผู้ดูแลอื่น ๆ ที่อาจใช้ค่ามาตรฐานที่แตกต่างจากที่ฉันใช้ และNotepad++ > Edit (menu) > Blank Operations > Trim Trailing Space Notepad++ > Edit (menu) > Blank Operations > TAB to Space(N ++ ยังมีSpace to TABตัวเลือก... )
SherylHohman

1

Ctrl+ F-> สลับเป็นแท็บแทนที่ ->

ค้นหาอะไร: \ t \ r

แทนที่ด้วย: \ r

ตรวจสอบให้แน่ใจว่าเปิดโหมดขยายการค้นหาแล้วแทนที่ทั้งหมด

หากคุณต้องการประหยัดเช่นกัน johanno มีทางออกที่ถูกต้อง มาโคร -> ตัดต่อท้ายและบันทึกทำงานตามที่ระบุ


คำตอบนี้ล้าสมัย
Antonio

1

วิธีอื่น -

  1. แก้ไข> การดำเนินการว่างเปล่า> ลบ Blank และ EOL ที่ไม่จำเป็น
  2. ปลั๊กอิน> เครื่องมือ XML> พิมพ์สวย (XML เท่านั้น - มีตัวแบ่งบรรทัด)

'เครื่องมือ XML' เป็นปลั๊กอินที่เราสามารถติดตั้งสำหรับ notepad ++


1

Alt+ Shift+ Sเป็นทางลัดเริ่มต้นสำหรับสิ่งนี้ Macro -> Trim Trailing and saveมันอยู่ในแถบเมนูเป็น คุณสามารถ rebind Settings -> Shortcut Mapper -> [Macros]นี้อยู่ภายใต้

Rebinding 'Trim Trailing and Save' ผ่านทางปุ่มลัด Mapper

การสร้างคำตอบของ kon Psychถ้าคุณต้องการตัดช่องว่างโดยอัตโนมัติทุกครั้งที่คุณบันทึกคุณสามารถตั้งค่านี้เพื่อแทนที่พฤติกรรมCtrl+ เริ่มต้น Sเพียงจำไว้ว่าต้องเปลี่ยนหรือลบทางลัดการบันทึกดั้งเดิมเพื่อป้องกันความขัดแย้ง

ปิดการใช้งานทางลัด 'บันทึก' เริ่มต้น


+1 สำหรับ 'อย่าลืมเปลี่ยนหรือลบทางลัดการบันทึกดั้งเดิมเพื่อป้องกันความขัดแย้ง'
Wafeeq

1

เพื่อรักษาคำสั่งเมนูที่มีอยู่ให้แมป (ไม่ได้กำหนดก่อนหน้านี้) Ctrl+ Tเพื่อตัดช่องว่างต่อท้าย จากนั้นทำCtrl+ TและCtrl+ Sร่วมกัน

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


1

เหล่านี้เป็นขั้นตอนที่แม่นยำในการเปลี่ยนเส้นทางทางลัด "บันทึก" มาตรฐานCtrl+ Sสิ่งที่ต้องทำแทน "ตัดส่วนต่อท้ายและบันทึก"

  • การตั้งค่า -> ตัวสร้างทางลัด ...
  • แท็บเมนูหลักดับเบิลคลิกที่ "บันทึก" เปลี่ยนSเป็นไม่มี
  • แท็บมาโครคลิกสองครั้งที่ "Trim Trailing Space and Save" เปลี่ยนเป็นCtrl+S

ทางลัดของแมโครยังสามารถแก้ไขได้จากมาโคร -> แก้ไขทางลัด / ลบมาโคร ...


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