            (save-excursion
              (insert-char ?\s (- ocol (current-column)) nil))))
         ;;
-        ((and (= n 1) (not (minibufferp)))
-         ;; TODO Refactor; abstract with doom-surrounded-p more
-         (let* ((pair (sp-get-thing))
-                (op (plist-get pair :op))
-                (cl (plist-get pair :cl))
-                (beg (plist-get pair :beg))
-                (end (plist-get pair :end)))
-           (cond ((and end beg (= end (+ beg (length op) (length cl))))
-                  (sp-backward-delete-char 1))
-                 ((doom-surrounded-p pair :inline :balanced)
-                  (delete-char -1 killflag)
-                  (delete-char 1)
-                  (when (= (point) (+ (length cl) beg))
-                    (sp-backward-delete-char 1)
-                    (sp-insert-pair op)))
-                 ((and (bolp) (doom-surrounded-p pair nil :balanced))
-                  (delete-region beg end)
-                  (sp-insert-pair op))
-                 (t
-                  (doom/backward-delete-whitespace-to-column)))))
+        ((and (= n 1)
+              (not (minibufferp)))
+         (cond ((and (memq (char-before) (list ?\  ?\t))
+                     (save-excursion
+                       (and (> (- (skip-chars-backward " \t" (line-beginning-position))) 0)
+                            (bolp))))
+                (doom/backward-delete-whitespace-to-column))
+               ((let* ((pair (sp-get-thing))
+                       (op   (plist-get pair :op))
+                       (cl   (plist-get pair :cl))
+                       (beg  (plist-get pair :beg))
+                       (end  (plist-get pair :end)))
+                  (cond ((and end beg (= end (+ beg (length op) (length cl))))
+                         (sp-backward-delete-char 1))
+                        ((doom-surrounded-p pair 'inline 'balanced)
+                         (delete-char -1 killflag)
+                         (delete-char 1)
+                         (when (= (point) (+ (length cl) beg))
+                           (sp-backward-delete-char 1)
+                           (sp-insert-pair op)))
+                        ((and (bolp) (doom-surrounded-p pair nil 'balanced))
+                         (delete-region beg end)
+                         (sp-insert-pair op))
+                        ((doom/backward-delete-whitespace-to-column)))))))
         ;; Otherwise, do simple deletion.
         (t (delete-char (- n) killflag))))
 

      (when (and (> pt beg) (< pt end))
        (when-let* ((cl (plist-get pair :cl))
                    (op (plist-get pair :op)))
          (and (not (string-empty-p op))
               (not (string-empty-p cl))
               (let ((nbeg (+ (length op) beg))
                     (nend (- end (length cl))))
                 (let ((content (buffer-substring-no-properties nbeg nend)))

+ Otherwise, resort to `doom/backward-delete-whitespace-to-column'.
+ Resorts to `delete-char' if n > 1"
  (interactive "p\nP")
  (or (integerp n)
      (signal 'wrong-type-argument (list 'integerp n)))
  (cond ((and (use-region-p)
              delete-active-region
              (= n 1))
