diff --git a/src/UI/ScriptDocumentView.cc b/src/UI/ScriptDocumentView.cc
index e1b50cc3ad4f480f4d5d850696ec06eedba36cbc..d5ab150768286c10469ba9ff14bca3642c2911d5 100644
--- a/src/UI/ScriptDocumentView.cc
+++ b/src/UI/ScriptDocumentView.cc
@@ -55,9 +55,11 @@ ScriptDocumentView::setUseFakeVimEditor(bool yes) noexcept
         connect(proxy, &EditorProxy::requestQuit, this, [this, mw]() noexcept -> void {
             mw->closeDocument(static_cast<AbstractDocumentView *>(this));
         });
-        TODO(Implement the save and save + quit things)
-        // connect(proxy, &EditorProxy::requestSave, document, &AbstractDocument::save); // TODO
-        // connect(proxy, &EditorProxy::requestSaveAndQuit, document, &AbstractDocument::save + &MainWindow::closeTab); // TODO
+        connect(proxy, &EditorProxy::requestSave, this, [this]() { document->save(); });
+        connect(proxy, &EditorProxy::requestSaveAndQuit, this, [this, mw]() noexcept -> void {
+            document->save();
+            mw->closeDocument(static_cast<AbstractDocumentView *>(this));
+        });
         initHandler(handler);
         clearUndoRedo(editor);
     }