def _setLine(self, line): term.moveBack(self._position) term.write(' ' * len(self._line)) term.moveBack(len(self._line)) # term.eraseLine() term.write(''.join(line)) self._line = line self._position = len(line)
def _paste(self, text): tail = self._line[self._position:] for c in text: self._line.insert(self._position, c) self._position += 1 term.write(text) term.write(''.join(tail)) term.moveBack(len(tail))
def _onBackspace(self): if self._position > 0: self._position -= 1 del self._line[self._position] term.moveBack(1) self._line.append(' ') self._showTail() del self._line[-1]
def _showTail(self, retainPosition=True): """ reprint everything that should be after the cursor """ strLine = self._getLineStr() toWrite = strLine[self._position:] term.write(toWrite) if retainPosition: term.moveBack(len(toWrite))
def _showTail(self, retainPosition=True): """ reprint everything that should be after the cursor """ # term.savePosition() strLine = self._getLineStr() toWrite = strLine[self._position:] term.write(toWrite) if retainPosition: term.moveBack(len(toWrite))
def _paste(self, text): # 将用户输入的正常字符添加到_line中,并刷新term显示 # term.savePosition() tail = self._line[self._position:] #初始 _line、_position均为 0 for c in text: #用户每敲击一个字符,添加到_line中 self._line.insert(self._position, c) self._position += 1 term.write(text) term.write(''.join(tail)) # term.restorePosition() term.moveBack(len(tail))
def _onBackspace(self): if self._position > 0: self._position -= 1 del self._line[self._position] term.moveBack(1) # lenToErase = len(self._line[:self._position])+1 # term.write (' ' * lenToErase) # term.moveBack (lenToErase) # term.eraseLine() self._line.append(' ') self._showTail() del self._line[-1]
def _moveDelta(self, steps): if steps: if steps > 0: self._moveForward(steps) else: term.moveBack(-steps)
def _onLeft(self): if self._position > 0: self._position -= 1 term.moveBack() else: term.bell()
def _toLineStart(self): term.moveBack(self._position) self._position = 0