ফাংশন আর্গুমেন্ট অদলবদল করুন


19

কোডটি রিফ্যাকচারিং করার সময় ফাংশন আর্গুমেন্টগুলি অদলবদল করতে সক্ষম হবে।

উদাহরণস্বরূপ পরিবর্তন করা:

func(foo[0], bar(), baz.spam)

মধ্যে

func(baz.spam, foo[0], bar())

ফাংশন বন্ধনী এবং কমাগুলি ঠিক জায়গায় রেখে বাম / ডানদিকে তর্কগুলি অদলবদল করার কোনও উপায় আছে কি?


মনে রাখবেন, এই পারে বেশ জড়িত হয়ে যদি যুক্তির নিজেদের নিজেদের আর্গুমেন্ট সহ ফাংশন কল জন্য দায়ী চাই - যেমন: func(baz->spam, foo[0], bar(a, b, c))- এই ক্ষেত্রে সমর্থনকারী সম্ভবত আরো কিছু ব্যাপক পার্সিং জড়িত করা হবে।

উত্তর:


23

প্লাগইন ছাড়াই

| কার্সার অবস্থান নির্দেশ করে

func(foo[0], bar(), |baz.spam)

পদক্ষেপ:

  1. dt) মুছে ফেলবে baz.spam
  2. Ff কার্সারটি এফ অক্ষরে স্থানান্তরিত করবে foo[0]
  3. vt,p foo [0] মুছে ফেলবে এবং এর সাথে প্রতিস্থাপন করবে baz.spam
  4. $P প্যারেন্সের আগে ফু [0] পেস্ট করবে
  5. অন্য কারও জন্য পদক্ষেপ 1-4 পুনরাবৃত্তি করুন।

প্লাগইন সহ

  • তেজ-বিতর্কমূলক দ্বারা পিটার Rincker : ফাংশন আর্গুমেন্ট চলন্ত কাছাকাছি জন্য পাঠ্য বস্তু প্রদান করে (ডিফল্ট ম্যাপিং: <,এবং >,)।
  • তেজ-বিনিময় দ্বারা টম ম্যাকডোনাল্ড : দুই নির্বাচন করা হলে (: ডিফল্ট ম্যাপিং বিনিময় কুশলী ম্যাপিং প্রদান করে cxস্বাভাবিক মোডে এবং Xচাক্ষুষ মোডে)।
  • তেজ-পার্শ্বাভিমুখ দ্বারা অ্যান্ড্রু Radev : সরান ফাংশন আর্গুমেন্ট (এবং অন্যান্য সীমায়িত-বাই-কিছু আইটেম) বাম এবং ডান (ডিফল্ট ম্যাপিং: NA)।
  • ভিচ -সোয়াপ বাই মাচাকান : সীমাবদ্ধ আইটেমগুলিকে পুনঃক্রম করুন (ডিফল্ট ম্যাপিংস : g<এবং g>)।

6
নন-প্লাগইন সমাধানটি মামলার জন্য খুব নির্দিষ্ট ...
ইলিয়াশিব

3
@ ইলিয়াশিবের ধারণাটি হ'ল যে কোনও ফাংশন যুক্তির জন্য আপনি অনুরূপ কৌশল ব্যবহার করতে পারেন। মূলত, একটি শব্দ ইয়াঙ্ক করুন, অন্য শব্দটি চাক্ষুষরূপে নির্বাচন করুন, পেস্ট করুন, যা ভিম মুছে ফেলা অক্ষরটিকে রেজিস্টারটিতে ঝাঁকিয়ে দেবে এবং তারপরে আপনি যেখান থেকে প্রথমে ঝাঁকিয়েছেন সেখান থেকে পেস্ট করুন।
অক্ষয়

1
ভিএম-পার্শ্ব পথের জন্য +1! শেষ বিভাগটি একটি দুর্দান্ত বৈশিষ্ট্য বর্ণনা করেছে: cia "যুক্তিতে পরিবর্তন" to ❤️
মার্টিজন কোর্টেউ

