: লাইনের পরে পরিবর্তে কার্সার পরে পড়ুন


11

আমি :r !uuidgenবাফারে একটি নতুন ইউইড .োকাতে প্রায়শই ব্যবহার করি । এটি কাজ করে, তবে আমি সাধারণভাবে উদ্ধৃতিগুলির মধ্যে uuid sertোকানোর চেষ্টা করছি এবং :r !uuidgenনতুন লাইনে uuid মুদ্রণ করব।

এই সমস্যাটি পেতে, আমি বর্তমানে একটি সাধারণ কীম্যাপ ব্যবহার করছি:

nnoremap <C-u> mm:r!uuidgen<CR>dW"_dd`mp

এই ম্যাক্রো চিহ্নটি সেট করে mm, ইউইড সন্নিবেশ করে r!uuidgen, সন্নিবেশিত ইউউইড dWমুছে দেয়, অতিরিক্ত লাইন মুছে দেয়, চিহ্নটিতে "_ddফিরে যায় BACKTICKmএবং শেষ পর্যন্ত ইউইডকে পেস্ট করে p

:rকোনও রেজিস্টার নষ্ট করে এমন এই ম্যাক্রো / কী-বাইন্ডিং ছাড়া কার্সারের পরে ডানদিকে যাওয়ার কোনও উপায় আছে কি ?


1
এস ইউ প্রশ্ন , এছাড়াও এই মত workaround সঙ্গে।
মুরু

উত্তর:


8

আপনি এক্সপ্রেশন রেজিস্টার "=এবং ব্যবহার করতে পারেন system():

<C-r>=system("uuidgen | tr -d '\n'")<CR>

এটি কোনও সন্নিবেশ মোড ম্যাপিংয়ের মতো দেখায়:

inoremap <key> <C-r>=system("uuidgen | tr -d '\n'")<CR>

বা, একটি এক্সপ্রেশন ম্যাপিং সহ:

inoremap <expr> <key> system("uuidgen \| tr -d '\n'")

5

সন্নিবেশ মোড থেকে, আপনি আঘাত করতে পারেন Ctrl-Rএবং তারপরে টাইপ করুন:

=system('uuidgen')

দ্রষ্টব্য যে এটি একটি অনুবর্তনযোগ্য নতুন লাইন যুক্ত করবে, কারণ এটাই ফলাফল uuidgen; এটি ঠিক করতে, আমরা ব্যবহার করতে পারি:

=system('uuidgen')[:-2]

নিউলাইন সরানোর জন্য।

থেকে :help i_CTRL-R:

একটি নিবন্ধের বিষয়বস্তু সন্নিবেশ করান। সিটিআরএল-আর এবং দ্বিতীয় অক্ষর টাইপ করার মধ্যে '' 'প্রদর্শিত হবে যাতে আপনি একটি রেজিস্টারের নাম প্রবেশ করানো আশা করেন।

[..]

'=' এক্সপ্রেশন রেজিস্টার: আপনাকে একটি এক্সপ্রেশন প্রবেশের অনুরোধ জানানো হবে (এক্সপ্রেশন দেখুন)

Ctrl-uআপনার উদাহরণটি পছন্দ করতে এটি আবদ্ধ করতে আপনি ব্যবহার করতে পারেন:

nnoremap <C-u> i<C-r>=system('uuidgen')[:-2]<CR><Esc>

2

আরও একটি, সাথে :python:

:py import uuid, vim; vim.command(':normal i' + str(uuid.uuid1()))

আপনি এই হিসাবে মানচিত্র করতে পারে:

:inoremap <key> <esc>:py import uuid, vim; vim.command(':normal a' + str(uuid.uuid1()))<cr>a

ইউআইডিগুলি পাইথন ইউইউডি মডিউল দ্বারা উত্পাদিত হয় ।


1
যদিও এটি যাওয়ার পরিবর্তে একটি বাঁকানো উপায়।
মুরু

0

খাঁটি-ভিএম সমাধান ব্যবহারের চেয়ে এটি সম্ভবত কম পছন্দনীয়, তবে আপনি যদি আলটিসনিপসের মতো স্নিপেট ম্যানেজার ব্যবহার করেন তবে নীচের মতো স্নিপেট যুক্ত করার চেষ্টা করতে পারেন :

snippet uuid "insert new uuid" w
`uuidgen`
endsnippet

এইভাবে আপনি uuidসন্নিবেশ-মোডে আপনার প্রসারিত ট্রিগারটি টাইপ করতে এবং আঘাত করতে পারেন এবং uuidপ্রাসঙ্গিক শেল কমান্ডের আউটপুট সঙ্গে প্রতিস্থাপন করা হবে। এটি অবশ্যই অন্যান্য কমান্ডের জন্য সহজেই মানিয়ে নেওয়া যায় এবং আলটিসনিপস ডক্সে বর্ণিত শক্তিশালী উপায়ে এটি প্রসারিত করা যায়।

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