Как мне сделать текстовый редактор командной строки? - PullRequest
15 голосов
/ 27 марта 2009

Я познакомился с несколькими языками программирования, и я хотел бы попробовать свои силы в создании текстового редактора командной строки - что-то, что работает в терминале, например vim / emacs / nano, но это чистый текст (без графического интерфейса, пожалуйста). Предпочтительно, я хотел бы сделать это в Python. С чего мне начать? Существуют ли какие-либо (python) библиотеки для приложений командной строки?

Ответы [ 10 ]

19 голосов
/ 27 марта 2009

try python curses модуль, это библиотека графических операций командной строки.

9 голосов
/ 27 марта 2009
6 голосов
/ 27 марта 2009

Дети сегодня! Sheesh! Когда я только начинал, проклятия не были широко распространены!

Мои первые текстовые редакторы работали на реальных механических устройствах Teletype с настоящей бумагой (не философское устройство "TTY" с экраном прокрутки!)

Это все еще хорошо работает как способ редактирования.

Используйте модуль cmd для реализации нескольких команд. Используйте справочную страницу «ex» для подсказок о том, что вам нужно. Не читайте о командах vi; избегайте читать о vim.

Посмотрите на старые страницы руководства только для раздела "EX COMMANDS". Например, здесь: http://www.manpagez.com/man/1/ex/.

Реализуйте команды добавления, добавления, изменения, удаления, глобального, вставки, объединения, списка, перемещения, печати, выхода, замены и записи, и вы будете счастливы.

5 голосов
/ 27 марта 2009

Другой вариант, если вы хотите написать TUI (текстовый интерфейс пользователя) без необходимости переходить к проклятиям, это Snack , который поставляется с Newt .

5 голосов
/ 27 марта 2009

Библиотеки типов ресурсов Curses позволят вам получить доступ к текстовым пользовательским интерфейсам и предоставляют очень удобные, относительно простые в использовании окна, меню, редакторы и т. Д.

Тогда вы захотите взглянуть на модули подсветки кода для python.

Это забавный процесс, касающийся ограничений текстовых интерфейсов, и вы можете многому научиться, пройдя этот путь. Удачи!

-Adam

3 голосов
/ 27 марта 2009

Я бы порекомендовал отличный инструментарий urwid (http://excess.org/article/2009/03/urwid-0984-released) - его гораздо проще использовать, чем прямые проклятия.

2 голосов
/ 27 марта 2009

Не совсем ссылка на библиотеку Python, но Craft of Text Editing Крейга А. Финсета, возможно, вас заинтересует.

2 голосов
/ 27 марта 2009

Не очень серьезные предложения: редактор строк может быть реализован без проклятий.

Эти вещи, конечно, довольно примитивны и не слишком интересны для работы. Но они могут быть реализованы с очень небольшим количеством кода и дадут вам возможность дурачиться с различными схемами для поддержания состояния файла в память довольно быстро.

И они свяжут вас с программистами начала семидесятых (когда у них были телетайпы и первые стеклянные телетайпы, но после перфокарт было немного устарело ...).

1 голос
/ 27 марта 2009

Ну, что вы подразумеваете под GUI? Если вы просто хотите создать что-то, что можно использовать на консоли, загляните в модуль curses в стандартной библиотеке Python, который позволяет имитировать примитивный графический интерфейс на консоли.

0 голосов
/ 28 мая 2009

Другой вариант без проклятий: Python Slang

[Ньютон] (http://en.wikipedia.org/wiki/Newt_(programming_library)) написано поверх сленга.

...