สองคำสั่งนี้ต่างกันอย่างไร?
set encoding=utf-8
set fileencoding=utf-8
ฉันต้องตั้งค่าทั้งสองอย่างเมื่อต้องการใช้ utf-8 หรือไม่
นอกจากนี้ฉันต้องตั้งค่าการเข้ารหัสไฟล์ด้วยset
หรือsetglobal
ไม่
สองคำสั่งนี้ต่างกันอย่างไร?
set encoding=utf-8
set fileencoding=utf-8
ฉันต้องตั้งค่าทั้งสองอย่างเมื่อต้องการใช้ utf-8 หรือไม่
นอกจากนี้ฉันต้องตั้งค่าการเข้ารหัสไฟล์ด้วยset
หรือsetglobal
ไม่
คำตอบ:
ในกรณีแรก
set encoding=utf-8
คุณจะเปลี่ยนการเข้ารหัสเอาต์พุตที่แสดงในเทอร์มินัลในกรณีที่สองกับ
set fileencoding=utf-8
คุณจะเปลี่ยนการส่งออกการเข้ารหัสของไฟล์ที่เป็นลายลักษณ์อักษร
ตามที่ระบุไว้โดย @Dennis คุณสามารถตั้งค่าทั้งสองอย่างใน ~ / .vimrc ของคุณได้หากคุณต้องการทำงานอยู่utf-8
เสมอ
จากวิกิของ VIM เกี่ยวกับการทำงานกับ Unicode
" encoding
กำหนดว่ากลุ่มจะแสดงอักขระอย่างไรภายใน Utf-8 จำเป็นสำหรับรสชาติส่วนใหญ่ของ Unicode"
" fileencoding
ตั้งค่าการเข้ารหัสสำหรับไฟล์ใดไฟล์หนึ่ง (โลคัลเป็นบัฟเฟอร์);: setglobal ตั้งค่าเริ่มต้นสามารถใช้ค่าว่างได้โดยค่าเริ่มต้นจะเหมือนกับ 'การเข้ารหัส' หรือคุณอาจต้องการตั้งค่าการเข้ารหัส ucs อย่างใดอย่างหนึ่ง มันอาจทำให้ไฟล์ดิสก์เดียวกันใหญ่ขึ้นหรือเล็กลงขึ้นอยู่กับการผสมผสานของตัวละครของคุณนอกจากนี้ IIUC, utf-8 ยังคงเป็น big-endian เสมอ (high bit ก่อน) ในขณะที่ ucs สามารถเป็น big-endian หรือ little-endian ได้ดังนั้นหากคุณ ใช้มันคุณอาจจะต้องตั้งค่า "ระเบิด" (ดูด้านล่าง) "
vim -c "set encoding=utf-8" file.ext
ถ้าจำเป็นเฉพาะกิจโดยตรงจากบรรทัดคำสั่ง
set encoding=utf-8 " The encoding displayed.
set fileencoding=utf-8 " The encoding written to file.
คุณอาจตั้งค่าทั้งสองอย่างใน~/.vimrc
กรณีที่คุณต้องการทำงานกับ utf-8 อยู่เสมอ
คุณสามารถตั้งค่าตัวแปร 'fileencodings' ใน. vimrc ของคุณ
นี่คือรายการการเข้ารหัสอักขระที่พิจารณาเมื่อเริ่มแก้ไขไฟล์ที่มีอยู่ เมื่อไฟล์ถูกอ่าน Vim จะพยายามใช้การเข้ารหัสอักขระที่กล่าวถึงครั้งแรก หากตรวจพบข้อผิดพลาดให้ลองทำข้อผิดพลาดถัดไปในรายการ เมื่อพบการเข้ารหัสที่ใช้งานได้ 'fileencoding' จะถูกตั้งค่าเป็น หากทั้งหมดล้มเหลว 'fileencoding' จะถูกตั้งค่าเป็นสตริงว่างซึ่งหมายความว่าจะใช้ค่าของ 'การเข้ารหัส'
ดู :help filencodings
หากคุณทำงานกับเช่น cp1252 บ่อยๆคุณสามารถเพิ่มได้ที่นั่น:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9