5

আমি 3 পদ্ধতি উপস্থাপন করি। প্রথম দুটি হ'ল বিশেষ ক্ষেত্রে, যার জন্য কম কীস্ট্রোক প্রয়োজন। শেষটি জেনেরিক। |কার্সার অবস্থান প্রতিনিধিত্ব করে।


সংলগ্ন আর্গুমেন্টগুলি অদলবদল করুন (শেষ দুইটির জন্য কাজ করে না)

function func(foo[0], |bar(), baz.spam, qux->norf)

পদক্ষেপ:

  1. dW বর্তমান শব্দ মুছে ফেলুন (যুক্তি)
  2. W পরের যুক্তিটির প্রথম চরটিতে যান
  3. P কার্সার আগে পেস্ট করুন

শেষ দুটি যুক্তি অদলবদল করুন

function func(foo[0], bar()|, baz.spam, qux->norf)

পদক্ষেপ:

  1. dt, পরবর্তী কমা পর্যন্ত মুছুন
  2. E পরবর্তী যুক্তির সর্বশেষ চরিত্রে যান
  3. P কার্সার আগে পেস্ট করুন

যে কোনও দুটি যুক্তি অদলবদল করুন

function func(|foo[0], bar(), baz.spam, qux->norf)

পদক্ষেপ:

  1. vt,d দৃষ্টিগোচরভাবে কমা হওয়া পর্যন্ত মুছুন
  2. W আপনি যে আর্গুমেন্টটির সাথে অদলবদল করতে চান সেখানে পৌঁছা পর্যন্ত বেশ কয়েকবার
  3. gP কার্সারের আগে পেস্ট করুন এবং আটকানো সামগ্রীর পরে চরে কার্সার রাখুন
  4. dt,পরবর্তী কমা পর্যন্ত মুছুন। প্রতিস্থাপন ,দ্বারা )যদি এই শেষ যুক্তি
  5. `< শেষ ভিজ্যুয়াল অঞ্চলের ভিক্ষা ফিরে যান (কসমার উপর কসরটি স্থাপন করা হবে)
  6. P কার্সার আগে পেস্ট করুন

সম্পাদনা করুন: @ অ্যারিসিস ৮৮ দ্বারা চিহ্নিত হিসাবে ওপি সর্বশেষ যুক্তিটি প্রথম হতে এবং অন্য সমস্তকে ডানদিকে নিয়ে যেতে চায়।

আর্গুমেন্ট ডানদিকে ঘোরান

function func(foo[0], bar(), baz.spam|, qux->norf)

পদক্ষেপ:

  1. dw মুছে ফেলা ,␣
  2. dt) শেষ যুক্তি মুছুন
  3. %p খোলার প্রথম বন্ধনীতে ঝাঁপ দাও এবং শেষ যুক্তিটি পেস্ট করুন
  4. a,␣ কমা এবং স্থান sertোকান
  5. <Esc> স্বাভাবিক মোডে ফিরে আসুন

বা, আপনি যদি কখনও স্বাভাবিক মোডটি ছেড়ে যেতে না চান:

  1. "rdw,␣একটি রেজিস্টার মুছুনr
  2. dt) শেষ যুক্তি মুছুন
  3. %p খোলার প্রথম বন্ধনীতে ঝাঁপ দাও এবং শেষ যুক্তিটি পেস্ট করুন
  4. "rp রেজিস্টার কন্টেন্ট আটকান r

বোনাস: প্রতিটি ক্ষেত্রে একটি জিআইএফ: swap1 , swap2 , swap3 এবং ঘোরান


যদিও এই উত্তরটি আর্গুমেন্টগুলি অদলবদল করে, এটি প্রশ্নের উত্তর দেয় না, এটি কীভাবে শেষ যুক্তিকে শুরুতে সরানো যায়।
aharris88

@ aharris88, আপনি ঠিক বলেছেন আমি আমার উত্তর সম্পাদনা করেছি।
গোনালো রিবেইরো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.