diff --git a/mvc/models.py b/mvc/models.py index 79424df..ada82c5 100644 --- a/mvc/models.py +++ b/mvc/models.py @@ -139,6 +139,13 @@ class VimModel: self.currentLine += self.displayLinesCount else: self.currentLine = len(self.displayBuffer) - 1 + case _: + # Открывает файл + if len(cmd) > 2 and cmd[:2] == 'o ': + filename = cmd[2:] + self.LoadFile(filename) + return ReturnCode.SET_BASIC_MODE + return ReturnCode.GOOD @@ -201,10 +208,13 @@ class VimModel: def LoadFile(self, file_path) -> None: """Загрузка файла для редактирования""" + self.Reset() self.file_path = file_path + self.mode = "NORMAL" try: with open(file_path, "r") as file: self.displayBuffer = [list(line.rstrip('\n')) for line in file.readlines()] + except FileNotFoundError: print(f"File {file_path} not found. Starting with empty buffer.") self.displayBuffer = [] @@ -218,3 +228,14 @@ class VimModel: print(f"File {self.file_path} saved successfully.") except Exception as e: print(f"Error saving file: {str(e)}") + + def Reset(self) -> None: + self.displayBuffer = [] + self.currentLine = 0 + self.currentCol = 0 + self.scrollY = 0 + self.scrollX = 0 + self.file_path = "" + self.mode = "" + self.commandBuffer = [] + self.exchangeBuffer = [] \ No newline at end of file