2012-10-15 23 views
5

Sto provando a configurare l'IDE Notepad ++ in modo tale che quando premo F6 verrà eseguito lo script Ruby che sto modificando. Dopo aver cercato su Internet ho scoperto che mettendo cmd /K ruby "$(FULL_CURRENT_PATH)" nella finestra di dialogo di esecuzione che si apre quando premo F5 eseguirò gli script di base nel Prompt dei comandi (sto usando Windows 7).Come si imposta il comando Esegui Notepad ++ per Ruby?

Tuttavia, se il mio codice carica qualsiasi dato esterno come i file .txt, o come ho trovato con Gosu, carica qualsiasi file immagine, Ruby lamenta che le cose non esistono che effettivamente esistono.

So che il mio codice e l'installazione di Ruby (Ruby 1.9.3) vanno bene perché prima ho usato FreeRIDE, un IDE vecchio, un po 'buggato di cui mi sono stancato, e il mio codice funziona bene quando Premo F5 usando quell'IDE.

Seguono alcuni esempi di reclami.

My Text Adventure:

C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text Focused Fold 
er/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFileParser.rb:8:i 
n `initialize': No such file or directory - Example Dungeon Creator File.txt (Er 
rno::ENOENT) 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile 
Parser.rb:8:in `open' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile 
Parser.rb:8:in `encapsulate_method' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile 
Parser.rb:117:in `sort_room_data_external_method' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile 
Parser.rb:125:in `<main>' 

D:\Programming Stuff\Notepad++> 

mio Gosu Programma:

C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text Focused Fold 
er/Ruby Scripts/Game Development/Circular Motion.rb:10:in `initialize': Could no 
t load image media/Space2.png using either GDI+ or FreeImage: Unknown error (Run 
timeError) 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:10:in `new' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:10:in `initiali 
ze' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:181:in `new' 
     from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text 
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:181:in `<main>' 

D:\Programming Stuff\Notepad++> 

se qualcuno potesse dare qualsiasi aiuto a tutti sarei davvero grato.

Aggiornamento: I suggerimenti di knut mi hanno permesso di ottenere quello che voglio dopo qualche giocoleria scomoda ogni volta che avvio il programma. Ci sono alcuni problemi. Utilizzo

cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)"" 

nella finestra di dialogo di esecuzione predefinita non funziona. (Ho le stesse lamentele di cui sopra). Ma usando NppExec e

cd "$(CURRENT_DIRECTORY)" 
ruby "$(FULL_CURRENT_PATH)" 

per questo funziona bene, se non con il mio codice Gosu, che dovrebbe tracciare una finestra e animare alcune immagini, non succede nulla. Tuttavia, se ogni volta che avvio Notepad ++ eseguo NppExec e poi utilizzo il dialogo di esecuzione predefinito, tutto funziona correttamente utilizzando il comando di esecuzione integrato per quella sessione. Qualche idea sul perché tutto ciò si verifica e su come prevenirlo? Inoltre, preferirei avere Notepad ++ per aprire una finestra del prompt dei comandi invece di eseguire all'interno di Notepad ++ stesso, come con NppExec. E grazie!

Update2: Sembra che il riavvio del mio computer abbia risolto il problema, eppure ora sono più confuso su ciò che sta effettivamente accadendo. È il plugin NppExec che consente effettivamente alle cose di funzionare come vorrei, anche se sto usando uno script salvato per la finestra di dialogo di esecuzione predefinita? Oppure si tratta di un bug mantenuto

cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)"" 

dal funzionamento fino al riavvio?

risposta

7

Il vostro problema: Con

cmd /K ruby "$(FULL_CURRENT_PATH)" 

si chiama il rubino script nella directory attuale - e la directory effettiva non deve essere la directory della sorgente. Nel mio caso di test era la directory di Notepad ++.

si può usare:

cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)"" 

ma vi consiglio di utilizzare la NppExec-Plugin. Con NppExec è possibile definire un comando come:

cd "$(CURRENT_DIRECTORY)" 
ruby "$(FULL_CURRENT_PATH)" 

Così si avvia lo script Ruby nella directory corretta.

O ancora più semplice:

Si imposta l'opzione Plugins->nppexec >follow $(current directory) e iniziare NppExec con

ruby "$(FULL_CURRENT_PATH)" 

Forse anche interessante:

+0

il comando 'cd' dovrebbe anche usare l'opzione'/D'. altrimenti funzionerebbe solo se il file corrente si trova sulla stessa unità del blocco note! quindi il comando completo è: 'cmd/K" cd/D "$ (CURRENT_DIRECTORY)" && ruby ​​"$ (FILE_NAME)" "' –