 extension ShortcutsPref {
 
   @objc func resetToDefault(_ sender: NSButton) {
-    stdoutLog.debug("Reset to default!")
-    stdoutLog.debug(
-      self.shortcutsDefaultsController.defaults
-        .dictionaryRepresentation()["com.qvacua.vimr.menuitems.edit.copy"]
-    )
+    guard let window = self.window else { return }
+
+    let alert = NSAlert()
+    alert.addButton(withTitle: "Cancel")
+    alert.addButton(withTitle: "Reset")
+
+    alert.messageText = "Do you want to reset all shortcuts to their default values?"
+    alert.alertStyle = .warning
+    alert.beginSheetModal(for: window, completionHandler: { response in
+      guard response == .alertSecondButtonReturn else { return }
+      self.traverseMenuItems { identifier, _ in
+        self.shortcutsDefaultsController.setValue(
+          defaultShortcuts[identifier],
+          forKeyPath: "values.\(identifier)"
+        )
+      }
+    })
   }
 }
 

                           withKeyPath: "selectionIndexPaths")
  }

  private func initMenuItemsBindings() {
    var queue = self.shortcutItemsRoot.children ?? []
    while (!queue.isEmpty) {
      guard let item = queue.popLast() else { break }

        continue
      }

      fn(identifier, menuItem)
    }
  }

  private func initMenuItemsBindings() {
    self.traverseMenuItems { identifier, menuItem in
      menuItem.bind(
        NSBindingName("keyEquivalent"),
        to: self.shortcutsDefaultsController,
