สิ่งที่อาจทำให้ตัวละครแปลก ๆ ในกลุ่ม?


13

ฉันมีปัญหาที่แปลกจริง ๆ ใน Vim โดยใช้ NERD tree plugin ซึ่งในขณะที่คุณเห็นในภาพตัวละครกำลังแสดงแปลก ๆ ที่ไหนมี ahat ~ V 3/4 ควรเป็น | - ฉันได้ตั้งค่า LANG ของฉันเป็น en_US และ LC_ALL เป็น en_US (ใน Arch linux) และฉันกำลังใช้แบบอักษร Anonymous Pro แม้ว่าการเปลี่ยนแบบอักษรจะไม่แตกต่างกัน

แปลกจริง


ดูเหมือนว่าปัญหาชุดอักขระ ปลั๊กอินของคุณกำลังใช้ชุดอักขระ UTF-8 ในขณะที่ gvim ของคุณน่าจะคาดหวังว่า latin1 ฉันขอโทษฉันยังไม่มีวิธีแก้ปัญหาที่สมบูรณ์กว่านี้ในตอนนี้ คุณสามารถลองดำเนินการ " :set fenc=utf-8" แต่นั่นไม่ใช่ทางออกระยะยาวจริง ๆ
garyjohn

1
ดูเหมือนว่าปัญหาการเข้ารหัสอักขระ ฉันเดาว่าข้อมูลนั้นมี├ (BOX DRAWINGS LIGHT VERTICAL and RIGHT, U + 251C) ซึ่งคือ 0xE2 0x94 0x9C ใน UTF-8 ตีความเป็น ISO-8859-1, ไบต์แรกคือ, อื่น ๆ เป็นรหัสควบคุม ส่วนที่เหลือนั้นคลุมเครือ แต่การบังคับให้ตีความข้อมูลไปยัง UTF-8 ควรทิ้งแสงให้กับปัญหา
Jukka K. Korpela

โอเคใช่การวาดรูปกล่องทำให้รู้สึกฉันคิดเสมอว่ามันเป็นแค่บาร์และเส้นประ ผู้ไม่ประสงค์ออกนามมีอักขระวาดกล่อง
ฟอกหนัง

@Tom Wijsman ฉันไม่แน่ใจว่าสิ่งที่คุณเปลี่ยนเกี่ยวกับชื่อ การแก้ไขของคุณระบุว่าคุณแก้ไขชื่อ แต่ไม่มีการเปลี่ยนแปลงใด ๆ
แทนเนอร์

@Tanner: ฉันได้เพิ่ม "สิ่งที่อาจทำให้เกิด" และเครื่องหมายคำถาม
Tamara Wijsman

คำตอบ:



6

ฉันแก้ไขปัญหาแล้ว สิ่งที่ฉันทำเพื่อแก้ไขมัน:

  • แก้ไข/etc/locale.genไปLC_ALL="en_US.UTF-8"แทนLC_ALL="en_US"
  • วิ่งlocale-genตามราก
  • วิ่งlocale -aมันแสดงให้เห็นen_US.UTF-8; แต่localeแสดงให้เห็นว่าLC_ALLยังคงถูกen_USแล้วผมจำได้ว่าผมเคยส่งออกLC_ALLในของฉัน.bashrcคืนที่ผ่านมาพยายามที่จะแก้ไขปัญหานี้ดังนั้นผมเปลี่ยนของฉันLANGและLC_ALLการen_US.UTF-8
  • โหลดเทอร์มินัลใหม่วิ่งgvimสำเร็จ! มันแปลก แต่ตอนนี้มันใช้ตัวอักษรลูกศรสามเหลี่ยมแทนตัวกล่อง ทำให้ฉันคิดว่ามันใช้กล่องสำหรับ ISO-8859 และสามเหลี่ยมสำหรับ UTF-8 ซึ่งอาจทำให้ฉันสงสัยว่าฉันอาจมีปัญหาตามถนนในโปรแกรมอื่น ฉันจะแก้ไขเมื่อพูดถึง

1
มันไม่เพียงพอที่จะแก้ไขปัญหานี้ให้ฉัน ฉันยังต้องคอมไพล์คอมไพล์ใหม่ด้วย multi_byte ทำงานได้ดีในขณะนี้
chris.ritsen

ฉันจะตรวจสอบเพื่อดูว่าเสียงเรียกเข้าเวอร์ชันของฉันถูกคอมไพล์ด้วย multi_byte ในภายหลัง
แทนเนอร์

LC_ALL="en_US.UTF-8ก็เพียงพอแล้วสำหรับฉัน
Jakub M.

3

บางทีนี่อาจจะไม่คุ้มค่ากับการแฮ็ค แต่ดูเหมือนว่ามันจะได้ผลสำหรับฉัน

ฉันเปลี่ยนสายในNERDTree.vim:

call s:initVariable("g:NERDTreeDirArrows", s:running_windows) 

(เมื่อ!s:running_windowsก่อน)

ตอนนี้ฉันไม่เห็น+สัญลักษณ์แฟนซีใด ๆแต่อย่างน้อยไดเรกทอรีกระโดดทำงานได้จากภายในกลุ่ม ฉันอยู่บนโซลาริสและฉันไม่คิดว่าฉันสามารถเข้าถึงรูทได้


1

การเปลี่ยนแปลงของฉันคือการลบการปฏิเสธบูลีน (ตัวละคร!) นี่คือคอมไพล์ git:

~ / .vim / plugged / nerdtree / plugin] $ git diff NERD_tree.vim
diff --git a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
ดัชนี bbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ การโทร s: initVariable ("g: NERDTreeShowHidden", 0)
 เรียก s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 เรียก s: initVariable ("g: NERDTreeSortDirs", 1)

-if! nerdtree # runningWindows ()
+ ถ้า nerdtree # runningWindows ()
     เรียก s: initVariable ("g: NERDTreeDirArrow ที่ขยายได้", "--junk1-here--")
     เรียก s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 อื่น

1

การเพิ่มค่าอย่างชัดเจนให้กับตัวแปร 2 ตัวถัดไปใน. vimrc (vim config) แก้ปัญหาให้ฉัน:

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

สิ่งเหล่านี้ควรเป็นค่าเริ่มต้น แต่ด้วยเหตุผลบางอย่างพวกเขาไม่ได้ตั้งค่าสำหรับฉันบน ubuntu / vim


1

หาก vimrc ของคุณเปลี่ยนguicursorลองลบบรรทัดนั้นออก ตัวแปรอื่น ๆ ที่ดูเหมือนจะทำให้ / ป้องกันเหล่านี้คือ:

set guicursor=ใน vimrc
set t_Co=ใน vimrc
export TERM=xterm-256colorในเชลล์


1

ในกรณีที่ฉันมีปัญหาเกี่ยวข้องกับปัญหาสถานที่ วิธีการแก้:

  1. ตั้งค่า:

    ส่งออก LC_ALL = "en_US.UTF-8"

  2. เรียกใช้เป็นกลุ่ม:

    เสียงเรียกเข้า

ดูรายละเอียดของปัญหาสถานที่ได้ที่นี่:

ไม่สามารถตั้งค่า LC_CTYPE เป็นภาษาเริ่มต้น: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

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