ข้อมูลพื้นฐาน
Vim ไม่แสดงบรรทัดใหม่ล่าสุดในบัฟเฟอร์ แต่จริง ๆ แล้ว vim จะวาง EOL ไว้ท้ายไฟล์เมื่อคุณเขียนเพราะมาตรฐานสำหรับไฟล์ข้อความในระบบ Unix คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่ ในระยะสั้นคุณไม่ต้องกังวลเกี่ยวกับการขาดบรรทัดใหม่ในตอนท้ายของไฟล์ในกลุ่ม
การทดลอง 1
คุณสามารถทำการทดลองขนาดเล็กนี้เพื่อตรวจสอบพฤติกรรมนี้ ใน terminal รัน:
$ vim test_test
ใส่ตัวอักษรและบันทึกไฟล์1
:wq
คุณมีอักขระเพียงตัวเดียวในไฟล์ใช่มั้ย ไม่จริง :) ตอนนี้คุณมีไฟล์1
และLF
ตัวละครอยู่แล้ว ตรวจสอบด้วยโปรแกรมอรรถประโยชน์ hexdump:
$ hexdump test_test
0000000 31 0a
0000002
31
เป็นรหัส ASCII สำหรับตัวอักษร1
และ0a
เป็นรหัส ASCII สำหรับLF
ตัวอักษรที่ไม่ได้พิมพ์ซึ่งสำหรับ UNIX ซึ่งคุณอาจทราบโค้ดสำหรับจุดสิ้นสุดบรรทัดแล้ว
การทดลอง 2
แต่ถ้าเราจะเปิดไฟล์ที่ไม่มีeol
สัญลักษณ์อยู่ท้ายไฟล์ ลองตรวจสอบด้วยนะ มาสร้างไฟล์ที่ไม่มี eol ตอนท้ายเช่นนี้
$ echo -n "1" > test_without_eol
จากนั้นลองดูข้างในอีกครั้งด้วย hexdump:
$ hexdump test_without_eol
000000 31
0000001
ดังนั้นจึงไม่มีeol
ตัวละครใด ๆที่นี่ ลองเปิดไฟล์นี้เป็นกลุ่ม:
$ vim test_without_eol
ที่ด้านล่างของเครื่องมือแก้ไขคุณจะเห็น:
"test_without_eol" [noeol] 1L, 1C
และถ้าคุณจะบันทึกeol
ตัวละครไฟล์นี้จะถูก putted โดยอัตโนมัติ
เราจะทำอย่างไรกับเรื่องนี้?
หากคุณต้องการเห็นจุดสิ้นสุดของไฟล์จริงๆ ลองใช้คำสั่งนี้:
:set listchars=eol:$
มันจะแสดงeol
ตัวละครทั้งหมดเป็น$
สัญญาณ