2013-01-08 8 views
5

Tôi đang gặp khó khăn trong việc googling, bởi vì tôi không biết đúng từ khóa. Một số ứng dụng dòng lệnh (chẳng hạn như vi và ít hơn) chiếm toàn bộ màn hình giao diện điều khiển và trình bày giao diện tương tác cho người dùng. Khi thoát khỏi một ứng dụng như vậy, màn hình sẽ trở về trạng thái trước khi ứng dụng được khởi chạy. Tôi muốn viết một chương trình ứng xử theo cách này, nhưng một lần nữa, tôi thậm chí không biết cái này được gọi là gì, vì vậy tôi không thể tìm thấy bất kỳ tài liệu nào về cách nó được hoàn thành.Làm thế nào để viết toàn bộ màn hình/ứng dụng bàn điều khiển Linux?

Vì vậy, câu hỏi của tôi có ba điểm:

  1. Những từ khóa tôi có thể sử dụng để tìm tài liệu về vấn đề này?
  2. Nếu bạn quá nghiêng, các liên kết đến tài liệu đó sẽ hữu ích.
  3. Cuối cùng, tôi có thể thực hiện điều này bằng ngôn ngữ kịch bản như Ruby hay thậm chí là bash không? Tôi không có vấn đề gì với C, nhưng môi trường tôi làm việc ở đó là dễ hiểu hơn đối với các ngôn ngữ thông dịch.
+0

Thư viện bạn đang tìm kiếm là 'lời nguyền'. Tôi chắc rằng có ràng buộc với Perl, không chắc chắn về các ngôn ngữ kịch bản khác. – antlersoft

Trả lời

3

Như đã nói trong một số nhận xét, bạn đang tìm kiếm ncurses. Dự án Tài liệu Linux có một HOWTO rất tốt trên ncurses cho C mà tôi sử dụng bản thân mình để bắt đầu vào nó

http://www.tldp.org/HOWTO/text/NCURSES-Programming-HOWTO

+0

Chấp nhận liên kết tới tldp . Trang web tuyệt vời! –

2

Tính năng bạn mô tả là alternate screen buffer. Tôi nghĩ rằng [N] Curses sẽ kích hoạt tính năng này theo mặc định. Chắc chắn có những ràng buộc nguyền rủa cho Ruby, Python và các ngôn ngữ kịch bản khác.

+0

+1 cho từ khóa phù hợp. –

+0

Để hoàn chỉnh: Tính năng này thường gây phiền nhiễu và có một số cách để * ngừng * các chương trình sử dụng bộ đệm màn hình thay thế: http://www.shallowsky.com/linux/noaltscreen.html – larsks

2

bạn thậm chí có thể truy cập trong ncurses bash bằng cách sử dụng chương trình tput. Toàn bộ thư viện ncurses (giống như nguyền rủa trước nó) hoạt động bằng cách gửi các chuỗi thoát tới terminal. Chương trình xterm mô phỏng thiết bị đầu cuối vt100 (và cũng là thiết bị đầu cuối Tektronic) và có nhiều sự kết hợp các ký tự khác nhau, di chuyển con trỏ, xóa màn hình, vẽ các ký tự khác nhau, thường bắt đầu bằng ký tự thoát, do đó tên: escape trình tự. Đôi khi bạn cũng thấy các chuỗi thoát này trong các biến shell PS1 của mọi người với \ e để cung cấp ký tự thoát; thường được sử dụng để tô màu lời nhắc hoặc đặt tiêu đề cửa sổ.

tput đề cập đến cơ sở dữ liệu terminfo để tìm ra trình tự thoát là gì để thực hiện các chức năng bạn đã yêu cầu.

xem hướng dẫn trang, gõ:

man 5 terminfo 

để biết thêm chi tiết