Apa yang bisa menyebabkan karakter aneh di Vim?

13

Saya punya masalah yang sangat aneh di Vim menggunakan plugin NERD tree, di mana, seperti yang Anda lihat pada gambar, karakternya terlihat sangat aneh. Di mana ada ahat, ~ V 3/4 seharusnya | -. Saya telah mengatur LANG saya ke en_US dan LC_ALL ke en_US (di Arch linux), dan saya menggunakan font Anonymous Pro, meskipun beralih font tidak ada bedanya.

sangat aneh

Penyamak
sumber
Sepertinya masalah charset. Plugin Anda menggunakan charset UTF-8 sementara gvim Anda mungkin mengharapkan latin1. Maaf saya tidak punya solusi yang lebih lengkap saat ini. Anda bisa mencoba mengeksekusi " :set fenc=utf-8", tetapi itu bukan solusi jangka panjang.
garyjohn
1
Itu memang terlihat seperti masalah pengkodean karakter. Dugaan saya adalah bahwa data berisi ├ (KOTAK GAMBAR CAHAYA VERTIKAL DAN KANAN, U + 251C), yaitu 0xE2 0x94 0x9C di UTF-8. Diterjemahkan sebagai ISO-8859-1, byte pertama adalah â, yang lain adalah kode kontrol. Sisanya tidak jelas, tetapi memaksakan interpretasi data ke UTF-8 harus menjelaskan masalah ini.
Jukka K. Korpela
Ok ya gambar kotak masuk akal, saya selalu berpikir itu hanya bar dan lari. Anonymous Pro memiliki karakter menggambar kotak.
Tanner
@ Tom Wijsman Saya tidak yakin apa yang Anda ubah tentang judulnya. Hasil edit Anda mengatakan Anda mengedit judul, tetapi tidak ada yang berubah.
Tanner
@ Tanner: Saya telah menambahkan "Apa yang bisa menyebabkan" dan tanda tanya.
Tamara Wijsman

Jawaban:

16

Liner satu ini dari scrooloose pada utas ini memperbaikinya:

let g:NERDTreeDirArrows=0

Coba letakkan itu di .vimrc

(lihat juga: jawaban yang sama diposting di sini di Stack Overflow )

Skye Giordano
sumber
Apa buahnya Masalah terpecahkan.
Erwin Rooijakkers
6

Saya sudah memecahkan masalah. Apa yang saya lakukan untuk menyelesaikannya:

  • Diedit /etc/locale.genke LC_ALL="en_US.UTF-8"bukanLC_ALL="en_US"
  • Ran locale-gen sebagai root
  • Ran locale -a, itu menunjukkan en_US.UTF-8; Namun, masih localemenunjukkan LC_ALLsedang en_US, maka saya ingat saya telah mengekspor LC_ALLdi .bashrcmalam terakhir saya mencoba untuk memperbaiki ini, jadi saya mengubah saya LANGdan LC_ALLkeen_US.UTF-8
  • Muat ulang terminal, lari gvim, sukses! Anehnya, sekarang menggunakan karakter panah segitiga, bukan yang kotak. Buat saya berpikir itu menggunakan yang kotak untuk ISO-8859 dan segitiga untuk UTF-8 mungkin, yang membuat saya curiga saya mungkin memiliki masalah di beberapa program lain. Saya akan memperbaikinya ketika tiba saatnya.
Penyamak
sumber
1
Ini tidak cukup untuk memperbaiki ini untuk saya; Saya juga harus mengkompilasi ulang vim dengan multi_byte. Sekarang berfungsi dengan baik.
chris.ritsen
Saya akan memeriksa untuk melihat apakah versi vim saya dikompilasi dengan multi_byte nanti malam.
Tanner
LC_ALL="en_US.UTF-8sudah cukup bagi saya
Jakub M.
3

Mungkin ini tidak layak diretas tetapi tampaknya berhasil bagi saya.

Saya mengubah baris NERDTree.vim:

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

(dulu !s:running_windows sebelumnya)

Sekarang saya tidak melihat +simbol mewah , tetapi setidaknya direktori melompat berfungsi dari dalam vim. Saya menggunakan solaris dan saya pikir saya tidak memiliki akses root.

Guru
sumber
1

Perubahan saya adalah untuk menghapus negasi boolean (karakter!). Berikut ini perbedaan git:

~ / .vim / terpasang / nerdtree / plugin] $ git diff NERD_tree.vim
beda --git a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
indeks bbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ call s: initVariable ("g: NERDTreeShowHidden", 0)
 panggilan s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 panggilan s: initVariable ("g: NERDTreeSortDirs", 1)

-jika! nerdtree # runningWindows ()
+ jika nerdtree # runningWindows ()
     panggil s: initVariable ("g: NERDTreeDirArrowExpandable", "--junk1-here--")
     panggil s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 lain
Sergei G
sumber
1

Menambahkan nilai secara eksplisit, ke 2 variabel berikutnya di .vimrc (vim config) memecahkan masalah bagi saya:

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

Ini harus menjadi nilai default tetapi karena beberapa alasan mereka tidak ditetapkan untuk saya di ubuntu / vim.

Pak
sumber
1

Jika vimrc Anda berubah guicursor, coba hapus baris itu. Variabel lain yang tampaknya menyebabkan / mencegah ini adalah:

set guicursor=di vimrc
set t_Co=di vimrc
export TERM=xterm-256colordi shell

csghone
sumber