วิธีการให้ vim listchar ทำงานภายใต้สภาพแวดล้อม utf8 ไม่ได้?


8

. vimrc ของฉันประกอบด้วย:

if $LANG =~ '\(UTF\|utf\)-\?8' || $LC_CTYPE =~ '\(UTF\|utf\)-\?8'
  set list listchars=tab:»·,trail:~,extends:>,precedes:<
endif

แต่มีตัวอักษรบางตัวที่เป็น unicode เมื่อฉันเรียกใช้ vim ภายใต้ LC_CTYPE = zh_TW.Big5 environment มันจะแสดง

Error detected while processing /home/user/.vimrc:
  line   70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<

คำตอบ:


5

เพิ่มบรรทัดต่อไปนี้ใน vimrc ของคุณโดยเฉพาะอย่างยิ่งใกล้จุดเริ่มต้น:

scriptencoding utf-8

สิ่งนั้นจะบอกให้ vim อ่านไฟล์เป็น UTF8 แม้ว่าคุณจะอยู่ในระบบที่ไม่ใช่ UTF จากนั้นจะแปลงรหัสอักขระใด ๆ จากที่เป็นการเข้ารหัสปัจจุบันของคุณ หากตัวละครที่คุณใช้ในตัวเลือก listchars มีอยู่การเข้ารหัสอื่น ๆ ที่คุณใช้คุณไม่จำเป็นต้องมีเงื่อนไขรอบตัว


วิธีนี้ใช้งานได้เป็นกลุ่ม แต่ฉันพบว่า gvim ยังคงแสดงข้อความข้อผิดพลาดนั้น
Daniel YC Lin

1
คุณมี.gvimrcไฟล์ที่มีอักขระ Unicode หรือไม่? ถ้าเป็นเช่นนั้นการเพิ่มบรรทัดเดียวกันลงในไฟล์นั้นควรแก้ไขปัญหาที่นั่นเช่นกัน คำสั่งนั้นใช้กับไฟล์ที่พบเท่านั้นดังนั้นจะต้องรวมอยู่ในไฟล์คอนฟิกูเรชัน vim ใด ๆ ที่การเข้ารหัสอักขระมีความสำคัญ
qqx

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