Chữ in nghiêng trong Emacs trên thiết bị đầu cuối văn bản (rxvt-unicode)


15

Tôi đang sử dụng Emacs chạy trong urxvt và tôi không thể in nghiêng để làm việc trong Emacs mặc dù thiết bị đầu cuối hỗ trợ nó.

Đây là thiết lập hiện tại của tôi:

  • Tôi chưa thiết lập $TERM, vì vậy nó là mặc định rxvt-unicode-256color.
  • My ~/.Xdefaultsđịnh nghĩa URxvt.font: xft:Inconsolata:size=15là phông chữ đầu cuối.
  • Chạy echo '\e[3mitalics\e[m'trong vỏ thực sự mang lại italics, vì vậy, in nghiêng trong thiết bị đầu cuối làm việc, về cơ bản.

Khi tùy biến “Nghiêng” khuôn mặt, nó không thực hiện bất kỳ khác biệt cho dù tôi lựa chọn italic, oblique, normal, hay romanlàm giá trị cho các Slantthuộc tính, cũng không nó nếu tôi không thiết lập các Slantthuộc tính ở tất cả. Tôi cũng đã thử kết hợp với việc xác định rõ ràng URxvt.italicFonttrong tôi ~/.Xdefaults, nhưng không có kết quả.

Bold hoạt động tốt, in nghiêng không hoạt động. Có ý kiến ​​gì không?


Tôi đã không nhận ra rằng từ xa có thể in nghiêng trong một thiết bị đầu cuối. Cảm ơn vì điều đó.
wfaulk

Câu trả lời:


10

Tóm lại: bạn không thể với phiên bản hiện tại của Emacs (được kiểm tra với 23.2), nhưng xem bên dưới để biết cách giải quyết khác.

Câu chuyện dài hơn: hỗ trợ cho chữ nghiêng được mã hóa trong cơ sở dữ liệu terminfo dưới dạng các khả năng ( sitmnhập chữ nghiêng) và ritm(thoát chữ nghiêng) (còn được gọi ZHZRđể tương thích thuật ngữ); bạn có thể kiểm tra xem thiết bị đầu cuối của bạn có hỗ trợ chúng thông qua:

infocmp $TERM | egrep '(sitm|ritm)'

Nếu những thứ đó không có, thì rxvt-unicode-256colormô tả thiết bị đầu cuối của bạn không cung cấp thông tin cho thư viện của ncurses về khả năng in nghiêng của thiết bị đầu cuối và bạn có thể muốn thêm chúng, nếu không thì không ứng dụng TTY nào có thể sử dụng chữ nghiêng.

Tuy nhiên, chức năng turn_on_face(trong các nguồn Emacs, tệp src/term.cở dòng 1919--2012), quản lý màn hình đầu cuối, không cung cấp hỗ trợ cho chữ nghiêng: nó kiểm tra các thuộc tính đậm / mờ / nhấp nháy / gạch chân của khuôn mặt. Trên thực tế, không có thuộc tính "in nghiêng" được mã hóa trong struct face.

Thật vậy, Emacs của tôi (phiên bản 23.1 trên Ubuntu 11.04 natty) hiển thị các khuôn mặt được in nghiêng (hiển thị chính xác trong X11) như được gạch chân trong TTY. (Điều đó có nghĩa là, nếu bạn không quan tâm đến việc gạch chân, bạn chỉ có thể thay đổi mô tả terminfo của thiết bị đầu cuối của mình để sử dụng các chuỗi thoát in nghiêng nhập / thoát thay vì các dấu gạch dưới nhập / thoát và in nghiêng.)


Câu trả lời này có vẻ tốt, nhưng ngay bây giờ tôi không thể kiểm tra nó vì cài đặt linux duy nhất tôi có là khách trong máy chủ win7. Kết quả là tôi gặp khó khăn khi thử nghiệm điều này. Cụ thể tôi dường như không thể chèn mã thoát ascii. Nếu ai đó khác có thể kiểm tra để xác nhận hoặc giải thích những gì tôi có thể làm sai với các chuỗi thoát, tôi sẽ rất vui khi được thưởng tiền thưởng.
vschum

@vschum Nếu bạn đang cố gắng thay đổi cơ sở dữ liệu terminfo của mình, câu trả lời này sẽ có ích. Chúng tôi không thể giúp đỡ với những khó khăn của bạn trừ khi bạn giải thích chúng; bạn có thể hỏi một câu hỏi về họ.
Gilles 'SO- ngừng trở thành ác quỷ'

@Gilles Trên thực tế, nó có nhiều hơn để làm với câu trả lời này . Tôi không thể tìm ra cách chèn các chuỗi để kiểm tra xem chữ nghiêng có hoạt động hay không. Khi tôi gõ ESC [3 m, không có gì hiển thị trong thiết bị đầu cuối.
vschum

2
@vschum Nhấn ESCkhông chèn ký tự thoát. Bạn có thể nhấn Ctrl+V ESCđể chèn một, nhưng bạn hiếm khi cần. Ví dụ, ký tự thoát được thể hiện bằng \Enguồn terminfo; trong một thiết bị đầu cuối (với bash / ksh / zsh), hãy thử echo $'\e[3mhello\e[0m'.
Gilles 'SO- ngừng trở nên xấu xa'

4

Tôi đang thêm câu trả lời này vì những người khác đã hết hạn. Emacs 24.5 hiển thị chính xác các mặt in nghiêng trong các thiết bị đầu cuối.

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

Đây là emacs 24.5 đang chạy trong một thiết bị đầu cuối ( emacs -nw). Thiết bị đầu cuối là uxvrtvà thiết lập trong tôi .Xdefaultslà:

URxvt*termName: rxvt-unicode-256color
URxvt.font: xft:DejaVu Sans Mono:size=9

3

Về các emacs không thể sử dụng chữ nghiêng trong các trình giả lập thiết bị đầu cuối cung cấp tính tự do này: Đây là lỗi emacs # 9652 đã được Chong Yidong sửa vào ngày 10 tháng 6 năm 2012.

Bản sửa lỗi không có trong bất kỳ phiên bản phát hành nào của emacs, nhưng ví dụ trong gói emacs-snapshot từ emacs.naquadah.org .


Thông tin này có lẽ đã hết hạn ....
Samuel Edwin Ward
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.