আমি কীভাবে উইম স্ক্রিপ্টের সাথে একটি স্ট্রিংকে বিপরীত করব


11

আমি একটি স্ট্রিং বিপরীত করার চেষ্টা করছি, যাতে 'abc defg hij'হয় 'jih gfed cba'। সমাধানটি আমি নিয়ে এসেছি

join(reverse(split(l:text, '.\zs')), '')

এর থেকেও আরও দুর্দান্ত সমাধান আছে বা আমি যা এলাম তার সাথে কি লেগে থাকা উচিত?


1
এটি "মার্জিত" দ্বারা আপনি কী বোঝাতে চান তার উপর নির্ভর করে। কোনও স্ট্রিং বিপরীত করার জন্য উত্সর্গীকৃত কোনও অভ্যন্তরীণ ফাংশন নেই that's আপনি যদি অভ্যন্তরীণ ফাংশনগুলিতে এবং কোনও অতিরিক্ত বিবৃতি না দিয়ে দুটি বা তার চেয়ে কম কল দিয়ে এটি করার অর্থ করেন তবে তা সম্ভবত সম্ভব হবে বলে মনে হয় না।
সাতো ক্যাটসুরা

1
আপনার বর্তমান সমাধান ইতিমধ্যে উভয় মার্জিত এবং কথ্য।
রোমেনেল

1
'এড়িয়ে যান'। বিভক্ত অংশে।
ক্রিশ্চিয়ান ব্র্যাব্যান্ড 18

1
@ স্যাটোক্যাটসুরা আসলে আমার ধারণা এটি আরও দক্ষ, কারণ রেজিএক্সএক্স ইঞ্জিনের কোনও কিছুর সাথে মিলের দরকার নেই। তদতিরিক্ত, ডকুমেন্টেশন থেকে এটি পছন্দসই উপায়।
ক্রিশ্চান ব্র্যাব্যান্ড 18

1
@ ক্রিশ্চিয়ানব্রাব্যান্ড ম্যানুয়াল অনুসারে বিকল্প split()ব্যতীত {keepempty}শুরুতে একটি খালি আইটেম এবং শেষে একটি খালি আইটেম সরিয়ে নেওয়া উচিত। এটি বর্তমানে তালিকার মাঝের জিনিসগুলি সহ সমস্ত খালি আইটেম সরিয়ে ফেলেছে (যদি আপনি আমাকে জিজ্ঞাসা করেন তবে ডকুমেন্টেড আচরণের চেয়ে যা দরকারী তবে আপনি সম্ভবত তা করেন না)) আমি মনে করি এটি নিয়ে সম্প্রতি আলোচনা হয়েছে vim_dev
সাতো ক্যাটসুর

উত্তর:


10

আপনার সমাধান খুব মার্জিত! আপনি ইউনিক্স ভিত্তিক এনভিতে থাকলে একটি বিকল্প:

!!rev

3

উইকিয়া থেকে

vnoremap <Leader>r c<C-O>:set revins<CR><C-R>"<Esc>:set norevins<CR>

আরও দেখুন: :h revins


2

আপনি যদি ইউনিক্সের মতো সিস্টেম ব্যবহার করেন, ভিমে, প্রাক্তন কমান্ডটি টাইপ করুন :%! rev

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