Sublime Text 3: Bestätigen Sie, um die Datei zu löschen

8

Gibt es eine Möglichkeit, das Löschen einer Datei aus der Baumstruktur (linke Seite) zu bestätigen oder die Option aus dem Kontextmenü zu entfernen?

Es ist zu einfach, das zu verpassen, d. h. rename und stattdessen delete file . Dann ist die Datei weg.

Ich habe gegoogelt und gefunden, dass es in den Papierkorb verschoben werden sollte, aber das gilt nicht für Win7 oder für die Verwendung von Netzlaufwerken. Daher werden die Dateien tatsächlich gelöscht oder verschoben, wo ich sie bisher nicht gefunden habe.

Verwenden von Sublime Text (Build 3083)

    
robbash 16.06.2015, 22:35
quelle

4 Antworten

6

Option 1: Ändern Sie die Datei side_bar.py

Sie können die sublime API verwenden, um einen OK / Abbrechen-Dialog anzuzeigen . Der Code, nach dem Sie suchen, befindet sich in einer Datei namens side_bar.py . Diese Datei befindet sich in der Zip-Datei Defaultlime-Paket . In Fenstern befindet sich dies normalerweise in C: \ Programme \ Sublime Text 3 \ Packages \ Default.slime-package und kann mit Programmen wie WinRar erkundet werden.

Innerhalb dieser Datei suchen Sie DeleteFileCommand und fügen Sie diese 3 neuen Zeilen hinzu, so dass sich daraus Folgendes ergibt:

%Vor%

Zu diesem

%Vor%

Wir zeigen einen Ok / Abbrechen-Dialog und wenn der Benutzer Ok nicht drückt, kehren wir zurück und die Datei wird nicht entfernt.

Anmerkungen:

  • Sie müssen denselben Code in der Klasse DeleteFolderCommand hinzufügen, um dies auch beim Löschen von Ordnern zu bestätigen.
  • Es empfiehlt sich, zuerst die Datei Defaultlime-package zu sichern, falls etwas schief geht. BEARBEITEN: Verwenden Sie einen anderen Ordner für die Sicherung oder das Paket konnte zweimal geladen werden, was Probleme verursacht, wie das OP in seinem Kommentar gesagt hat.
  • Da dies python ist, ist der Code-Einzug extrem wichtig, nicht Ersetzen Sie alle Leerzeichen für Tabs, fügen Sie keinen zusätzlichen Speicherplatz hinzu, sonst wird es nicht angezeigt Arbeit (Sie können es Konsole sehen).

Ergebnis:

Option 2: Verwenden Sie ein vorhandenes Paket

Als Benutzer leesei sagte in seine Antwort können Sie das SideBarEnhancements-Paket verwenden, um Ihr Ziel zu erreichen. Dieses Paket fügt dem Dateikontextmenü viele weitere Funktionen hinzu, wie Sie in der folgenden Abbildung sehen können, aber es ist eine sehr gute Wahl, da Sie nur ein vorhandenes Paket installieren müssen.

Option 3: Entfernen Sie die Option aus dem Kontextmenü

Editieren Sie Sidebar climate-menu innerhalb von Defaultlime-package (siehe Option 1) und entfernen Sie diese Zeile (und wenn Sie auch die Zeile entfernen möchten, die sich auf Ordner löschen):

%Vor%     
sergioFC 17.06.2015, 14:47
quelle
2

Wenn ich mit der rechten Maustaste auf eine Datei in der Sidebar klicke, erhalte ich eine Bestätigung.
Vielleicht ist es SideBarEnhancements . Es ist einen Versuch wert.

    
leesei 17.06.2015 09:35
quelle
1

Während sergioFC die Antworten gut funktionieren, mache ich mir etwas Sorgen, wie ich irgendwann Default.sublime-package modifizieren könnte Wird überschrieben, wenn Sublime aktualisiert wird, muss das Update nach jedem Update manuell erneut angewendet werden. SideBarEnhancements dagegen könnte zu viele Funktionen für jemanden haben, der nur die Bestätigung beim Löschen einer Datei wünscht.

Alternativ können Sie einen einfachen Bestätigungsdialog hinzufügen, der resistenter gegen ST-Updates sein soll, indem Sie eine Datei (Plugin) erstellen: ~/.config/sublime-text-3/Packages/User/confirm_delete.py mit folgendem Inhalt:

%Vor%

Dieser Code ist im Grunde eine Kopie von DeleteFileCommand function aus Default.sublime-package s side_bar.py kombiniert mit Bestätigungsdialogen von DeleteFolderCommand aus der gleichen Datei, da Sublime einen solchen Dialog nativ für Ordner Entfernung.

    
iron77 25.02.2016 14:51
quelle
0

Leider gibt es keine Möglichkeit, eine Bestätigung zu aktivieren. Normalerweise wird die gelöschte Datei in den Papierkorbordner verschoben, aber wie Sie bereits erwähnt haben, gilt dies nur für lokale Dateien. Dateien auf einem freigegebenen Netzlaufwerk werden weiterhin sofort gelöscht. Dies ist ein Windows - Feature: (

  

Lokal ist der Papierkorb Teil von Windows Explorer - und im Netzwerk arbeiten Sie NICHT mit dem Explorer auf dem Server. Der lokale Explorer wird die Datei nicht auf die Arbeitsstation des Benutzers kopieren, um sie in den Papierkorb zu legen.

Sie können jedoch Microsofts Shadow Copy implementieren Benutzer können Versionen wiederherstellen und vergleichen. Dies wäre bisher die einzige Möglichkeit für Netzwerklaufwerke, bis der erhabene Entwickler einen optionalen Bestätigungsdialog erstellt.

    
Pᴇʜ 17.06.2015 09:23
quelle

Tags und Links