     @logAndCancel(event)
 
   cut: (event) =>
-    @logAndCancel(event)
-
-  copy: (event) =>
-    @logAndCancel(event)
+    @responder?.deleteBackward()
 
   paste: (event) =>
-    @logAndCancel(event)
+    if text = event.clipboardData.getData("text/plain")
+      @responder?.insertString(text)
+    event.preventDefault()
 
   input: (event) =>
     @responder?.render()

class Trix.Input
  @events: "keydown keypress drop cut copy paste input".split(" ")
  @keys:
    0x08: "backspace"
    0x0D: "return"

    if keyName = @constructor.keys[event.keyCode]
      if handler = @[keyName]
        handler.call this, event

  keypress: (event) =>
    return if event.metaKey

    if event.which is null
      character = String.fromCharCode event.keyCode
    else if event.which isnt 0 and event.charCode isnt 0
