n -> повторить поиск, N -> повторить поиск в обратном направлении
parent
4880835bf1
commit
c405e36dcf
|
@ -15,6 +15,7 @@ class VimModel:
|
|||
self.displayLinesCount = displayLinesCount
|
||||
self.displayColsCount = displayColsCount
|
||||
self.showLineNumbers = True
|
||||
self.lastSearch = ()
|
||||
self.displayBuffer = [] # буфер для хранения всех строк
|
||||
self.dump = []
|
||||
self.currentLine = 0 # текущий индекс строки
|
||||
|
@ -181,6 +182,26 @@ class VimModel:
|
|||
case "h":
|
||||
self.LoadFile("config/usage.txt")
|
||||
return ReturnCode.SET_BASIC_MODE
|
||||
case "n":
|
||||
if self.lastSearch != ():
|
||||
index = tools.findSublistIndex(self.displayBuffer,
|
||||
list(self.lastSearch[0]),
|
||||
self.currentLine,
|
||||
direction=self.lastSearch[1])
|
||||
if index != -1:
|
||||
self.currentLine = index
|
||||
self.currentCol = 0
|
||||
self.lastSearch = (self.lastSearch[0], self.lastSearch[1])
|
||||
case "N":
|
||||
if self.lastSearch != ():
|
||||
index = tools.findSublistIndex(self.displayBuffer,
|
||||
list(self.lastSearch[0]),
|
||||
self.currentLine,
|
||||
direction=(self.lastSearch[1]+1)%2)
|
||||
if index != -1:
|
||||
self.currentLine = index
|
||||
self.currentCol = 0
|
||||
self.lastSearch = (self.lastSearch[0], (self.lastSearch[1]+1)%2)
|
||||
case "e!":
|
||||
self.displayBuffer = [sublist.copy() for sublist in self.dump]
|
||||
case "set num":
|
||||
|
@ -210,6 +231,7 @@ class VimModel:
|
|||
if index != -1:
|
||||
self.currentLine = index
|
||||
self.currentCol = 0
|
||||
self.lastSearch = (cmd[1:], 1)
|
||||
# Поиск строки от курсора до начала файла
|
||||
elif len(cmd) > 1 and cmd[0] == '?':
|
||||
index = tools.findSublistIndex(self.displayBuffer,
|
||||
|
@ -219,6 +241,7 @@ class VimModel:
|
|||
if index != -1:
|
||||
self.currentLine = index
|
||||
self.currentCol = 0
|
||||
self.lastSearch = (cmd[1:], 0)
|
||||
|
||||
return ReturnCode.GOOD
|
||||
|
||||
|
@ -325,5 +348,6 @@ class VimModel:
|
|||
self.scrollX = 0
|
||||
self.file_path = ""
|
||||
self.mode = ""
|
||||
self.lastSearch = ()
|
||||
self.commandBuffer = []
|
||||
self.exchangeBuffer = []
|
Loading…
Reference in New Issue