from mvc.models import VimModel from mvc.views import VimView from mvc.controllers import Controller, ReturnCode from mvc.controllers import EditStrategy, CommandStrategy, NormalStrategy def main(): model, view = VimModel(), VimView() # начальный режим - редактирование strategy = NormalStrategy(model, view.curses_adapter) controller = Controller(strategy) # Загрузка файла для редактирования file_path = "example.txt" # Укажите путь к файлу model.LoadFile(file_path) while True: view.Render(model.displayBuffer, model.currentLine, model.currentCol, model.scrollX, model.scrollY, model.ModeBar()) symbolCode = view.curses_adapter.GetChar() match controller.HandleInput(symbolCode): case ReturnCode.SET_BASIC_MODE: controller.SetStrategy(NormalStrategy(model, view.curses_adapter)) case ReturnCode.SET_COMMAND_MODE: controller.SetStrategy(CommandStrategy(model, view.curses_adapter)) case ReturnCode.SET_EDIT_MODE: controller.SetStrategy(EditStrategy(model, view.curses_adapter)) case ReturnCode.EXIT_CODE: break view.curses_adapter.Cleanup() if __name__ == "__main__": main()