diff --git a/evil-commands.el b/evil-commands.el
--- a/evil-commands.el
+++ b/evil-commands.el
@@ -2692,6 +2692,44 @@
                           (cdr reg))))
         (newline)))))
 
+(evil-define-command evil-show-marks ()
+  "Shows all marks."
+  :repeat nil
+  ;; To get markers and positions, we can't rely on 'global-mark-ring'
+  ;; provided by Emacs (although it will be much simpler and faster),
+  ;; because 'global-mark-ring' does not store mark characters, but
+  ;; only buffer name and position. Instead, 'evil-markers-alist' is
+  ;; used; this is list maintained by Evil for each buffer.
+  (let (;; contains list of vectors in form [char-int row col filename]
+        all-markers)
+    (dolist (m (append (evil-filter-list #'(lambda (m)
+                                             (or (evil-global-marker-p (car m))
+                                                 (not (markerp (cdr m)))))
+                                         evil-markers-alist)
+                       (evil-filter-list #'(lambda (m)
+                                             (or (not (evil-global-marker-p
+                                                       (car m)))
+                                                 (not (markerp (cdr m)))))
+                                         (default-value 'evil-markers-alist))))
+      (with-current-buffer (marker-buffer (cdr m))
+        (save-excursion
+          (goto-char (cdr m))
+          (push (vector (car m)
+                        (1+ (count-lines 1 (line-beginning-position)))
+                        (current-column)
+                        (buffer-name))
+                all-markers))))
+    (evil-with-view-list "evil-marks"
+      (setq truncate-lines t)
+      (dolist (m (sort all-markers #'(lambda (a b)
+                                       (< (aref a 0)
+                                          (aref b 0)))))
+        (insert (format " %s %6d %6d %s\n"
+                        (string (aref m 0))
+                        (aref m 1)
+                        (aref m 2)
+                        (aref m 3)))))))
+
 (eval-when-compile (require 'ffap))
 (evil-define-command evil-find-file-at-point-with-line ()
   "Opens the file at point and goes to line-number."
