Notepad ไม่สนใจ linebreaks [ซ้ำกัน]


35

เอกสารส่วนใหญ่ที่ฉันเปิดใน notepad.exe ภายใต้ windows 7 เมื่อเร็ว ๆ นี้ไม่มีการแพร่กระจาย ... ทุกอย่างทำงานร่วมกัน เอกสารเดียวกันในโปรแกรมอื่น ๆ แม้จะแสดงตัวอย่างโดยตรงใน Explorer จะแสดงการแพร่กระจายอย่างถูกต้อง สิ่งนี้เกิดขึ้นกับไฟล์. info, .css, .js .. จำนวนมาก แต่ไม่ใช่ทั้งหมด

ฉันคาดเดาว่ามันเป็นอักขระที่เข้ารหัสบรรทัดยูนิกซ์บางอย่างจบลงบางอย่างหรืออย่างอื่น แต่สงสัยว่ามีอะไรที่ฉันสามารถทำได้หรือถ้าคนอื่นมีประสบการณ์ที่คล้ายกันและถ้าฉันสามารถใช้งาน Notepad ได้อย่างถูกต้อง ฉันชอบที่จะใช้ notepad ++ / โปรแกรมแก้ไขข้อความอื่น ๆ สำหรับการใช้งานบางอย่าง


ดูstackoverflow.com/a/50241693/6309 : Notepad รองรับ \ n ตอนนี้ (Windows 10, Q2 2018)
VonC

คำตอบ:


44

มีตัวแบ่งบรรทัด แต่ระบบปฏิบัติการที่แตกต่างกันจะรู้จักลำดับที่แตกต่างกันสำหรับตัวแบ่งบรรทัด

Notepad จะรู้จัก CR, LF (0x0d, 0x0a) เท่านั้นในขณะที่แหล่งอื่นอาจใช้ CR เท่านั้นหรือ LF เท่านั้น

คุณไม่สามารถทำให้ Notepad ทำงานได้แตกต่างกันดังนั้นทางเลือกเดียวของคุณคือการทำให้แน่ใจว่าเนื้อหานั้นมีลำดับที่ถูกต้องสำหรับ Notepad โปรดทราบว่า notepad เป็นตัวแก้ไขเดียวที่มีข้อ จำกัด นี้ดังนั้นหากเนื้อหาของคุณทำงานใน Notepad มันจะทำงานได้ทุกที่

วิธีง่าย ๆ ในการแก้ไขการป้อนบรรทัดคือการคัดลอกและวางข้อความลงใน Word จากนั้นกลับไปที่แผ่นจดบันทึกอีกครั้งและการป้อนบรรทัดจะได้รับ "แก้ไข" ในลำดับ CR, LF


35
AHA! ฟังดูคล้ายแผ่นจดบันทึกที่อาจจะง่ายกว่านี้ P
Damon

1
อย่างแน่นอน (padding)
พอล

3
ฉันคิดว่ามันน่างงจริงๆที่ข้อ จำกัด อายุยี่สิบปีนี้ยังไม่ได้รับการแก้ไข ...
Haroldo_OK

1
เปิดด้วยคำบันทึกแล้วเปิดด้วยแผ่นจดบันทึก ... ไม่จำเป็นต้องคัดลอกวาง
Gavin Palmer

2
ข่าวดีเทคโนโลยีที่มีในที่สุดก็เดินทางมาถึง
mkobit

9

Wordpad

หาก aversion ของคุณเป็น notepad ++ และโปรแกรมแก้ไขข้อความอื่น ๆ นั่นไม่ใช่ส่วนมาตรฐานของระบบ Windows ทั้งหมดให้ใช้ Wordpad มันไม่ได้ค่อนข้างเป็นพื้นฐานเป็น Notepad

Wordpad จะอ่านและแสดงไฟล์ข้อความอย่างถูกต้องด้วย Unix line-endings

อื่น ๆ

