我在編程方面相當新,但我想知道shell如vim,emacs,nano等的文本編輯器如何能夠控制命令行窗口。我主要是Windows程序員,所以在* nix上可能會有所不同。據我所知,只能將文本打印到控制檯,並要求輸入。文本編輯器如何在命令行環境中創建可導航,可編輯的窗口?shell文本編輯器如何工作?
回答
通過使用庫,比如,反過來,使用轉義字符序列
NAME ncurses - CRT screen handling and optimization package SYNOPSIS #include DESCRIPTION The ncurses library routines give the user a terminal-independent method of updating character screens with reasonable optimization. This implementation is ‘‘new curses’’ (ncurses) and is the approved replacement for 4.4BSD classic curses, which has been discontinued. [...snip....] The ncurses package supports: overall screen, window and pad manipulation; output to windows and pads; reading terminal input; control over terminal and curses input and output options; environment query routines; color manipulation; use of soft label keys; terminfo capabilities; and access to low-level terminal-manipulation routines.
瞭解ncurses可能是一個很好的起點。
有一個基於「VT100」終端的稱爲vt100的舊協議。它使用以escape開始的代碼來控制光標位置,顏色,清除屏幕等。
這也是您如何獲取彩色提示。
谷歌VT100或 「終端轉義碼」
編輯:我Google爲你:http://www.termsys.demon.co.uk/vtansi.htm
簡短的回答:有吧庫(比如詛咒,俚語)。
較長的答案:通過打印特殊字符序列(稱爲escape-secquences,因爲它們以ESC字符開頭)來完成諸如使用光標跳轉或更改顏色等操作。
如果您在Windows命令行控制檯輸入「編輯」您還會注意到這下面。這個「特性」並不是unix類系統所獨有的,儘管用這種方式操縱windows控制檯的概念與unix中的完全不同。
更多Windows命令行特定的應用程序通常會調用DOS或BIOS功能。有時ANSI命令代碼支持可用,有時不支持(取決於確切的MS操作系統版本以及是否配置爲加載它)。
在Unix系統上,控制檯窗口模擬古老的串行終端(通常是VT100)。您可以打印特殊控制字符和轉義序列來移動光標,更改顏色和執行其他特殊效果。有些圖書館可以幫助處理細節; ncurses是最受歡迎的。
在Windows中,[Win32控制檯API](http://msdn.microsoft.com/en-us/library/ms682073(VS.85%29.aspx)提供類似的功能,但在一個相當不同的方式
鍵入 「C:\ WINNT \ SYSTEM32 \編輯」。或「c:\ Windows \ System32下\編輯「命令行,你會看到一個命令行文本編輯器
人們大多是正確的ESC字符被用來控制命令屏幕,但一些較早的程序也直接寫字符到內存Windows命令行屏幕使用的空間
爲了控制命令行窗口,你以前必須編寫自己的窗口窗體,輸入框,菜單等。你還必須將所有這些都放在一個大循環中以處理事件。
- 1. 如何編輯與shell腳本文件
- 2. GUI shell腳本編輯器
- 3. 協作文本編輯器
- 4. 如何讓記事本++編輯器和shell在Python中一起工作?
- 5. 文本編輯器語法高亮顯示如何工作?
- 6. 富文本在線編輯器如何工作?
- 7. 富文本編輯器如何工作以及如何構建基本編輯器?
- 8. 直接在服務器上工作的文本編輯器? (aptana?)
- 9. 文本編輯器
- 10. Shell腳本編輯文件行
- 11. 使用shell腳本編輯plist文件
- 12. 如何在shell中的文本編輯器中打開文件的批處理?
- 13. 應用CSS時DNN文本編輯器不工作
- 14. YUI文本編輯器在我的Mozilla中不工作
- 15. 文本編輯器不工作在JavaScript的div彈出
- 16. UrlFetchApp在腳本編輯器中工作,而不在文檔中
- 17. 文本編輯器(ckeditor)不工作在我的DIV框中
- 18. Javascript驗證的文本編輯器(ckeditor)無法正常工作
- 19. CakePHP表格與YUI文本編輯器,不能正常工作
- 20. 如何在Visual Studio的文本編輯器中獲得三重點擊工作
- 21. 反應本機zss富文本編輯器工具欄操作不起作用
- 22. 如何編寫django shell操作腳本?
- 23. YUI富文本編輯器:文本着色工具不起作用
- 24. 富文本編輯器
- 25. aspx的文本編輯器?
- 26. 文本編輯器想法
- 27. Wicket富文本編輯器
- 28. 文本編輯器 - Asp.net mvc
- 29. Interlinear文本編輯器
- 30. MFC SDI文本編輯器
在Windows Shell中製作文本編輯器:只需下載現在免費的Visual Basic dos 1,就可以輕鬆製作一個edit.com克隆。 - 或者 - 對於那些想在* nix/bsd/osx場景中編輯的人:ncurses有一個很好的方法來做到這一點,使用'pads'來保存整個文檔(或者在緩衝之前保存它在內存中的最大數量),這允許你基本上將緩衝區的'窗口'複製到屏幕上,甚至可以滾動它,輸入文本等。一本好書可以閱讀:NCurses程序員指南ISBN 978-0470107591(ncurses比LOT更容易你可能會認爲!) – osirisgothra 2015-05-05 11:02:30