Có đúng không khi đặt biến $ TERM theo cách thủ công?


10

Tôi đặt $TERMbiến thêm dòng XTerm*termName: xterm-256colorvào .Xresourcestập tin của tôi . Khi tôi làm điều đó tôi không biết chính xác điều đó có nghĩa là gì (tôi đã làm theo hướng dẫn trực tuyến để thay đổi giao diện xterm), nhưng bây giờ tôi đã đọc thêm một chút và lo lắng nếu những gì tôi làm là sai. Cụ thể tôi muốn biết có một cái gì đó xấu trong việc thiết lập $TERMbiến thủ công và trong trường hợp đó, làm thế nào tôi có thể hoàn nguyên lỗi của mình.

Trong trường hợp bạn cần, tôi đang chạy Fedora 20 với xterm.


Đây là một câu hỏi lập trình chung. Phụ thuộc vào những gì bạn sẽ làm. Nếu bạn có thể được cấp một môi trường máy tính để bàn và không có kết nối từ xa, có thể sẽ ổn. Nếu không, tất cả các trường hợp có thể phải được xử lý với kiểm tra lỗi.
41754

@uprego Bạn có thể giải thích rõ hơn về "sự bỏ qua các kết nối từ xa" không?
Santaru72

Bạn có thể đang sử dụng phiên tmux vĩnh viễn với tùy chọn 256 màu, nhưng nếu bạn đính kèm nó từ phiên ssh, các tình huống có thể sẽ mở rộng quá nhiều để liệt kê. Mỗi ứng dụng sẽ có hoặc không có hiệu ứng mong muốn tùy thuộc vào khả năng của mỗi lập trình viên. Như @goldilocks chỉ ra trong câu trả lời của anh ta không nên nguy hiểm, nhưng có sự khác biệt giữa "không nên" và "không thể".
41754

@uprego: Thực tế, tôi nên nói "không thể", trừ khi bạn tính đầu ra bất hợp pháp là "nguy hiểm".
goldilocks

Câu trả lời:


7

Đối với hầu hết các phần, bạn không nên thiết lập TERMthủ công. Biến luôn được đặt tự động và chỉ có một tập hợp hẹp các trường hợp trong đó giá trị mặc định không chính xác.

Giá trị của các TERMnhu cầu được tham chiếu trong cơ sở dữ liệu terminfo của hệ thống (hoặc cho một vài hệ thống lỗi thời, trong cơ sở dữ liệu termcap ). Terminfo và Termcap ánh xạ các loại thiết bị đầu cuối để mô tả các khả năng của thiết bị đầu cuối mà các ứng dụng sử dụng. Giá trị của TERMlà loại thiết bị đầu cuối.

Lý do chính tại sao đôi khi bạn có thể cần phải thay đổi TERMlà nếu bạn đăng nhập từ xa, khi máy cục bộ và máy từ xa có cơ sở dữ liệu đầu cuối khác nhau.

Một lý do khác, có liên quan đến lý do trước đó, là đôi khi có nhiều mục tương tự cho một thiết bị đầu cuối, với các khả năng hơi khác nhau. Điều này có xu hướng xảy ra chủ yếu khi một thiết bị đầu cuối mới xuất hiện tương thích với thiết bị đầu cuối hiện có, nhưng có nhiều tính năng hơn. Sau đó, bạn có thể lựa chọn giữa việc sử dụng tên truyền thống, điều mà tất cả các máy đều hiểu, nhưng chỉ quảng cáo các tính năng truyền thống hoặc tên mới hơn, quảng cáo tất cả các tính năng mới nhưng một số máy sẽ không hiểu.

Một ví dụ về điều này là xterm với 16 màu so với xterm với 256 màu. Một xterm truyền thống chỉ hỗ trợ 16 màu, vì vậy đó là những gì xtermcơ sở dữ liệu đầu cuối chỉ định. Thay đổi xtermmục nhập sẽ khiến người dùng của các phiên bản xterm mới hơn hài lòng, nhưng sẽ phá vỡ cấu hình của người dùng các phiên bản xterm cũ hơn đăng nhập từ xa. Chuyển sang một tên mới -  xterm-256color- cung cấp các khả năng mới hơn bất cứ khi nào có sẵn, nhưng không được nhận ra nếu bạn đăng nhập từ xa vào các máy có cơ sở dữ liệu đầu cuối cũ. Vì không có giải pháp nào có thể làm hài lòng tất cả mọi người, bạn có một lựa chọn: gắn bó xtermvà không nhận được 256 màu hoặc sử dụng xterm-256colorkhông hoạt động nếu bạn đăng nhập vào các máy từ xa không hỗ trợ.

Do đó, để lại giá trị mặc định xtermvà đặt termNametài nguyên thành xterm-256color(điều này khiến biến môi trường TERMđược đặt thành cùng một giá trị), do đó, cả hai đều là những lựa chọn hợp lý. Đặt TERMthành các giá trị tùy ý sẽ không hoạt động, nhưng cả hai xtermxterm-256colorcó ý nghĩa.


3

Tôi đặt biến $ TERM thêm dòng XTerm * termName: xterm-256color vào tệp .Xresource của tôi.

Điều đó tốt, miễn là bạn biết về những gì bạn đã làm; hầu hết các thiết bị đầu cuối GUI hỗ trợ này.

Bạn cũng có thể đặt nó từ dòng lệnh hoặc trong một tập lệnh

export TERM=xterm-256color

Điều này chỉ áp dụng cho thiết bị đầu cuối đó, hoặc trẻ em tiếp theo.

Một mặc định di động sẽ chỉ là xterm, có nghĩa là hỗ trợ 16 màu. Nếu bạn có bộ 256 màu và thiết bị đầu cuối của bạn không hỗ trợ nó, chạy các ứng dụng TUI 256 màu sẽ trông lạ; bạn có thể sẽ nhận thấy ngay lập tức. Nhưng nó không nên nguy hiểm.


Vì vậy, thiết lập XTerm*termName: xtermthay vì XTerm*termName: xterm-256colortôi sẽ ổn, phải không?
Santaru72

Nếu đó là những gì bạn muốn, đừng đặt bất cứ điều gì; xtermlà mặc định cho xterm;) nhưng nó có nghĩa là 16 màu. Điểm chính của việc sử dụng xterm-256colornói với các ứng dụng rằng thiết bị đầu cuối hỗ trợ 256 màu . Nếu bạn không làm điều đó, họ sẽ đoán 16 màu.
goldilocks
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.