หากคุณไม่ชอบทั้งโปรแกรมแก้ไขข้อความเดียวจริง ๆ แล้วแผ่นจดบันทึก ++ น่าจะเป็นตัวเลือกที่ดี


prob ด้วย w / notepad ++ ของฉันสำหรับการดู / แก้ไขอย่างรวดเร็วจริงๆแล้วคือมันทำให้เอกสารหลาย ๆ เอกสารเปิดอยู่ยกเว้นว่าฉันปิดมันโดยเฉพาะ เพียงแค่รู้สึกไม่ถูกต้องสำหรับการใช้งานนั้น ฉันอาจเชื่อมโยงไฟล์ข้อความอีกครั้งด้วย worpad และตรวจสอบให้แน่ใจว่ามันอยู่ในopen with...เมนูของฉัน
Damon

2
สำหรับทุกคนที่อ่านปีนี้ในภายหลังคุณสามารถปิดฟังก์ชั่นนี้ได้ในการตั้งค่ามันเหมือนกับ "จดจำเซสชันปัจจุบันสำหรับการเปิดตัวครั้งถัดไป"
Uberfuzzy

2
@Damon ฉันเคยเกลียดพฤติกรรมนี้เช่นกัน แต่คุณสามารถปิดการใช้งานได้ คุณเพียงแค่ต้องกำหนดค่า Notepad ++ ไม่ให้เปิดเซสชันเก่าอีกครั้ง ไปที่การตั้งค่า -> การตั้งค่า -> การสำรองข้อมูล ยกเลิกการเลือก "จดจำเซสชันปัจจุบันสำหรับการเปิดตัวครั้งถัดไป"
เบคอน Bits

จะบอกว่าปัญหาไม่ได้เกี่ยวกับการต้องการให้ตัวแก้ไขข้อความเป็นพอร์ตกับ Windows เท่าที่ต้องการให้ Windows มีตัวแก้ไขข้อความที่ดีอย่างน้อยหนึ่งตัว ฉันจะไม่นับ MS Word หรือ WordPad เป็น "เครื่องมือแก้ไขข้อความ" เนื่องจากจุดประสงค์ของเครื่องมือเหล่านี้แทนที่จะสร้างรายงานมากกว่าการแก้ไขข้อความ ข้อความไม่ได้มาพร้อมกับหน้าหรือจำเป็นต้องพอดีกับหน้า ยังอยู่ในปี 2018 และ Windows 10 ฉันไม่พบสิ่งนี้
patrik

5

คุณสามารถเขียนสคริปต์แบทช์ง่าย ๆ :

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B

บันทึกสิ่งนี้ไว้notepad.batในไดเรกทอรีที่คุณต้องการ จากนั้นแทนที่จะเปิด.info/ .css/ .jsไฟล์ของคุณด้วย Notepad ให้เปิดด้วยสคริปต์ชุดงานนี้ มันจะแปลงจุดสิ้นสุดของ Unix ทั้งหมดเป็น DOS โดยอัตโนมัติจากนั้นเปิดไฟล์ด้วย Notepad

ข้อเสีย:

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

ขอให้เรายังคงอภิปรายนี้ในการแชท
mpag

ข้อเสนอแนะอื่น แทนที่startบรรทัดด้วยSTART "NOTEPAD" "%SystemRoot%\System32\NOTEPAD.EXE" %1เพื่อพูดคุยสำหรับความบ้าคลั่งที่มี D เป็นไดรฟ์หลักหรือ WinNT สำหรับไดเรกทอรี windows
mpag

@mpag แน่นอนยกเว้นฉันไม่รู้สึกว่าจำเป็นต้องแก้ไขในคำตอบของฉัน ใครก็ตามที่ wacko มากพอที่ไดเรกทอรีรากของพวกเขาจะไม่C:ได้รับการสนับสนุนจากฉัน C:ได้รับมาตรฐานตั้งแต่ DOS ออกมาในปี 1981
MD XF

