ฉันเปิดไฟล์โดยใช้vim
Ubuntu และต่อไปนี้จะปรากฏที่ด้านล่างของหน้าจอ:
"file.py" [noeol] 553L, 16620C
อะไรnoeol
บ่งบอก?
ฉันเปิดไฟล์โดยใช้vim
Ubuntu และต่อไปนี้จะปรากฏที่ด้านล่างของหน้าจอ:
"file.py" [noeol] 553L, 16620C
อะไรnoeol
บ่งบอก?
คำตอบ:
บรรณาธิการของ Unix จะชอบvi
และvim
จะใส่บรรทัดใหม่ ( \n
) ที่ท้ายบรรทัดทุกบรรทัดโดยเฉพาะรวมถึงบรรทัดสุดท้าย หากไม่มีจุดสิ้นสุดของบรรทัด ( eol
) ในบรรทัดสุดท้ายแสดงว่าเป็นสถานการณ์ที่ผิดปกติและไฟล์ส่วนใหญ่ไม่ได้ถูกสร้างขึ้นโดยตัวแก้ไข UNIX มาตรฐาน
สถานการณ์ที่ผิดปกตินี้เกิดขึ้นกับการแจ้งเตือนของคุณโดย[noeol]
ธงในvim
เครื่องมือแก้ไข บรรณาธิการอื่น ๆ อาจมีธงและการแจ้งเตือนที่คล้ายกัน
emacs
การเคลื่อนย้ายเคอร์เซอร์ไปยังจุดสิ้นสุดของแฟ้ม (บรรทัดสุดท้ายหลังจากที่ตัวอักษรตัวสุดท้าย) และดำเนินการคุณจริงจบลงลบkill-line
eol
บรรทัดสุดท้ายในไฟล์ไม่มีการขึ้นบรรทัดใหม่ (\ n)
\n
ที่ท้ายบรรทัดเพื่อพิจารณาว่าเป็นบรรทัดที่สมบูรณ์ (พร้อมอักขระบรรทัดขึ้นบรรทัดใหม่) ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็นไฟล์ซึ่งอาจมีลักษณะเช่นที่สมบูรณ์สายได้อย่างรวดเร็วสบาย ๆ ในโปรแกรมแก้ไขข้อความ แต่wc
ไม่ได้ condider เป็นบรรทัด: printf "x">"file-no-newline"; wc -l <"file-no-newline"
- Outpute คือ 0
.. noeolเป็นเพียงช่วยภาพที่จะให้คุณรู้ว่า สถานะ ..
ซึ่งหมายความว่าระบบปฏิบัติการที่คุณดูไฟล์นั้นไม่สามารถตรวจพบจุดสิ้นสุดของไฟล์ (หากไฟล์นั้นมีทั้งหมด) บางครั้งสิ่งนี้เกิดขึ้นเมื่อคุณย้ายไฟล์ข้าม OS (i, e .. จาก MS ไปยัง * nix os)
ในกลุ่มถ้าไฟล์มี windows carriage return " ^M"
คุณสามารถแก้ไขได้ด้วยคำสั่งต่อไปนี้: in vim do:
:%s/^M/\r/g
ความหมาย:
% => select the whole buffer
s => Search
/^M/ => find Windows Carrage return.
/\r/ => Replae it with *nix carrage return
หมายเหตุ: ใน Mac OX ^M is ctl+v && ctrl+m
มันคือ'ไม่มี EOL' - ไม่มีจุดสิ้นสุดของตัวบ่งชี้บรรทัด มีประโยชน์มากถ้าคุณเปิดไฟล์ที่มีขนาดใหญ่มาก (> 1GB) Vim พยายามดึงทั้งหมดที่อยู่ใน 1 บรรทัด ตัวบ่งชี้นี้ช่วยให้ฉันปิดไฟล์อย่างรวดเร็วก่อนที่จะทำให้ระบบปฏิบัติการของฉันเสีย