q -> выйти, но если файл был изменен, то возможен выход без сохранения только через q!
parent
7cd502a806
commit
0dc325466e
|
@ -14,7 +14,7 @@ class VimModel:
|
|||
def __init__(self, displayLinesCount: int, displayColsCount: int):
|
||||
self.displayLinesCount = displayLinesCount
|
||||
self.displayColsCount = displayColsCount
|
||||
self.showLineNumbers = False
|
||||
self.showLineNumbers = True
|
||||
self.displayBuffer = [] # буфер для хранения всех строк
|
||||
self.dump = []
|
||||
self.currentLine = 0 # текущий индекс строки
|
||||
|
@ -157,7 +157,8 @@ class VimModel:
|
|||
self.commandBuffer.clear()
|
||||
match cmd:
|
||||
case "q": # Выход из программы
|
||||
return ReturnCode.EXIT_CODE
|
||||
if self.displayBuffer == self.dump:
|
||||
return ReturnCode.EXIT_CODE
|
||||
case "q!": # Выход без сохранения
|
||||
return ReturnCode.EXIT_CODE
|
||||
case "wq!" | "x": # Записать в текущий файл + выйти
|
||||
|
@ -288,6 +289,7 @@ class VimModel:
|
|||
with open(file_path, "w") as file:
|
||||
for line in self.displayBuffer:
|
||||
file.write(''.join(line) + '\n')
|
||||
self.Dump()
|
||||
print(f"In file '{file_path}' written successfully.")
|
||||
except Exception as e:
|
||||
print(f"Error writing file: {str(e)}")
|
||||
|
|
|
@ -34,6 +34,7 @@ class CursesAdapter:
|
|||
curses.curs_set(1) # Make cursor visible
|
||||
curses.start_color()
|
||||
curses.init_pair(1, curses.COLOR_MAGENTA, curses.COLOR_BLACK) # Фиолетовый текст на черном фоне
|
||||
self.colorPair = curses.color_pair(1)
|
||||
|
||||
def Refresh(self) -> None:
|
||||
"""Apply changes"""
|
||||
|
@ -84,7 +85,7 @@ class VimView:
|
|||
if show_line_numbers:
|
||||
line_number = f"{i + scrollY + 1:6} " # 6 символов на номер строки
|
||||
# Выводим номер строки фиолетовым цветом
|
||||
self.curses_adapter.screen.addstr(i, 0, line_number, curses.color_pair(1))
|
||||
self.curses_adapter.screen.addstr(i, 0, line_number, self.curses_adapter.colorPair)
|
||||
|
||||
# Выводим текст с учетом прокрутки и ширины нумерации
|
||||
visible_text_start = scrollX # Начало видимой части текста
|
||||
|
|
Loading…
Reference in New Issue