1
เพื่อรักษาเวลาประทับ:mkdir %1.dir TYPE %1 | FIND /V "" >%1.dir\%1 robocopy . %1.dir %1 /copy:t >NUL 2>&1 move %1.dir\%1 . > NUL 2>&1 rmdir %1.dir
mpag

หรือคุณก็สามารถใช้นี้ยูทิลิตี้ที่มีอยู่ก่อน
mbomb007

4

เนื่องจาก Notepad ++ ได้รับการกล่าวถึงโดยเฉพาะใน OP ดังนั้นจึงมีการตั้งค่าที่จำเป็นภายใต้:

แก้ไข -> การแปลง EOL -> รูปแบบ Windows


รุ่น Notepad ++ 7.5.9 มีตัวเลือกชื่อ "Windows (CR LF)" ใต้ EOL Conversion
André M. Faria

3

คุณต้องเปลี่ยนประเภทของการเข้ารหัส line-break ที่ใช้ในไฟล์

ใน Linux มีโปรแกรมที่ชื่อว่า "unix2dos" ที่สามารถทำเพื่อคุณได้ ฉันไม่แน่ใจว่า Windows มาพร้อมกับโปรแกรมดังกล่าวหรือไม่ แต่ดูเหมือนว่าจะมีโปรแกรมที่คล้ายกันที่นี่: http://www.thefreecountry.com/tofrodos/

มีข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการนี้ใน Wikipedia: http://en.wikipedia.org/wiki/Unix2dos ซึ่งคุณสามารถรับตัวอย่างของโปรแกรมบรรทัดคำสั่งต่าง ๆ ที่สามารถเปลี่ยนแปลงได้


หากคุณติดตั้ง Sublime คุณสามารถเลือกView->Line endings -> Windowsและบันทึกไฟล์เพื่อเขียนทับมันได้ ในกรณีนี้การสิ้นสุดบรรทัด unix จะเปลี่ยนเป็นรูปแบบ Windows หากคุณเปิดไฟล์ที่บันทึกไว้ใน Notepad ไฟล์จะแสดงรายการสิ้นสุดบรรทัดอย่างถูกต้อง
จูเนียร์เอ็ม

1

อีกสิ่งที่คุณสามารถทำได้: เปิดไฟล์ใน WordPad แล้วบันทึก มันจะแก้ไขการจบบรรทัด นี่เป็นวิธีที่เร็วที่สุด


1

คุณแก้ไขให้ถูกต้องว่าเป็นปัญหาของ Unix line endings มีจุดสิ้นสุดของบรรทัดที่แตกต่างกันหลายรูปแบบ แต่รูปแบบที่พบบ่อยที่สุดสามแบบ:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS และอื่น ๆ
  • "U + 000D CARRIAGE RETURN" (CR): macOS แบบคลาสสิกท่ามกลางคนอื่น ๆ
  • "U + 000D CARRIAGE RETURN" ตามด้วย "U + 000A LINE FEED" (CRLF): Windows และระบบปฏิบัติการอื่นที่ไม่ใช่ Unix / IBM

รุ่นเก่าของ Notepad รับรู้เพียง CRLF แต่รุ่นใหม่สนับสนุน CRLF, CR และ LF

ไม่มีการตั้งค่าให้เปลี่ยนพฤติกรรมนี้ในรุ่นเก่ากว่าของ Notepad แต่คุณสามารถเปลี่ยนกลับเป็นพฤติกรรมเก่าในรุ่นใหม่ได้ โปรแกรมกระแสหลักอื่น ๆ ส่วนใหญ่ได้ทำงานร่วมกับการสิ้นสุดทั้งสามบรรทัดเป็นระยะเวลาหนึ่งดังนั้นหากเนื้อหาของคุณทำงานใน Notepad รุ่นเก่ามันควรจะทำงานได้ทุกที่

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