Text sublimieren: Pfad des Buildbefehls nicht drucken

4475
Randomblue

Ich habe das folgende Build-Skript für meine JavaScript-Dateien in Sublime Text 3.

{ "shell_cmd": "node --harmony --use-strict --harmony_generators $file" } 

Das Problem ist, dass, wenn der Knoten einen Fehler zurückgibt, aus irgendeinem Grund Sublime den Pfad ausspuckt, der Zeilenumbruch nicht bewirkt und die Ausgabe verschmutzt.

C:\Users\JFD\Desktop\playground.js:2 console.log(b); // ReferenceError: a is not defined ^ ReferenceError: b is not defined at Object.<anonymous> (C:\Users\JFD\Desktop\playground.js:2:13) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12) at Function.Module.runMain (module.js:490:10) at startup (node.js:119:16) at node.js:827:3 [Finished in 0.1s with exit code 8] [shell_cmd: node --harmony --use-strict --harmony_generators C:\Users\JFD\Desktop\playground.js] [dir: C:\Users\JFD\Desktop] [path: C:\Program Files (x86)\Microchip\xc8\v1.11\bin;C:\Program Files (x86)\CMake 2.8\bin;C:\MinGW\bin;C:\yagarto4.6.0\bin;C:\Python26\;C:\Python26\Scripts;C:\Program Files (x86)\Altium Designer S09 Viewer\System;C:\PROGRA~2\MpAM;C:\windows\system32;C:\Program Files\nodejs\;C:\Cadence\SPB_16.6\tools\bin;C:\Cadence\SPB_16.6\tools\libutil\bin;C:\Cadence\SPB_16.6\tools\fet\bin;C:\Cadence\SPB_16.6\tools\specctra\bin;C:\Cadence\SPB_16.6\tools\pcb\bin;C:\Cadence\SPB_16.6\openaccess\bin\win32\opt;C:\Cadence\SPB_16.6\tools\capture;C:\Users\JFD\AppData\Roaming\npm\;c:\altera\12.1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ae\win32aloem] 

Wie kann ich Sublime bitten, den Pfad nicht auszugeben?

19
Ich denke, das ist nur ein Teil der Standardfehler- / Debugging-Ausgabe. Ich kenne keine Möglichkeit, sie durch Optionen oder Build-Flags zu deaktivieren. MattDMo vor 10 Jahren 0
Anstatt die Pfadausgabe zu deaktivieren, können Sie den Zeilenumbruch im Build-Ausgabefenster deaktivieren. Vergewissern Sie sich, dass das Erstellungsfenster aktiv ist, und deaktivieren Sie es mit "Ansicht -> Zeilenumbruch". Obwohl dies keine perfekte Lösung ist, ist es viel einfacher als das Ändern der internen Elemente von Sublime Text. anishpatel vor 6 Jahren 0

2 Antworten auf die Frage

12
William Saunders

Ein bisschen hack, aber das folgende hat für mich funktioniert. Es stellt sich heraus, dass Sie Code in einigen Standardpaketen überschreiben können, einschließlich des Codes, der für die Pfadausgabe verantwortlich ist:

  1. Wechseln Sie zu C: \ Programme \ Sublime Text 3 \ Packages
  2. Extrahieren Sie das Default.sublime-Paket (es ist eigentlich eine ZIP-Datei) und holen Sie sich die Datei exec.py (lassen Sie den extrahierten Ordner nicht im Verzeichnis liegen)
  3. Erstellen Sie das Verzeichnis Default unter C: \ Users \ USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages und legen Sie exec.py dort ab
  4. Öffnen Sie "exec.py" und kommentieren Sie die folgende Zeile in Zeile 245 aus (Platzierung # am Anfang der Zeile)

    self.append_string (proc, self.debug_text)

  5. Starten Sie Sublime Text neu
Das hat die Arbeit für mich gemacht :) Stephn_R vor 8 Jahren 0
6
SmartManoj

Installieren Sie PackageResourceViewer Paket

Open PackageResourceViewer: Open Resource mit der Befehlspalette [Strg + Umschalt + P]

Wählen Sie dann Default -> exec.py und dann Sublime Input -> input.py [Für Sublime Input].

Auskommentieren (Platzieren Sie # am Anfang der Zeile) die folgende Zeile in Zeile 365 [ST3 B3126] (383 für Sublime Input) für mich

self.append_string(proc, self.debug_text) 

Dies versteckt nicht nur den Pfad, sondern auch das Verzeichnis dir und cmd.

Um nur den Pfad auszublenden, kommentieren Sie den folgenden Block

if "PATH" in merged_env: self.debug_text += "[path: " + str(merged_env["PATH"]) + "]" else: self.debug_text += "[path: " + str(os.environ["PATH"]) + "]" 

Aktualisieren

Zum Entfernen von cmd beendete Anweisung, Verzeichnis, Pfad "quiet": true in build-Datei

Quelle

Nett! Ich wünschte, es gäbe eine Einstellung, um das umzuschalten. wie "error_info": ["cmd", "dir", "path"] ` Nolan Conaway vor 6 Jahren 0
@NolanConaway Es gibt SmartManoj vor 6 Jahren 0
kannst du mich darauf hinweisen Ich habe nichts in der Dokumentation gefunden. Nolan Conaway vor 6 Jahren 0
@NolanConaway [leiser Schlüssel] (https://www.sublimetext.com/docs/3/build_systems.html) SmartManoj vor 6 Jahren 0
@ SmartManoj Ah ja, ich weiß über diese Option Bescheid. Dies verhindert jedoch auch, dass die verstrichene Zeit usw. gedruckt wird. Ich möchte wirklich nur den Pfad entfernen! Nolan Conaway vor 6 Jahren 0