ভিম ম্যাক্রো ক্যামেলকেসকে ছোট হাতের_উথ_উইন্ডসকরে রূপান্তর করতে


12

ক্যামেলকেসকে লোয়ারকেস_উইথ_ফন্ডস্কোর এবং এর বিপরীতে রূপান্তর করার জন্য কি কোনও ভিম ​​ম্যাক্রো আছে?

উত্তর:


19

টিম পোপ এর abolish.vimমধ্যে রূপান্তর করতে পারেন camelCase, MixedCase, snake_case, এবং UPPER_CASE, সেইসাথে থেকে রূপান্তর করুন (একমুখী) dash-case।

কোনো কার্সারটি fooBar, FooBar, foo_bar, অথবা FOO_BARএবং ব্যবহার

  • crc রূপান্তর করতে fooBar
  • crm রূপান্তর করতে FooBar
  • cr_বা
    crsরূপান্তর করতেfoo_bar
  • cru রূপান্তর করতে FOO_BAR
  • cr- রূপান্তর করতে foo-bar

নিখুঁত সমাধান
— নীল জি

টিম পোপ দুর্দান্ত। অনেক দুর্দান্ত প্লাগইন।
— হেন্ডরিক

6

হ্যাঁ আছে , এবং একটি বোনাস হিসাবে বিপরীত দিকে যেতে সেখানে একটি আছে!

উইকিটি চলে যাওয়ার ক্ষেত্রে উদ্ধৃতি:

" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul

এবং বিপরীত দিকের জন্য:

" Change selected text from name_like_this to NameLikeThis.
vnoremap ,c :s/_\([a-z]\)/\u\1/g<CR>gUl

ধন্যবাদ! এটি প্রায় নিখুঁত, আমার ভিমে বাদে, এটি ক্যামেলকেসের নামের প্রথম অক্ষরটি পরিবর্তন করে না। আমি নিশ্চিত না কেন।
— নিল জি

খুব সুন্দর. আমি দেখতে পেলাম যে সাপটিকে উটের দিকে পরিচালিত করার জন্য এই পরিবর্তনটি করা দরকার:vnoremap tos :s/\C\(\U\&\S\)\([A-Z]\)/\1_\l\2/g<CR>
— জোনা

1

lh-dev নামকরণ শৈলীর মধ্যে রূপান্তর করতে কমান্ডও সরবরাহ করে:

:NameConvert snake

কার্সারের অধীনে শব্দটিকে স্নাপকেসে রূপান্তরিত করবে।

:%ConvertNames/\<m_\k\+(/getter/gc

প্যাটার্নটির প্রতিটি ঘটনাকে একজন গেটর নামে রূপান্তর করবে, ধরে নিবেন ব্যবহারকারী পরিবর্তনের বিষয়টি নিশ্চিত করে ( :h :s_flags)

সমর্থিত শৈলীগুলি দুই ধরণের:


1

আমি এটির মতো একটি আদেশ তৈরি করেছি:

command! Ctl
    \ exec "norm \"xygn" |
    \ let @y = substitute(@x, "\\([^A-Z]\\)\\([A-Z]\\)", "\\1_\\2", "g") |
    \ let @y = tolower(@y) |
    \ exec "norm cgn\<C-r>y" |
    \ let @@ = ":Ctl\n"

আপনাকে প্রথমে প্রতিস্থাপন করতে চাইছে এমন একটি স্ট্রিং অনুসন্ধান করতে হবে /nameToReplaceএবং তারপরে আপনি চালাবেন :Ctlএবং পরবর্তী অনুসন্ধান মিলটি হয়ে যাবে name_to_replace। কমান্ডটি নিজেকে @@নিবন্ধকের মধ্যে রাখে যাতে আপনি চাপ দিয়ে ক্রিয়াটি পুনরাবৃত্তি করতে পারেন @@।

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