diff --git a/emacs/doom/config.org b/emacs/doom/config.org
index 099cf5d..1572f9c 100644
--- a/emacs/doom/config.org
+++ b/emacs/doom/config.org
@@ -43,7 +43,7 @@
 (map! :desc "Flycheck previous error" :nv "g N" #'flycheck-previous-error)
 (map! :leader "c X" #'flycheck-list-errors)
 
-(map! :desc "Save" :g "C-s" #'save-buffer)
+(map! :desc "Save" :g "C-s" #'fd-save-and-escape)
 (map! :leader "w 1" #'delete-other-windows)
 (map! :leader "t p" #'+popup/toggle)
 
@@ -61,9 +61,15 @@
 
 (defun fd-format-without-autosave()
   (interactive)
-     (let ((current-prefix-arg 4)) ;; pass universal argument
-     (call-interactively #'save-buffer))
-)
+  (let ((current-prefix-arg 4)) ;; pass universal argument
+    (call-interactively #'save-buffer))
+  )
+
+(defun fd-save-and-escape()
+  (interactive)
+  (company-abort)
+  (evil-force-normal-state)
+  (save-buffer))
 
 ;; Do not ask before exiting emacs
 (setq confirm-kill-emacs nil)