diff --git a/addon/fold/foldcode.js b/addon/fold/foldcode.js
index 7f89c431fd6f7b6ea51300d86e5312e3b42d3e3e..d7a0bb5e2d95b6cea6b1698eeeb2b194e3e29ab1 100644
--- a/addon/fold/foldcode.js
+++ b/addon/fold/foldcode.js
@@ -75,9 +75,27 @@
       if (marks[i].__isFold) return true;
   });
 
-  CodeMirror.commands.fold = function(cm) {
+  CodeMirror.commands.toggleFold = function(cm) {
     cm.foldCode(cm.getCursor());
   };
+  CodeMirror.commands.fold = function(cm) {
+    cm.foldCode(cm.getCursor(), null, "fold");
+  };
+  CodeMirror.commands.unfold = function(cm) {
+    cm.foldCode(cm.getCursor(), null, "unfold");
+  };
+  CodeMirror.commands.foldAll = function(cm) {
+    cm.operation(function() {
+      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
+        cm.foldCode(CodeMirror.Pos(i, 0), null, "fold");
+    });
+  };
+  CodeMirror.commands.unfoldAll = function(cm) {
+    cm.operation(function() {
+      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
+        cm.foldCode(CodeMirror.Pos(i, 0), null, "unfold");
+    });
+  };
 
   CodeMirror.registerHelper("fold", "combine", function() {
     var funcs = Array.prototype.slice.call(arguments, 0);