2011-10-20 12 views
18

पर कमांड लाइन इंटेलिजे मैं मैक ओएस एक्स में कमांड लाइन पर इंटेलिजे को लॉन्च करने की कोशिश कर रहा हूं ताकि इसका डिफ टूल उपयोग किया जा सके। सैद्धांतिक रूप से idea.sh diff file1 file2 काम करना चाहिए। अभ्यास में फ़ाइल के साथ कुछ समस्याएं हैं जो मुझे लगता है कि मैंने चारों ओर काम किया है (रीडलिंक आदि के लिए कुछ तर्क हटा रहे हैं)।
हालांकि जब यह शुरू होता है, तो यह चाहता है कि मैं लाइसेंस जानकारी दर्ज करूं (भले ही इंटेलिज का एक उदाहरण पहले से चल रहा है और लाइसेंस वहां है)। जो मुझे विश्वास दिलाता है कि मैक ओएस एक्स पर कमांड लाइन वर्ल्ड बनाम गैर-कमांड लाइन दुनिया का कुछ प्रकार अलग है? क्या यह सच है?
इसके अलावा जब मैं चयन 30 दिनों eval यह मुझे निम्न अपवाद देने के लिए आगे बढ़ता है:मैक ओएस एक्स

java.lang.IllegalArgumentException: Argument 0 for @NotNull parameter of com/intellij/openapi/fileEditor/impl/FileEditorProviderManagerImpl.getProviders must not be null 
    at com.intellij.openapi.fileEditor.impl.FileEditorProviderManagerImpl.getProviders(FileEditorProviderManagerImpl.java) 
    at com.intellij.openapi.diff.impl.highlighting.EditorPlaceHolder.setContent(EditorPlaceHolder.java:73) 
    at com.intellij.openapi.diff.impl.highlighting.DiffPanelState$1.run(DiffPanelState.java:38) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:864) 
... 

उत्तर

20

बजाय /Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea चलाने की कोशिश करें। idea.sh मैक के लिए डिज़ाइन नहीं किया गया है और कुछ मैन्युअल परिवर्तनों के बिना काम नहीं करेगा।

+0

यह बेहतर है - कोई लाइसेंस मुद्दों, लेकिन यह अभी भी मुझे एक ही त्रुटि (अब एक संवाद बॉक्स में) देता है: त्रुटि diff दिखा: com/IntelliJ/openapi/fileEditor की @NotNull पैरामीटर के लिए तर्क 0/impl/FileEditorProviderManagerImpl.getProviders शून्य –

+0

आह नहीं होना चाहिए, कभी भी ध्यान न दें, फ़ाइल को एक्सटेंशन होना आवश्यक है! –

+0

तो यह diff के लिए काम करता है, लेकिन मैं विलय कार्यक्षमता का आह्वान करना चाहता हूं (विवादों को हल करने के बाद सहेजने में सक्षम होना)। क्या यह करने योग्य है? –

6

आइडिया पथों को पूरी तरह योग्यता प्राप्त करने की अपेक्षा करता है, इसलिए मैंने एक छोटी सहायक लिपि लिखी। आह्वान की तरह:

$ idiff foo.txt bar.txt 

idiff के लिए कोड:

#!/bin/bash 
idea='/Applications/IntelliJ IDEA 10.app/Contents/MacOS/idea' 
left=`abspath $1` 
right=`abspath $2` 
"$idea" diff $left $right 

शायद कोई वास्तविक abspath उपकरण कहीं है, लेकिन मैं एक साधारण हाथ से लुढ़का एक है:

$ cat `which abspath` 
#!/bin/bash 
ORIG_DIR=`pwd` 
for fn in $* ; do 
    if [ -e $fn ]; then 
    d=`dirname $fn` 
    if [ -z $d ]; then 
     echo `pwd`/$fn 
    else 
     cd $d 
     echo `pwd`"/"`basename $fn` 
    fi 
    else 
    echo "Don't know how to process $fn" 1>&2 
    exit 1 
    fi 
    cd $ORIG_DIR 
done 
52

इंटेलीजे कर सकते हैं आपके लिए एक कमांड लाइन लॉन्चर स्थापित करें, इसे एक पीएटीएच निर्देशिका में जोड़कर इसे सिस्टम पर किसी अन्य आदेश के रूप में बनाया जाएगा। आदेश "विचार" है।

IntelliJ Command-line Launcher