Как мне сделать текстовый редактор командной строки?

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

10 ответов

Решение

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

Взгляните на Curses Programming в Python и это тоже.

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

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

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

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

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

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

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

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

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

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

-Адам

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

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

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

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

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

Не совсем ссылка на библиотеку Python, но Craft of Text Editing от Craig A. Finseth может вас заинтересовать.

Еще один вариант без ругательств - Python Slang

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

Другие вопросы по тегам