แสดง CR และ LF แทน“ EOL” ใน ': set list'


12

แทนที่จะเลือกหนึ่งอักขระที่จะแสดงเป็นอักขระ EOL ฉันต้องการให้แสดงทั้ง CR และ LF แยกต่างหากโดยไม่คำนึงว่าไฟล์เป็น unix หรือ dos เป็นไปได้ไหม


2
ดังนั้นถ้าฉันเข้าใจคุณอย่างถูกต้องคุณต้องการสิ่งที่ต้องการHello%$สำหรับไฟล์ DOS (ที่%เป็น CR และ$เป็นLF) นี้เป็นไปไม่ได้กับlist/ listcharsการตั้งค่าและฉันไม่สามารถหาวิธีการทำเช่นนี้ใน VimScript ทั้ง ...
Martin Tournoij

1
@Carpetsmoker ถูกต้องแล้ว นอกเหนือจากset listนี้มีวิธีที่จะมีCRและLFแสดงเป็นตัวละครที่เฉพาะเจาะจงอาจจะ?
Captain Man

2
คุณอาจจะสามารถเน้นสีบางสีได้ แต่ไม่มีวิธีแสดงให้เห็นว่าเป็นอักขระเฉพาะที่ไม่แฮ็กอาฟิก
EvergreenTree

ฉันคิดว่าสามารถเห็น CR หรือ LF ได้ครั้งละทั้งสองอย่าง
SibiCoder

1
set stl+=\ [%{&ff=='mac'?'CR':&ff=='unix'?'LF':'CRLF'}]
แอนโทนี

คำตอบ:


2

ด้วยคำเตือนบางอย่างคุณสามารถทำได้โดยใช้โหมดไบนารีของ Vim ดูเหมือนว่าคุณอาจต้องการใช้คำสั่ง

vim -b +'set list' somefile

หรือคุณสามารถใส่สิ่งต่อไปนี้ใน.vimrc:

:set binary
:set list

สิ่งสำคัญคือต้องตั้งค่าโหมดไบนารีก่อนที่ไฟล์ที่เป็นปัญหาจะถูกอ่านในบัฟเฟอร์ เมื่อ Vim อ่านไฟล์ในแล้วมันจะสายเกินไป เคล็ดลับนี้ต้องอาศัยการเปลี่ยนแปลงวิธีการที่เป็นกลุ่มอ่านแฟ้มใน. โดยเฉพาะสิ่งที่คุณต้องการสำหรับกลุ่มที่จะไม่<EOL>พยายามที่จะคาดเดาประเภทเฉพาะไฟล์ของ

โหมดไบนารีทำในสิ่งที่คุณต้องการปิดใช้งานการตรวจจับตัวแยกบรรทัดอัตโนมัตินี้ แต่ก็ทำสิ่งอื่น ๆ ได้เช่นกัน:

  • กำหนด'textwidth'เป็น 0
  • กำหนด'wrapmargin'เป็น 0
  • unsets 'modeline'
  • unsets 'expandtab'

ดังนั้นคุณอาจไม่ต้องการที่จะมีในของคุณ.vimrc; อาจเป็นการดีกว่าที่จะใช้เวอร์ชันบรรทัดคำสั่งและสำหรับไฟล์เหล่านั้นที่คุณต้องการจอแสดงผลชนิดพิเศษนี้เท่านั้น

สำหรับข้อมูลเพิ่มเติม:

  • :help 'binary'
  • :help edit-binary
  • :help file-read
  • :help file-formats
  • :help 'fileformat'

but it does quite a few other things as wellเป็นเพราะไบนารี่เป็นFileTypeคำสั่งอัตโนมัติหรือมีบางอย่างในตัวสิ่งที่หลีกเลี่ยงไม่ได้?
Captain Man

ตามวลีนั้นฉันตั้งใจจะแนะนำรายการที่ตามมาทันที
Ptolemarch

ใช่ฉันไม่ได้อ้างทุกสิ่ง :) สิ่งที่ฉันหมายถึงคือมันทำสิ่งเหล่านั้นเพราะมันใช้บางอย่างที่ถูกFileTypeเรียกbinaryด้วยคำสั่งอัตโนมัติเหล่านั้นหรือมันเป็นเพียงบางอย่างในตัว?
Captain Man

1
อ่าใช่มั้ย สิ่งนี้ไม่เกี่ยวข้องกับประเภทไฟล์ (แต่มันค่อนข้างจะเป็นรูปแบบไฟล์) นี่เป็นส่วนหนึ่งของโหมดไบนารีเอง :help 'binary'ดู :help 'fileformat'และอาจจะ
Ptolemarch

0

หากคุณเพิ่มใน~/.vimrc:

set ffs=unix
set list

ที่มักจะแสดงCRเป็น^Mและเป็นLF$

โดยค่าเริ่มต้นเป็นกลุ่มจะแปลความหมายไฟล์ที่มีเพียงCRLFตอนจบเป็นไฟล์ DOS และแสดงเป็นCRLF $โดยการตั้งค่าffs=unixคุณบังคับให้กลุ่มที่จะเปิดเป็นไฟล์ unix เสมอและดังนั้น CR จะถือว่าเป็นตัวละครพิเศษ

หมายเหตุ: ระวังหากทำการแก้ไขและบันทึกไฟล์ dos หากคุณกดก็จะแทรกENTER LFคุณจะต้องใส่ด้วยตนเองโดยการพิมพ์CRCTRL+V, CTRL+M

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