title: Undo feature in tkinter text widget
body: <p>I was trying to use <code>undo</code> function on my text widget in <code>tkinter</code> but without any luck.
  I tried it this way:</p>
  
  <pre><code>from Tkinter import *
  from ttk import Notebook
  
  def OnVsb(*args):
      text.yview(*args)
      numbers.yview(*args)
  
  def OnMouseWheel(event):
      text.yview("scroll", event.delta,"units")
      numbers.yview("scroll",event.delta,"units")
      return "break"
  
  def undo(*argv):
      text.edit_undo()
  
  root = Tk()
  defaultbg = root.cget('bg')
  root.bind('&lt;Control-z&gt;', undo)
  note = Notebook(root)
  frame = Frame(note, bd=5, relief=GROOVE, padx=5, pady=5)
  frame.pack()
  bar = Scrollbar(frame, command=OnVsb)
  bar.pack(side=RIGHT, fill=Y)
  numbers = Listbox(frame, width=5, height=30,bg=defaultbg,relief=FLAT,   yscrollcommand=bar.set)
  numbers.pack(side=LEFT, fill=Y)
  text = Text(frame,bd=3, width=145, height=30, yscrollcommand=bar.set)
  text.pack(side=LEFT, fill=Y) 
  text.bind("&lt;MouseWheel&gt;", OnMouseWheel)
  text.tag_config("attr", foreground="tomato")
  text.tag_config("value", foreground="dark violet")
  text.tag_config("tags", foreground="dodger blue")
  text.tag_config("text", font=("Georgia", "9", "bold"))
  text.focus_set()
  root.lift()
  root.call('wm', 'attributes', '.', '-topmost', '1')
  root.after_idle(root.call, 'wm', 'attributes', '.', '-topmost', False)
  root.mainloop()
  </code></pre>
  
  <p>But for some reason it does nothing. I thought it was implemented by default in text widget, but it didn't work out. Any suggestions on how to use this feature on a text widget? Any example would be much appreciated.</p>