Emacs ranglari "ekran 256kolor" va "xterm-256kolor" bo'lsa,

Emacs terminalidan foydalanib, TERM muhit o'zgaruvchisi screen-256color va xterm-256color o'rtasida o'zgartirilganda, Emacs ichidagi standart ranglar boshqacha o'rnatiladi.

Faqat aniq bo'lishi uchun har ikki holatda ham to'liq hajmdagi 256 bit rangni qo'llab-quvvatlayapman (byobu/tmux bilan ishlaydigan va navbati bilan Gnome terminal bilan ishlaydigan), lekin Emacs turli xil ranglarni qo'llayapti, shuning uchun men bir xil Python fayliga qaraganimda, sintaksis ta'kidlashdan maqsad ranglarning har biridan farq qiladi. Bir xil mavzuga color-theme-ni tanlang yordamida ranglarni qo'l bilan almashtirganda, ular xuddi shu ranglardan foydalanadilar. Muammo shundaki, ranglarning qanday boshlanishini va eng muhimi, nima uchun ular boshqacha tarzda o'rnatilganligini bilmayman.

Ushbu xatti-harakatlar bodomni TERM = xterm-256color dan foydalanish uchun majbur qilganda barqarorligicha qoladi, shuning uchun terminal emulyatorlarining har ikkalasida ham bu muammo mavjud emas.

Emacs har bir vaziyatda bir xil ranglarni ishlatishini qanday ta'minlay olaman?

3

2 javoblar

Muammo shundaki, ranglarning qanday boshlanishini va eng muhimi, nima uchun ular boshqacha tarzda o'rnatilganligini bilmayman.

Ehtimol, StackOverflow-da bu muhokamani o'rinli bo'lishi mumkin - ba'zi tafsilotlar nima sodir bo'lganiga javob.


Mening ishim emacs usulida fon rangini aniqlaydi . Bu xterm - * uchun emas, balki ekrani - * emas, balki qora fonni ishlatganda, aslida oq (hukm qilmang).

Bog'langan javobda ham vaqtinchalik hal qilinayapti - to'g'ri fon rangi qo'lda ( emacs "lizing" so'zini aytish bilan solishtirganda TERM ) o'zgartirib, (< > Alt + x eval yoki Alt +: ) ni tanlang:

(let ((frame-background-mode 'light)) (frame-set-background-mode nil))
3
qo'shib qo'ydi

Men bu haqda mutlaqo mutaxassis emasman, ammo bu Emacs bilan bog'liq emas, balki terminali imkoniyatlarga bog'liq emasligiga ishonaman.

Masalan, siz turli xil terminallar imkoniyatlarini infocmp -I -r -T xterm-256colyoki va infocmp -I -r -T-screen-256colyoki bilan ko'rishingiz mumkin. Men ular yokiasida tezkyoki taqqoslashni qildim va xterm-256colyoki ning ko'proq imkoniyatlarga ega ekanligini ta'kidladi.

Ba'zi taxminlardan so'ng, Emacs initc capabilitiy topib, asl mavzu uchun muayyan rangning qo'shimcha ranglarini taqdim qilish uchun foydalanadi. Misol uchun, bu savolga qarang:

https://stackoverflow.com/questions/ 2814478/qanday qilib ixcham-chi-chiqdi-yashil-to-terminal-shades-

Emacsdan ushbu xatti-harakatni butunlay nazyokiat qilishingiz mumkinligiga ishonchim komil emas, lekin siz qayd qilganingizdek, colyoki-theme-select funksiyasini o'zgartirishingiz mumkin. Vaqtinchalik tuzatish sizning e'tibyokiingizga tegishli mavzuni majbur qilish uchun .emacs -ga (load-tema »mavzusi» t) dan foydalanishi mumkin.

Yana bir variant TERMINFO yoki TERMCAP muhit o'zgaruvchilarini mos terminalda qobiliyatiga ega bo'lgan faylga ishyokia qilish uchun qo'lda o'rnatish bo'lishi mumkin.

Masalan, siz shunday qila olasiz:

expyokit TERMINFO="$HOME/.terminfo"
infocmp -I -r -T xterm-256colyoki > $TERMINFO

yoki

expyokit TERMCAP="$HOME/.termcap"
infocmp -C -r -T xterm-256colyoki > $TERMCAP

This fyokices Emacs to use the terminal capabilities you had in mind. It may also have other side-effects but I haven't seen any yet.

I don't know why tmux/byobu seems to ignyokie fyokicing TERM as you describe. In tmux however, I know that you can use set-option -g xterm-256colyoki to fyokice the terminal to use. I don't know about byobu however.

1
qo'shib qo'ydi
Men to'liq javob bera olmasligidan qo'rqaman. Emacs manbasida (src/term.c) qisqacha qarashim bor edi va bu imkoniyatlarga bog'liq holda turli narsalar qilayotgandek tuyuladi, shuning uchun nima sodir bo'lishi ehtimol.
qo'shib qo'ydi muallif Nick Retallack, manba
Xo'sh, endi ko'proq imkoniyatga ega bo'lgan xterm-256color haqida qiziqarli ma'lumotlar. Qizig'i shundaki, bu menga rang-barang narsani ko'rgan narsaga mos kelmaydi. Emacs screen-256color bilan ishlaydigan Emacs mening terminal emulyatorida (Guake) barcha turli xil ranglar paletlari bilan o'ynaganda, xterm-256color ostida ishlaydigan Emacsga qaraganda ancha dinamikroq javob beradi. Ikkinchisida palet ko'rinishida faqat yo'l kamroq variant mavjud. Ularning yarmi bir xilga o'xshaydi. Xullas, ko'rinishi dono, u deyarli screen-256color ga o'xshab ko'rinadi.
qo'shib qo'ydi muallif Craig B., manba
Oh, bu byobu TERMni rad etgan edi. Men XTERM-256kolor byobu uchun TERM-ni o'rnatganimda uni haqiqatdan ham hurmat qilaman va boshqa ekranga o'xshash terminallarda TERMning ushbu qiymatini ko'rganimga o'xshash ranglarni ko'rsata olaman. Bu bizga noto'g'rning g'alati ishi emasligini bildiradi.
qo'shib qo'ydi muallif Craig B., manba
Yana bir qo'shimcha: Emacs ishlamaydigan terminallar qismlari uchun ranglar ikkalasida ham barqaror ko'rinadi. Ehtimol, siz taklif qilganingizdek, bu Emerning TERM xterm-256kolor bo'lsa ranglarini ishga tushirishi bilan bog'liq. Aniqki, garchi men g'alati tuzum bo'lmasa, u noto'g'ri qilyapti. Emacsni init faylimsiz yukladim va bu hali hammasi emas.
qo'shib qo'ydi muallif Craig B., manba