Ich habe den folgenden Quellcode:Umschalten auf vim wie Editor interactivelly einen Python-String ändern
import sys, os
import curses
import textwrap
if __name__ == "__main__":
curses.setupterm()
sys.stdout.write(curses.tigetstr('civis'))
os.system("clear")
str = "abcdefghijklmnopqrstuvwxyz" * 10 # only example
for line in textwrap.wrap(str, 60):
os.system("clear")
print "\n" * 10
print line.center(150)
sys.stdin.read(1) # read one character or #TODO
#TODO
# x = getc() # getc() gets one character from keyboard (already done)
# if x == "e": # edit
# updatedString = runVim(line)
# str.replace(line, updatedString)
sys.stdout.write(curses.tigetstr('cnorm'))
Das Programm bewegt sich durch die Zeichenfolge von 60 Zeichen. Ich hätte gerne Bearbeitungsmöglichkeit (in der Position #TODO) im Fall Ich möchte die gerade angezeigte Zeichenfolge ändern.
Ist es möglich, einen kleinen vim
Puffer zu öffnen, wenn ich eine Taste drücke? Ich würde eine Bearbeitung vornehmen und wenn ich :w
drücke, würde es die Zeichenfolge aktualisieren. Ich möchte, dass der Editor vim
die Position der Zeichenfolge im Terminal nicht ändert (ich möchte es zentriert).
Es ist möglich! Es ist möglich, einen Puffer zu öffnen, zu bearbeiten und zu speichern. Es wird etwas schwierig sein, den Inhalt des neuen Puffers zu aktualisieren. Geht es Ihnen mit einer anderen Lösung gut? Zum Beispiel, nach dem Öffnen eines neuen Puffers, können Sie nach dem Bearbeiten das gesamte Ding kopieren, indem Sie 'ggvG' drücken und dann mit' y' kopieren und anstelle dessen einfügen, indem Sie p drücken – SibiCoder
@SibiCoder Jede Lösung ist einen Versuch wert . – xralf