xterm không hiển thị unicode


8

tôi chưa bao giờ có thể làm cho thiết bị đầu cuối của tôi hiển thị các ký hiệu unicode. ví dụ, trước khi tôi có hệ điều hành hiện tại, tôi đã ánh xạ ctrl + a sang tiếng Hy Lạp mu trong vim và nó hoạt động trên các máy tính khác, nhưng không phải trên xterm hiện tại của tôi. đây là phần có liên quan của tôi .vimrc:

set encoding=utf-8
"map control-a to mu
imap <C-a> <C-k>m*

Ngoài ra, tôi cần xuất các phương trình sympy trong python và nó hoạt động trên các máy tính khác, nhưng không phải trên xterm hiện tại của tôi. thay vì điều này:

$ python
Python 2.7.3 (default, Mar 14 2014, 11:57:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sympy
>>> x = sympy.symbols('x')
>>> sympy.init_printing()
>>> (sympy.sqrt(x**3/(x+1)), 1)
⎛     _______   ⎞
⎜    ╱    3     ⎟
⎜   ╱    x      ⎟
⎜  ╱   ───── , 1⎟
⎝╲╱    x + 1    ⎠

tôi hiểu rồi

>>> (sympy.sqrt(x**3/(x+1)), 1)
n      -------   n
n     n    3     n
n    n    x      n
n   n   ───── , 1n
nnnn    x + 1    n

thực ra nó dường như chỉ sử dụng nký tự bất cứ khi nào nó không thể hiển thị một ký tự unicode.

Tôi đang chạy xterm từ một ~/.xinitrctệp và đặt một số phông chữ và màu cho thiết bị đầu cuối ~/.Xresources. đây là tất cả các thông tin liên quan tôi có thể nghĩ ra:

$ uname -a
Linux mypcname 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
$ xterm -version
XTerm(278)
$ cat ~/.xinitrc 
#!/bin/bash

#update the xterm colors, font size, etc
[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources

# run the window manager in the background first
metacity &

# get the window manager process id
wm_pid=$!

# wait a little while for the window manager to load (extend this if the xterm is not being properly maximised)
sleep 2

# run the xterm in fullscreen
#xterm +u8 -js -fullscreen &
xterm -en en_AU.UTF-8 -js -fullscreen &

# do not let the window manager become a zombie
wait $wm_pid

# this would run xterm first, then the window manager. doesn't maximise properly the first time startx is run
#xterm -fullscreen &
#exec mutter

$ cat ~/.Xresources 
! see man xterm under the resources heading for explanations
! run `xrdb -merge ~/.Xresources` after altering this file
! run `xrdb -query -all` to see the current settings

xterm.vt100.faceName: Terminus
xterm.vt100.faceSize: 14
! do not display bold fonts in bold
xterm.vt100.AllowBoldFonts: false
! display bold fonts in a different color to make them stand out
xterm.vt100.colorBDMode: true
! use green as the bold color (same as in ~/.bashrc)
xterm.vt100.colorBD: #98E34D

! cols x lines ... update with values from $(echo $COLUMNS) and $(echo $LINES)
xterm.vt100.geometry: 126x52

! dark green foreground (same as in ~/.bashrc)
*foreground: #4E9A06
! black background
*background: #000000

! scroll quickly
xterm*fastScroll: true

! enable utf-8 encoding
xterm*locale: true
xterm*utf8: 1

! flash the current line instead of making the bell sound
*visualBell: true
*visualBellLine: true

! black
*color0: #2E3436
! darkred
*color1: #CC0000
! dark green
*color2: #4E9A06
! brown
*color3: #C4A000
! darkblue
*color4: #3465A4
! darkmagenta
*color5: #75507B
! darkcyan
*color6: #06989A
! lightgrey
*color7: #D3D7CF
! darkgrey
*color8: #555753
! red
*color9: #EF2929
! green
*colorA: #8AE234
! yellow
*colorB: #FCE94F
! blue
*colorC: #729FCF
! magenta
*colorD: #AD7FA8
! cyan
*colorE: #34E2E2
! white
*colorF: #EEEEEC

$ tail -10 .bashrc
PATH=/usr/local/bin:/usr/bin:/bin:/sbin

export LC_ALL=en_AU.UTF-8
export LANG=en_AU.UTF-8
export LANGUAGE=en_AU.UTF-8

# final logon actions:

# go straight to x on login. only do this for tty1 so that we can still use the other tty consoles without starting x. also only do this when there is not already a display, otherwise the xterm will try and do this after x starts aswell
[[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]] && startx

$ locale
LANG=en_AU.UTF-8
LANGUAGE=en_AU.UTF-8
LC_CTYPE="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_TIME="en_AU.UTF-8"
LC_COLLATE="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_PAPER="en_AU.UTF-8"
LC_NAME="en_AU.UTF-8"
LC_ADDRESS="en_AU.UTF-8"
LC_TELEPHONE="en_AU.UTF-8"
LC_MEASUREMENT="en_AU.UTF-8"
LC_IDENTIFICATION="en_AU.UTF-8"
LC_ALL=en_AU.UTF-8

$ printenv XTERM_LOCALE
en_AU.UTF-8

$ xrdb -query -all
*background:    #000000
*color0:    #2E3436
*color1:    #CC0000
*color2:    #4E9A06
*color3:    #C4A000
*color4:    #3465A4
*color5:    #75507B
*color6:    #06989A
*color7:    #D3D7CF
*color8:    #555753
*color9:    #EF2929
*colorA:    #8AE234
*colorB:    #FCE94F
*colorC:    #729FCF
*colorD:    #AD7FA8
*colorE:    #34E2E2
*colorF:    #EEEEEC
*foreground:    #4E9A06
*visualBell:    true
*visualBellLine:    true
xterm*fastScroll:   true
xterm*locale:   true
xterm*utf8: 1
xterm.vt100.AllowBoldFonts: false
xterm.vt100.colorBD:    #98E34D
xterm.vt100.colorBDMode:    true
xterm.vt100.faceName:   Terminus
xterm.vt100.faceSize:   14
xterm.vt100.geometry:   126x52

Làm thế nào tôi có thể làm cho utf-8 hoạt động để hiển thị các biểu tượng Hy Lạp trong vim và phương trình trong sympy?


yêu cầu thêm thông tin

$ echo $TERM
xterm
$ appres XTerm
*form.Thickness:    0
*tekMenu*tekreset*Label:    RESET
*tekMenu*tektext2*Label:    #2 Size Characters
*tekMenu*tekhide*Label: Hide Tek Window
*tekMenu*tekcopy*Label: COPY
*tekMenu*tektext3*Label:    #3 Size Characters
*tekMenu*vtshow*Label:  Show VT Window
*tekMenu*tektextsmall*Label:    Small Characters
*tekMenu*vtmode*Label:  Switch to VT Mode
*tekMenu*tektextlarge*Label:    Large Characters
*tekMenu*tekpage*Label: PAGE
*tekMenu.Label: Tek Options
*mainMenu*redraw*Label: Redraw Window
*mainMenu*sunKeyboard*Label:    VT220 Keyboard
*mainMenu*terminate*Label:  Send TERM Signal
*mainMenu*backarrow key*Label:  Backarrow Key (BS/DEL)
*mainMenu*logging*Label:    Log to File
*mainMenu*hpFunctionKeys*Label: HP Function-Keys
*mainMenu*kill*Label:   Send KILL Signal
*mainMenu*num-lock*Label:   Alt/NumLock Modifiers
*mainMenu*print-immediate*Label:    Print-All Immediately
*mainMenu*scoFunctionKeys*Label:    SCO Function-Keys
*mainMenu*quit*Label:   Quit
*mainMenu*alt-esc*Label:    Alt Sends Escape
*mainMenu*print-on-error*Label: Print-All on Error
*mainMenu*tcapFunctionKeys*Label:   Termcap Function-Keys
*mainMenu*meta-esc*Label:   Meta Sends Escape
*mainMenu*toolbar*Label:    Toolbar
*mainMenu*print*Label:  Print Window
*mainMenu*suspend*Label:    Send STOP Signal
*mainMenu*delete-is-del*Label:  Delete is DEL
*mainMenu*print-redir*Label:    Redirect to Printer
*mainMenu*fullscreen*Label: Full Screen
*mainMenu*continue*Label:   Send CONT Signal
*mainMenu*oldFunctionKeys*Label:    Old Function-Keys
*mainMenu*securekbd*Label:  Secure Keyboard
*mainMenu*interrupt*Label:  Send INT Signal
*mainMenu*8-bit control*Label:  8-Bit Controls
*mainMenu*allowsends*Label: Allow SendEvents
*mainMenu*sunFunctionKeys*Label:    Sun Function-Keys
*mainMenu*hangup*Label: Send HUP Signal
*mainMenu.Label:    Main Options
*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.utf8Fonts.font:  -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.font4:   7x13
*VT100.font2:   5x7
*VT100.font6:   10x20
*VT100.font5:   9x15
*VT100.font3:   6x10
*VT100.font1:   nil2
*vtMenu*selectToClipboard*Label:    Select to Clipboard
*vtMenu*reversewrap*Label:  Enable Reverse Wraparound
*vtMenu*softreset*Label:    Do Soft Reset
*vtMenu*cursesemul*Label:   Enable Curses Emulation
*vtMenu*autolinefeed*Label: Enable Auto Linefeed
*vtMenu*hardreset*Label:    Do Full Reset
*vtMenu*visualbell*Label:   Enable Visual Bell
*vtMenu*appcursor*Label:    Enable Application Cursor Keys
*vtMenu*clearsavedlines*Label:  Reset and Clear Saved Lines
*vtMenu*bellIsUrgent*Label: Enable Bell Urgency
*vtMenu*appkeypad*Label:    Enable Application Keypad
*vtMenu*tekshow*Label:  Show Tek Window
*vtMenu*poponbell*Label:    Enable Pop on Bell
*vtMenu*scrollbar*Label:    Enable Scrollbar
*vtMenu*scrollkey*Label:    Scroll to Bottom on Key Press
*vtMenu*tekmode*Label:  Switch to Tek Mode
*vtMenu*scrollttyoutput*Label:  Scroll to Bottom on Tty Output
*vtMenu*jumpscroll*Label:   Enable Jump Scroll
*vtMenu*cursorblink*Label:  Enable Blinking Cursor
*vtMenu*vthide*Label:   Hide VT Window
*vtMenu*allow132*Label: Allow 80/132 Column Switching
*vtMenu*reversevideo*Label: Enable Reverse Video
*vtMenu*titeInhibit*Label:  Enable Alternate Screen Switching
*vtMenu*altscreen*Label:    Show Alternate Screen
*vtMenu*keepSelection*Label:    Keep Selection
*vtMenu*autowrap*Label: Enable Auto Wraparound
*vtMenu*activeicon*Label:   Enable Active Icon
*vtMenu.Label:  VT Options
*SimpleMenu*menuLabel.font: -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-*
*SimpleMenu*menuLabel.vertSpace:    100
*SimpleMenu*Sme.height: 16
*SimpleMenu*BackingStore:   NotUseful
*SimpleMenu*HorizontalMargins:  16
*SimpleMenu*Cursor: left_ptr
*SimpleMenu*borderWidth:    2
*menubar.borderWidth:   0
*tek4014*fontLarge: 9x15
*tek4014*font2: 8x13
*tek4014*font3: 6x13
*tek4014*fontSmall: 6x10
*MenuButton*borderWidth:    0
*fontMenu*render-font*Label:    TrueType Fonts
*fontMenu*fontdefault*Label:    Default
*fontMenu*font6*Label:  Huge
*fontMenu*allow-window-ops*Label:   Allow Window Ops
*fontMenu*utf8-mode*Label:  UTF-8 Encoding
*fontMenu*font1*Label:  Unreadable
*fontMenu*fontescape*Label: Escape Sequence
*fontMenu*utf8-fonts*Label: UTF-8 Fonts
*fontMenu*fontsel*Label:    Selection
*fontMenu*allow-bold-fonts*Label:   Bold Fonts
*fontMenu*utf8-title*Label: UTF-8 Titles
*fontMenu*font-linedrawing*Label:   Line-Drawing Characters
*fontMenu*font2*Label:  Tiny
*fontMenu*allow-color-ops*Label:    Allow Color Ops
*fontMenu*font-doublesize*Label:    Doublesized Characters
*fontMenu*font3*Label:  Small
*fontMenu*allow-font-ops*Label: Allow Font Ops
*fontMenu*font-loadable*Label:  VT220 Soft Fonts
*fontMenu*font4*Label:  Medium
*fontMenu*allow-tcap-ops*Label: Allow Termcap Ops
*fontMenu*font-packed*Label:    Packed Font
*fontMenu*font5*Label:  Large
*fontMenu*allow-title-ops*Label:    Allow Title Ops
*fontMenu.Label:    VT Fonts
*colorD:    #AD7FA8
*color5:    #75507B
*backarrowKeyIsErase:   true
*colorE:    #34E2E2
*color6:    #06989A
*ptyInitialErase:   true
*colorF:    #EEEEEC
*background:    #000000
*color7:    #D3D7CF
*saveLines: 1024
*color8:    #555753
*color0:    #2E3436
*foreground:    #4E9A06
*IconFont:  nil2
*color9:    #EF2929
*color1:    #CC0000
*visualBell:    true
*colorA:    #8AE234
*color2:    #4E9A06
*visualBellLine:    true
*colorB:    #FCE94F
*color3:    #C4A000
*colorC:    #729FCF
*color4:    #3465A4
$ xterm -u8 -fa "DejaVu Sans Mono"
# the following is typed in the resulting terminal:
$ echo -e "\xE2\x98\xA0"
n
# however when i copy the result from `echo -e "\xE2\x98\xA0"`
# into my browser, i get this: ☠ (a skull) but it does not show
# up as a skull in my xterm

$ lsof -p $PPID | grep fonts
xterm   5990 me  mem    REG              254,1     4971 13501810 /usr/share/fonts/X11/misc/ter-u18b_iso-8859-1.pcf.gz
xterm   5990 me  mem    REG              254,1     4897 13505403 /usr/share/fonts/X11/misc/ter-u18n_iso-8859-1.pcf.gz

tôi cũng đã chạy $ fc-listnhưng đầu ra quá lớn để dán vào câu hỏi này. vì vậy tôi đã đặt nó ở đây

những gì nó hiển thị trong trình duyệt của tôi:

/usr/share/fonts/truetype/freefont/FreeSansBold.ttf: FreeSans:style=Bold,получерен,negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,gros,Полужирный,Fet,Kalın,huruf tebal,жирний,Krepko,treknraksts,pusjuodis,đậm,Lodia,धृष्ट

những gì tôi thấy trong thiết bị đầu cuối của tôi:

/usr/share/fonts/truetype/freefont/FreeSansBold.ttf: FreeSans:style=Bold,nnnnnnnnn,negreta,tunné,fed,Fett,nnnnnn,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,gros,nnnnnnnnnn,Fet,Kalın,huruf tebal,nnnnnn,Krepko,treknraksts,pusjuodis,nậm,Lodia,nnn

thú vị thay, một số nhân vật "đặc biệt" xuất hiện trong thiết bị đầu cuối của tôi, nhưng hầu hết đều được thay thế bởi n. bạn có thể thấy trong đầu ra trước đó không ai получеренcó thể hiển thị, nhưng ký tự cuối cùng tučnécó thể được hiển thị (trong khi ở giữa čkhông thể - nó được thay thế bằng n)


theo nhận xét của @ apaul, có vẻ như xterm không tải đúng phông chữ. hãy thử thiết lập một lớp giả để nó không tải tài nguyên xterm:

$ xterm -class Foo -name foo -u8 -fa "DejaVu Sans Mono:style=Book"
$ # the following commands are all executed in the resulting terminal:
$ echo -e "\xE2\x98\xA0"
☠
$ # the above skull actually shows up now. and so does the unicode
$ # output from sympy and also vi can display greek symbols now :)

tất cả những gì còn lại là tìm hiểu tại sao xterm không thể thiết lập phông chữ bằng cách sử dụng ~/.Xresourecesvà để nó hoạt động. Có vẻ như một cái gì đó phải được ghi đè cài đặt phông chữ?

Trên thực tế, tôi chỉ nghĩ sẽ thử lệnh trên với phông chữ cuối, và có vẻ như đây là vấn đề:

$ xterm -class Foo -name foo -u8 -fa "Terminus"
$ # the following commands are all executed in the resulting terminal:
$ echo -e "\xE2\x98\xA0"
n

có lẽ ga cuối không được cài đặt đúng cách? hoặc đang được ánh xạ tới một cái gì đó khác. Làm thế nào tôi có thể tìm ra điều đó?


2
xterm không hỗ trợ đầy đủ UTF-8 (AFAIK), hãy thử chạy uxterm, nhưng tôi khuyên bạn nên thử một thiết bị đầu cuối khác như urxvt, mối hoặc st
zer0rest

rxvt-unicode hoạt động :)
mulllhausen

1
@mulllhausen Tôi xác nhận nó nên hoạt động. Tôi sử dụng xterm trong nhiều năm và có thể hiển thị khá nhiều thứ tùy thuộc vào phông chữ. Terminus có thể hiển thị ví dụ của bạn. Tôi đang sử dụng -fa "DejaVu Sans Mono:size=11:antialias=true"Tuy nhiên, tôi không hiểu các tùy chọn -jsvà của bạn -fullscreen. Phiên bản xterm của tôi không hiểu chúng. xterm -versionĐầu ra của tôi X.Org 6.8.99.903(253).
apaul

3
@mulllhausen Ok, vì copy'n'paste hoạt động, điều đó có nghĩa là xterm có thể xử lý unicode. Nó có thể là một vấn đề phông chữ. Bạn có chắc chắn xterm đang sử dụng "DejaVu Sans Mono" không? Bạn có thể kiểm tra nó nếu bạn chạy trong xterm của bạn lsof -p $PPID | grep fontsvà kiểm tra danh sách các phông chữ mà xterm có thể nhìn thấy fc-list.
apaul

1
@mulllhausen Thx. Như bạn có thể thấy, vì một số lý do, xterm không tải đúng phông chữ. Nó tải một iso-8859-1 (chứa "é", đó là lý do tại sao bạn có thể nhìn thấy nó). Thành thật mà nói, tôi không biết tại sao. Bạn có chạy được xterm -class Foo -name foo -u8 -fa "DejaVu Sans Mono:style=Book"không (ở đây chúng tôi đặt một lớp giả và tên để nó không tải XTerm*tài nguyên.)
apaul

Câu trả lời:


7

Viết vào năm 2016, nói về bản vá xterm # 278 (phát hành năm 2012):

xterm sử dụng một phông chữ duy nhất, thay vì các bộ phông chữ được hỗ trợ bởi một số thiết bị đầu cuối khác. Các nhân vật giả đồ họa trong này (dán từ xterm):

⎛     ⎽⎽⎽⎽⎽⎽⎽   ⎞
⎜    ╱    3     ⎟
⎜   ╱    x      ⎟
⎜  ╱   ───── , 1⎟
⎝╲╱    x + 1    ⎠

đang không được cung cấp bởi font TypeType quy định ở đây:

xterm.vt100.faceName: Terminus
xterm.vt100.faceSize: 14

Các thiết bị đầu cuối khác, cho rằng phông chữ sẽ cung cấp các ký tự từ một phông chữ khác .

Cách để làm việc xterm là

  • chỉ định một phông chữ bao gồm tất cả các ký tự cần thiết và
  • bảo nó sử dụng mã hóa UTF-8.

Cái sau được giải quyết cho hầu hết người dùng bởi cài đặt mặc định của localetài nguyên: xterm sẽ (thường) sử dụng mã hóa UTF-8. Nhưng hành vi mặc định là tương thích VT100, do đó sử dụng phông chữ tương thích ISO-8859-1.

  • Terminus sử dụng nhiều glyphs hơn thế, nhưng lại thua xa tất cả các đồ họa giả trong Unicode.
  • Những cái hiển thị nlà U + 239B, U + 239C, U + 239D, U + 239E, U + 23A0.
  • Phiên bản Terminus trong Debian 7 (và thử nghiệm Debian) có ít hơn 256 glyphs và tình cờ hiển thị nnhư được mô tả trong câu hỏi.

Điều đó xảy ra bởi vì (mặc dù xterm biết rằng glyphs bị thiếu), nó đã in chuỗi bằng phông chữ, giả sử rằng (giống như hầu hết các phông chữ khác) các mục bị thiếu sẽ được hiển thị dưới dạng khoảng trắng . Trong trường hợp này, thư viện freetype dường như ánh xạ byte thứ tự thấp của các giá trị Unicode vào phạm vi mà Terminus hỗ trợ. Điều đó xảy ra trong một phạm vi mà phông chữ hiển thị là n(đối với "không có ký tự như vậy"):

nhập mô tả hình ảnh ở đây

Cách giải quyết nhanh sử dụng uxtermtập lệnh, chọn một phông chữ khác và đảm bảo rằng mã hóa UTF-8 được sử dụng.

Đọc thêm:

Terminus Font là một phông chữ bitmap có chiều rộng cố định, sạch sẽ, được thiết kế để hoạt động lâu dài (8 giờ trở lên mỗi ngày) với máy tính. Phiên bản 4.40 chứa 1241 ký tự, bao gồm khoảng 120 bộ ngôn ngữ và hỗ trợ ISO8859-1 / 2/5/7/9/13/15/16, Paratype-PT154 / PT254, KOI8-R / U / E / F, Esperanto, nhiều Các trang mã IBM, Windows và Macintosh, cũng như các ký tự giả thư VGA, vt100 và xterm của IBM.

Ở trên đã nói về bản vá xterm # 278 đã được bốn năm vào năm 2016. Việc phát triển xterm đang diễn ra và bắt đầu với bản vá # 338 (cuối năm 2018) có hỗ trợ cho các phông chữ TrueType. Dưới đây là ảnh chụp màn hình bằng cách sử dụng tài nguyên của OP - cài đặt từ bản vá xterm # 342 (# 343 có thể sẽ sớm ra mắt "sớm"):

ảnh chụp màn hình từ xterm # 342

Sử dụng -report-fontstùy chọn, tôi thấy rằng nó đã tải các tệp phông chữ này (coi in đậm / in nghiêng là "giống" như bình thường và sử dụng phông chữ thứ hai cho các ký tự đặc biệt):

    file=/usr/share/fonts/X11/misc/ter-u18n\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/X11/misc/ter-u18b\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/X11/misc/ter-u18n\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf

Số lượng phông chữ thực tế phụ thuộc vào những gì bạn muốn làm. Khi kiểm tra phạm vi giá trị Unicode hiện có, nó có thể sử dụng một vài chục phông chữ.


Bạn đã có kế hoạch để thêm hỗ trợ dự phòng cho các phông chữ khác trên các ký tự bị thiếu trong xterm chưa?
Stéphane Chazelas

Tôi ngắn về vòng tròn :-( Bộ phông chữ sẽ rất tuyệt, nhưng mất vài tháng ...
Thomas Dickey

Một vài tháng vẫn có vẻ là một ước tính tốt (tôi khoảng 2/3 thông qua đó).
Thomas Dickey

5

Giải pháp từ các ý kiến:

  • uxterm
  • CtrlRightClick (menu ngữ cảnh) và mã hóa UTF-8.
  • xterm -u8
  • Tài nguyên X: sử dụng một đặc tả phông chữ với bộ ký tự và các trường sinh thái được đặt thành-iso10646-1

Ví dụ: đối với xterm(lớp X Xterm) và phông chữ Terminus, bạn có thể thêm vào ~ / .Xresource

XTerm*font: -*-terminus-medium-r-normal--18-*-*-*-*-*-iso10646-1

Để tìm các phông chữ và thông số phông chữ của chúng được cài đặt trên hệ thống của bạn, hãy xem /usr/share/fonts/*/*.dircác tệp. Sau khi chỉnh sửa ~/.Xresources, tải chúng với xrdb -merge ~/.Xresources.


2

Thật không may, tôi cũng không thể có được hỗ trợ unicode được cấu hình đúng cách xterm. Như một giải pháp thay thế, tôi đã kết thúc việc cài đặt rxvt, có sẵn từ rpmforge trên các bản phát hành EL. Ngoài ra còn có một phiên bản unicode-256color của chương trình, hoạt động rất tốt cho tôi. Đây là mô tả:

Name        : rxvt
Arch        : x86_64
Epoch       : 18
Version     : 2.7.10
Release     : 2.el7.rf
Size        : 326 k
Repo        : rpmforge
Summary     : Color VT102 terminal emulator for the X Window System
URL         : http://www.rxvt.org/
License     : GPL
Description : Rxvt is a color VT102 terminal emulator for the X Window System. Rxvt
            : is intended to be an xterm replacement for users who don't need the
            : more esoteric features of xterm, like Tektronix 4014 emulation,
            : session logging and toolkit style configurability. Since it does not
            : support those features, rxvt uses much less swap space than xterm
            : uses. This is a significant advantage on a machine which is serving a
            : large number of X sessions.

ArchWiki có thông tin hữu ích như mọi khi về cấu hình và trường hợp sử dụng.


1
bây giờ tôi rxvt-unicodecũng sử dụng
mulllhausen

errgh ... vậy, câu trả lời của tôi là một giải pháp khả thi / cách giải quyết?
ILMostro_7

1
tôi đoán vậy. Tôi vẫn muốn biết liệu có cách nào để sửa xterm hay không
mulllhausen

0

Điều gì về việc sử dụng phông chữ TrueType như dưới đây? Tôi không thể có -fn *-*-...tùy chọn tiêu chuẩn làm việc với xterm, nhưng điều này hoạt động hoàn hảo.

xterm -fa 'Inconsolata' -fs 12

Phông chữ Inconsolata có thể được tải xuống ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.