कीबोर्ड शॉर्टकट के साथ IntelliJ में रीज़न विधि पैरामीटर


92

IntelliJ में मैं आसानी से दबाकर बयान (या उस भाग के लिए पूरे विधि) के क्रम को पुनर्व्यवस्थित कर सकते हैं + Shift+ (या + Shift+ )।

मैं सोच रहा था कि क्या विधि मापदंडों के क्रम को आसानी से बदलने का कोई शॉर्टकट है, ताकि

public void sth(String a, String b) {...}

हो जाएगा

public void sth(String b, String a) {...}

एक कीबोर्ड शॉर्टकट के स्ट्रोक के साथ (मेरा कर्सर मानदंड में से एक पर तैनात है)।

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


1
तीन या अधिक पैरामीटर होने पर यह कैसे व्यवहार करना चाहिए? :)
कोन्स्टेंटिन योकोव

2
मान लीजिए कि मेरा कर्सर दूसरे पैरामीटर पर है: इसे ऊपर स्थानांतरित करना, यह पहला बनना चाहिए। इसे नीचे स्थानांतरित करना, यह अंतिम बन जाना चाहिए।
स्टेफन हैबर

2
एक समय में एक पैरामीटर ऊपर या नीचे चला गया! मैं इस करतब को करने में सक्षम होना पसंद करूँगा!
प्रति एरिकसन

1
Ctrl+F6और फिर Alt+Upया Alt+Downएक पैरामीटर को स्थानांतरित करने के लिए?
हुसोमेयर शादारिव

1
हाँ, अधिक बार आप सोचेंगे। जब मैं एक ऐसी विधि को शुरू करना चाहता हूं, जिसमें आमतौर पर Alt-Enter जरूरत पड़ने पर अतिरिक्त मापदंडों को जोड़ा जा सकता है। जब मैं कर चुका होता हूं तब मैं अधिक तार्किक क्रम में होने के लिए मापदंडों को फिर से व्यवस्थित करता हूं। इसके अलावा, मुझे लगता है कि विधि कॉल के लिए भी इस शॉर्टकट के लिए वास्तव में अच्छा होगा। (यार, एक ही प्रकार के 4 या 5 से अधिक मानकों के साथ काम करते समय मुझे कितनी बार आदेश गलत मिला? Uhg!)
स्टीफन

जवाबों:


155

आईडीए 16 ईएपी के बाद से, इसके लिए एक कार्रवाई है। यह मेनू में है:

कोड | एलिमेंट लेफ्ट / राइट को मूव करें

कीबोर्ड शॉर्टकट Alt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/RightOSX के लिए) हैं।

अधिक जानकारी के लिए http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ देखें ।


मुझे लगता है कि IDEA 16 को जंगल में छोड़ने तक मुझे थोड़ा इंतजार करना होगा, लेकिन यह बहुत अच्छी खबर है!
स्टेफन हैबर

EAP पहले से ही जंगली में है, आप इसे आज़मा सकते हैं :) मुझे नहीं लगता कि इसे रिलीज़ होने में 2 महीने से अधिक समय लगेगा।
पीटर ग्रोमोव

4
अच्छा है, लेकिन हुसोमिर शायदरिव जवाब: stackoverflow.com/a/35359882/4024146 बहुत बेहतर है, क्योंकि यह रिफ्लेक्टर करता है और मापदंडों के बदलाव पर निर्भरता बदलता है। यह सिर्फ इस मेथोस के लिए मापदंडों को स्विच करता है, लेकिन किसी अन्य विधि से विधि कॉल नहीं। आपको इसके लिए मैक्रो बनाने की ज़रूरत नहीं है, बस CTRL + F6 और ALT +
m

1
@mtrakal वे दो अलग चीजें हैं। जब मैं एक विधि की रचना कर रहा हूं, मुझे हेवीवेट (धीमी) रिफैक्टिंग की आवश्यकता नहीं है - मैं आसानी से मापदंडों को स्थानांतरित करना चाहता हूं। इसके साथ वास्तविक समस्या यह है कि मेरे पास अक्सर अलग-अलग लाइनों पर पैरामीटर होते हैं, इसलिए यह काम नहीं करता है। (मैं वास्तव में एक चाल-पिछले और आगे-आगे चाहता हूं, बाएं और दाएं नहीं।)
जेम्स मूर

यदि आपके पास विभिन्न तरीकों के कई मापदंडों पर कई कर्सर हैं, तो उन्हें एक साथ ले जाया जा सकता है।
पश्चिमीगंज

16

मुझे यकीन नहीं है कि अगर यह आईडिया में संभव है, लेकिन आप दो-पैरामीटर विधियों के लिए संपादक मैक्रोज़ का उपयोग करने का प्रयास कर सकते हैं:

  • संपादक -> मैक्रोज़ -> मैक्रो रिकॉर्डिंग शुरू करें
  • अपना मैक्रो रिकॉर्ड करें:
    • Ctrl+ सिग्नेचर चेंज डायलॉग F6खोलने के लिए
    • Alt+ पहले और दूसरे पैरामीटर को स्वैप करने के लिए
    • Tabपैरामीटर्स टैब को निष्क्रिय करने के लिए और रिफ्लेक्टर बटन को फोकस प्राप्त करने दें
    • Enter परावर्तन प्रदर्शन में संवाद को बंद करने के लिए
  • संपादक -> मैक्रोज़ -> मैक्रो रिकॉर्डिंग रोकें और अपने मैक्रो को एक नाम दें, मान लें कि "स्वैप विधि पैरामीटर 1 और 2"।

और फिर संपादक -> मैक्रोज़ मेनू के माध्यम से अपने मैक्रो का उपयोग करें या सेटिंग्स में एक कस्टम शॉर्टकट असाइन करें -> कीमैप -> मुख्य मेनू / संपादन / मैक्रोज़ / स्वैप विधि पैरामीटर 1 और 2 । यह मेरे लिए बहुत गंदा और संदर्भ-मुक्त तरीका है, लेकिन शायद यह आपकी थोड़ी मदद कर सकता है।


11

उबंटू 18.04 पर डिफ़ॉल्ट शॉर्टकट Ctrl + Alt + Shift + Super + बाएँ / दाएँ एक स्थिति में बाएँ या दाएँ तर्क को स्थानांतरित करने के लिए है।

यह वैसा ही है जैसा कि नए OS स्तर के कुछ शॉर्टकट्स के साथ क्लैश नहीं करना है


1
धन्यवाद, भले ही इसके लिए उंगली जिमनास्टिक की आवश्यकता हो, यह एक अलग कुंजी को बांधने की आवश्यकता से बहुत बेहतर है।
galeale
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.