2013-05-10 16 views
21

Używam MacOS X i używam Sublime Text 2 do kodowania.Tworzenie i uruchamianie z argumentami w Sublime Text 2

Znalazłem polecenia + B możliwość budowania i polecenie + shift + B zbudować i uruchomić.

Czy można uruchomić program (lub skrypt) i przekazać argumenty. Exemple:

myProg arg1 arg2 

Uwaga: Używam wielu języków (C++, Java, Python), więc mam nadzieję, że istnieje sposób, aby ustawić argumentów dla każdego projektu i nie dla wszystkich kompilacji.

Edit

Chcę ustawić parametry wywołania programu, trochę jak w Eclipse, gdzie można ustawić argumenty po uruchomieniu programu.

+0

Pozwolę sobie wyciągnąć to prosto: chcesz zawsze ten sam zestaw argumentów dla konkretnego programu? Czy chcesz mieć możliwość uruchamiania kodu za każdym razem z różnymi argumentami? – whatyouhide

Odpowiedz

21

Dla każdego projektu można utworzyć plik .sublime-project ze swoim specyficznym build_system na nim:

{ 
    "folders": 
    [{ 
    "path": "src" 
    }], 
    "build_systems": 
    [{ 
    "name": "Run with args", 
    "cmd": ["python", "$file", "some", "args"] 
    }] 
} 

ten sposób nie zanieczyszczać globalnej menu budowy systemu i nie będzie musiał martwić się o przełączanie buduj system podczas zmiany projektów. Ten plik jest także łatwy dostęp, gdy trzeba zmienić argumenty:

Cmd-Shift-P > Edit Project 
+1

kolego, jeśli za każdym razem potrzebujemy przekazywać dynamiczną argumentację, jaki byłby najlepszy sposób, aby to zrobić ...? –

+0

Co masz na myśli przez dynamiczny? Masz tutaj pełny dostęp do powłoki, możesz przechowywać swoją "dynamiczną" rzecz w pliku i statycznie ją odczytać w wysublimowanej wersji. – OlivierBlanvillain

+0

na przykład chcesz uruchomić nodejs npm installer dla podkreślenia, wtedy napisz polecenie jak w "npm install podkreślenie", ale następnym razem, gdy chcesz załadować ekspres, będziesz pisać polecenie jak w "npm install express". Więc mam wątpliwości, czy mamy przepis na klawiaturze, aby wybrać arg i użyć go do załadowania modułów węzła tak samo jak mamy do znalezienia tekstu w pliku np. : wybierz dowolny tekst w pliku, a następnie ctrl + F. Znajdziesz go w panelu Znajdź. –

5

znalazłem proste rozwiązanie jest utworzenie pliku Pythona w tym samym katalogu:

import os 
os.system("python filename.py some args") 
+0

To będzie moja opcja awaryjna (nie zawsze pod wzniosłością) , ale potrzebuję kilku poprawek, takich jak check dla os.argv i może, używając raw_input, by poprosić o wiele argumentów, a następnie uruchamiając z os.execv() zamiast os.system(). – erm3nda

7

InputArgs robi dokładnie to, czego” szukam ponownie. Wyświetla okno dialogowe wprowadzania danych za każdym razem, gdy uruchamiasz kompilację (ctrl + b) i możesz podać argumenty oddzielone spacjami od wewnątrz wzniosłego tekstu.

+2

Czy to, co każdy powinien zrobić, gdy zrobisz ctrl + shit + b, a okno dialogowe zostanie otwarte. Jest doskonały i obsługuje historię dostarczonych poleceń (push up). Dziękuję bardzo. – erm3nda

+0

Po prostu próbowałem tego z systemem kompilacji node.js, a jeśli przekażę serię parametrów oddzielonych spacjami, otrzymuję je jako jeden duży parametr: tj. jeśli chcę symulować 'węzeł program.js 1 2 3', to co otrzymam, kiedy wpisuję' 1 2 3' w oknie dialogowym to pojedynczy ciąg '1 2 3' zamiast 3 oddzielnych parametrów ciągu. –