সেট মাউস = একটি সক্ষম দ্বারা ভিমের বাইরে পাঠ্য অনুলিপি করা


232

সক্ষম করার পরে set mouse=a, ভিমের ভিতরে অনুলিপি করা পাঠ্যটি ভিমের বাইরে আটকানো যাবে না। এটিকে ঠিক করার কোনও উপায় কি কেউ জানেন?

এখানে, মাউসের সাহায্যে পাঠ্য নির্বাচন করা ভিজ্যুয়াল মোডটি চালু করে এবং Copyপপআপ মেনুতে বিকল্পটি অক্ষম করে :

এখানে চিত্র বর্ণনা লিখুন


2
যদি আপনার ভিআইএম এর সাথে সংকলিত হয় +clipboardএবং mouse=aআপনি টার্মিনাল পপআপ মেনুটি ব্যবহার না করেই ভিএম থেকে / থেকে কপি / পেস্ট করতে সক্ষম হবেন। আপনি clipboardসক্ষম করতে সক্ষম কিনা তা পরীক্ষা করতে পারেন vim --version
জেরুমে পিলার

@ জেজ ওয়ার্থ স্পষ্ট করে জানিয়েছে যে ক) mouse=aএটি ভিএমআরসি বি-তে কোনও সংকলনের বিকল্প নয়) এটি যখন উইম সংকলন করা হয়েছিল তখন +clipboardআপনাকে অনুলিপি করার সময় অনুলিপি / পেস্ট করার অনুমতি দেয় :set numberএবং নম্বরগুলি অনুলিপি / আটকানো ছাড়াই, যদিও আপনাকে এখনও কিছু করতে হবে ম্যাপিংস সি) একজনকে নিজের ভিআইএম পুনরায় সংকলন করতে হবে না, এটি কোনও প্যাকেজ ম্যানেজারের মধ্যে ওএস দ্বারা সমর্থিত কোনও ভিএম-এ থাকতে পারে osঅক্সে, ব্রাকের ভিমে এটি রয়েছে যদিও ওএসএক্সের ডিফল্ট ভিমে না। আমার উত্তরটি এই পুনরায় অসম্পূর্ণটির উল্লেখ করে।
বার্লোপ

সম্ভবত xselআপনার জন্য কাজও ইনস্টল হয়ে যায়, আপনি সম্পাদক বা মাউস দিয়ে পাঠ্য নির্বাচন করতে পারেন ctrl+cএবং নিওভিমের জন্য পাঠ্যটি অনুলিপি করতে হিট করতে পারেন, github.com/neovim/neovim/issues/7945#issuecomment-361970165
বাঘি

উত্তর:


425

shiftমাউসটি নির্বাচন করার সময় টিপুন । এটি মাউস নির্বাচনকে এমনভাবে আচরণ করবে যাতে mouse=aসক্ষম করা হয়নি।

দ্রষ্টব্য: এই কৌশলটি "মিডল বোতাম পেস্ট" এর ক্ষেত্রেও প্রযোজ্য: আপনি যদি বাইরে নির্বাচিত ভিএম টেক্সটে পেস্ট করতে চান shiftতবে মাঝের বোতামটি ক্লিক করার সময় টিপুন। আপনি যখন এটি করেন তখন সন্নিবেশ মোডটি সক্রিয় হয়ে গেছে তা নিশ্চিত করুন (আপনি :set pasteঅপ্রত্যাশিত প্রভাবগুলি এড়াতেও চাইতে পারেন )।

ওএস এক্স (ম্যাক): ( উত্স ) নির্বাচন করার সময় Alt / বিকল্পটি ধরে রাখুন


2
ঠিক আছে, এটি আসলে সমাধান। তবে আপনি যদি আপনার স্ক্রিনের চেয়ে অনেক বেশি কোড নির্বাচন করতে চান তবে? (তারপরে আপনাকে স্ক্রোল করতে হবে এবং একই সাথে নির্বাচন করতে হবে)
ওজকান

3
ব্লক নির্বাচন শুরু করার জন্য <kbd> ctrl </kbd> + <kbd> শিফট </ কেবিডি> + বাম মাউস বোতাম টিপে ব্লক নির্বাচন ব্যবহার করার বিকল্প রয়েছে। মাউস মাঝের বোতামটি অনুলিপি করা সামগ্রীটি অন্য উইন্ডোতে আটকায়।
মাইক্রব

6
আপনার যদি লাইন নম্বর থাকে (যেমন স্ক্রিনশটটি দেখায়) তবে ম্যাক ওএস এক্সে ALT ব্যবহার করার সময় লাইন নম্বরগুলিও অনুলিপি করা হয়। এই ক্ষেত্রে ব্লক সিলেকশন মোডের জন্য নির্বাচন করার সময় ALT + CMD ব্যবহার করা ভাল, যাতে আপনি সংখ্যা নির্বাচন করা এড়াতে পারেন।
হারুন

16
ওএস এক্স 10.11 এল ক্যাপিটানের পরে ম্যাক টার্মিনালের জন্য , Fnকীটি যাওয়ার সঠিক উপায়। অর্থ্যাৎ ( mouse=aসক্ষম সহ) Fnকী টিপানোর সময় পাঠ্য নির্বাচন করুন , তারপরে আপনি যেখানেই চান অনুলিপি করতে এবং কাস্ট করতে সিএমডি + সি ব্যবহার করুন।
ইয়াওজি

1
আমি জানিনা কীভাবে এই উত্তরটির এতগুলি উত্সাহ রয়েছে। আপনি যদি লাইন নম্বরগুলি অনুলিপি করতে এড়াতে মাউস সমর্থন সক্ষম করে থাকেন তবে এই পরামর্শটি সম্পূর্ণ অকেজো।
স্টিলিওস অ্যাডামেন্টিডিস

49

ব্যবহারের ", +, yএকটি চাক্ষুষ নির্বাচন করার পর। আপনার কোনওভাবেই টার্মিনালের অনুলিপি আদেশ ব্যবহার করা উচিত নয়, কারণ এটি প্রকৃত সামগ্রীর পরিবর্তে টার্মিনালটি যা দেখায় তা অনুলিপি করে। এটি যা করে তা এখানে:

  • ", ভিমকে পরের মুছে ফেলা, ইয়াঙ্ক বা পুটের জন্য +নামের রেজিস্টারটি ব্যবহার করতে বলে +। নামের রেজিস্টারটি +একটি বিশেষ রেজিস্টার, এটি এক্স 11 ক্লিপবোর্ডের নিবন্ধ। (অন্যান্য সিস্টেমে আপনি এর *পরিবর্তে ব্যবহার করবেন , আমার ধারণা, দেখুন :help clipboardএবং :help x11-selection)
  • y ইয়াঙ্ক কমান্ড, যা ভিমকে পূর্বের নাম রেজিস্টারে নির্বাচন করতে বলে tells

আপনি এটির মতো এটি মানচিত্র করতে পারেন:

:vmap <C-C> "+y

এবং তারপরে মাউস দিয়ে কিছু হাইলাইট করুন এবং Control-Cএটি অনুলিপি করতে টিপুন ।

এই বৈশিষ্ট্যটি কেবল তখনই কার্যকর হয় যখন ভিম +xterm_clipboardবিকল্পের সাথে সংকলিত হয় । vim --versionএটি আছে কিনা তা জানতে ছুটে যান।


4
অথবা সম্ভবত "*yওএসের উপর নির্ভর করে।
উদ্ভট

যে কাজ! যাইহোক, সংমিশ্রণটি বেশ জটিল, 4 টি বোতাম আসলে .. সম্ভবত অন্য উত্তর থেকে "শিফট" উপায় ব্যবহার করার সময় আমার অন্য একটিটি মানচিত্রের প্রয়োজন।
লুবা

ম্যাপিংও পুরোপুরি সূক্ষ্মভাবে কাজ করে :) এখন আমি জানি না আপনি
বললে আপনার উত্তরগুলির মধ্যে কোনটি

2
আমার জন্য এটি গৃহীত উত্তরের চেয়ে ভাল সমাধান কারণ এই পদ্ধতির সাথে লাইন সংখ্যা অনুলিপি করা হয় না।
সাওলো সিলভা

কি হবে +clipboard? এবং বন্ধ +clipboardসঙ্গে কি xterm_clipboard?
বার্লোপ

18

পরিবর্তে .vimrc এ set mouse=aব্যবহার করুনset mouse=r


1
তবে এটি স্ক্রোলিং অক্ষম করে
মাকেশ

3
কেন বলুন। এক নজরে, এটি মূলত সম্পূর্ণরূপে মাউস মোড অক্ষম করার সমান বলে মনে হচ্ছে, যা প্রশ্নের মূল বিষয় নয়।
মাইকেল

@ মাইকেল ঠিক আছে, আমার উত্তরটিও দেখুন জোশ লির উত্তর সাহায্য করতে পারে
বার্লপ

দুর্ভাগ্যক্রমে, লাইন নম্বরগুলি সক্ষম করা থাকলে এটিও অনুলিপি করবে।
vikin9

17

ওএসএক্স এর fnপরিবর্তে ব্যবহার করুন shift


সঙ্গে আমার জন্য কাজ optionকী যা altMacOS এর হোস্ট কী সমতুল্য। যদিও এটি ডেবিয়ান 9 এ রিমোট টার্মিনাল ছিল। রিমোটে set mouse=a/ set mouse=rইন উভয় যোগ করে কাজ করেনি /etc/vim/vimrc
mrtipale

5

উবুন্টুতে, শিফট কীটি ব্যবহার করে প্রচ্ছদ হওয়া পাঠ্যে ভিআইএম (সিটিআরএল-শিফট-সি এবং সিআরটিএল-শিফট-ভি) এর ভিতরে এক্স-টার্ম কপি এবং পেস্ট বাইন্ডিংগুলি ব্যবহার করা সম্ভব।


4

অপর একটি ওএসএক্স-ম্যাক বিকল্পটি আনচেক করা View->Allow Mouse Reporting(বা এটি টগল করার জন্য press-R টিপুন)) এটি আপনাকে মাউস ইন্টারঅ্যাকশন এবং মাউস নির্বাচনের মধ্যে টগল করতে দেয় যা কিছু বিট নির্বাচন করার সময় এবং কপি / পেস্ট করার সময় কার্যকর হতে পারে কারণ আপনার কাছে নেই এটি করার জন্য একটি পরিবর্তনকারী কী ধরে রাখা।

লাইন নম্বর সহ মাল্টলাইনের জন্য নোট:

আমার সাধারণত লাইন নম্বর সক্ষম থাকে তাই আপনি একাধিক লাইন নির্বাচন করলে এটি লাইন নম্বরগুলিও অনুলিপি করবে। আপনি যদি লাইন নম্বরগুলি ছাড়াই একাধিক লাইন অনুলিপি করতে চান তবে নম্বরগুলি অক্ষম করে :set nonuএবং তারপরে :set nuঅনুলিপি করার পরে আপনি তাদের পুনরায় সক্ষম করতে পারেন ।


1

:set mouse&মাউস ব্যবহার করে নির্বাচিত পাঠ্যের অনুলিপি / পেস্ট সক্ষম করতে আপনি ভিএম কমান্ড লাইনে ব্যবহার করতে পারেন । এরপরে আপনি কেবল মাঝারি মাউস বোতামটি ব্যবহার করতে বা shiftinsertএটি আটকে দিতে পারবেন।


তারপরে আপনি যখন :set numberএটি হাইলাইট সংখ্যা। তাই খুব ভাল না। সুতরাং আপনি দ্বারা করা set mouse=a
ভালটি

1

ভিআইএম সংকলিত সংকলন সেটিংস এই সমস্যার অংশ part vim --versionএগুলি দেখায়।

ওএসএক্সে, ডিফল্ট ভিমে রয়েছে -clipboard তবে আপনার প্রয়োজন+clipboard

অসক্সে আপনি এবং আপাতদৃষ্টিতে সাধারণত ম্যাকভিম ব্যবহার করতে পারেন। আপনি কি করতে পারেন brew cask install macvim এক হয়েছে যে +clipboard

তাদের আপনার দুটি vims হবে।

~$ ls -l /usr/bin/vim   <--- default vim
-rwxr-xr-x  1 root  wheel  1745984 15 Jul  2017 /usr/bin/vim

~$ ls -l /usr/local/bin/vim   <-- macvim, installed recently via that mentioned brew line. 
lrwxr-xr-x  1 apple  admin  42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$ 

ভিম চালানো ম্যাকভিম চালাবে ' পথে /usr/local/binআগে হওয়া উচিত /usr/bin, যদিও আপনি এটি পরীক্ষা করে দেখতে পারেন which vim

চলমান ভিম (ম্যাকভিম চালাতে), ঠিক আছে তবে আপনি ম্যাকভিমকে vi মানচিত্র করতে চাইতে পারেন অন্যথায় ভিআই চলমান ডিফল্ট ভিমে থাকে! আপনি পুনরায় লিখতে বা মুছতে (আরএম দিয়ে) এবং ভিএন সিম লিঙ্কটি পুনরায় তৈরি করতে পারেন, এলএন দিয়ে। এবং যে ছাড়া একটি 'অপারেশন না "ত্রুটি অনুমতি, আপনি (অস্থায়ীভাবে) নিষ্ক্রিয় নেয়া হয়েছে SIL আছে না। Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- চুমুক aka-অমূল-অন-MacOS-OS-X

ম্যাকভিম +clipboardযেমন দেখিয়েছেvim --version

এখানে ~/.vim/vimrcকেবল প্রয়োজনীয় লাইনগুলির সাথে কাজ করা হচ্ছে ।

:set mouse=a
:map <leader>c "+y
:map <leader>v "+p

ডিফল্ট লিডার কী ব্যাকস্ল্যাশ।

আমি একটি পরামর্শ পড়েছি যে একজনকে লিডার কী ব্যবহার করা উচিত .. (অবশ্যই নিয়ন্ত্রণের অনেকগুলি কী ইতিমধ্যে ব্যবহৃত রয়েছে, তাই পরামর্শটি নিয়ন্ত্রণ ব্যবহার না করা ছিল I এটি কমান্ড কীতেও প্রযোজ্য কিনা তা আমি জানি না, তবে যাইহোক)।

উল্লিখিত ম্যাপিংয়ের সাহায্যে, ক্লিপবোর্ডে + হিসাবে পরিচিত নিবন্ধ থেকে অনুলিপি \cকরবে do "+yএবং\v + হিসাবে পরিচিত নিবন্ধ থেকে পেস্ট করবে।

সুতরাং এটি একটি অনুলিপি / পেস্ট যা উইন্ডোগুলির মধ্যে কাজ করে।

"*পরিবর্তে অন্য কোনও ওএসের প্রয়োজন হতে পারে"+


উভয় ভিম আছে -xterm_clipboard। হয়তো +xterm_clipboardএটি কোনও উপায়ে উপকারী হবে তবে এই সমাধানের সাথে এটি কোনও বিষয় নয়।
বার্লোপ

0

আপনি যদি পুট্টি সেশন ব্যবহার করছেন তবে তা স্বয়ংক্রিয়ভাবে নির্বাচনটি অনুলিপি করে। যদি আমরা ভিমে "সেট মাউস = এ" বিকল্পটি ব্যবহার করি তবে শিফট + মাউস টানা ব্যবহার করে পাঠ্যটি স্বয়ংক্রিয়ভাবে নির্বাচন করা হয়। এক্স-টার্মে চেক করা দরকার।


0

ইম ... Shiftটিপতে থাকুন এবং তারপরে ডান মাউস বোতামটি ক্লিক করুন


0

আমি ঘটনাক্রমে কীভাবে স্যুইচ অফ set mouse=aকরব তা ব্যাখ্যা করেছি , যখন আমি প্রশ্নটি পুনরায় পাঠ করি এবং জানতে পারি যে ওপি প্রথম স্থানে এটি স্যুইচ অফ করতে চায় না। যাইহোক যে কেউ মাউসকে ( set mouse=) কেন্দ্রীয়ভাবে কীভাবে স্যুইচ করতে হয় তার জন্য , আমি আমার উত্তরের একটি রেফারেন্স এখানে রেখেছি: https://unix.stackexchange.com/a/506723/194822


0

অনুলিপি করার সময় শিফট হোল্ডিং এবং নির্বাচনের সাথে আটকানো আমার পক্ষে কাজ করেছিল


এটিই গ্রহণযোগ্য উত্তর বলে। একজন ব্যবহারকারীকে ধন্যবাদ জানাতে - একবার আপনার এই খ্যাতি পেলে আপনি তাদের পোস্টটি আপগেট করতে সক্ষম হবেন।
ওয়াই হা লি

0

set clipboard=unnamedআপনার যোগ করুন .vimrc। সুতরাং এটি সমস্ত ইয়াঙ্কের জন্য নামবিহীন নিবন্ধের পরিবর্তে ক্লিপবোর্ড রেজিস্টার '*' ব্যবহার করবে, মুছুন, পরিবর্তন করুন এবং অপারেশন করুন (নোট এটি কেবল মাউসকেই প্রভাবিত করে না)।

'*' নিবন্ধকের আচরণ আপনার প্ল্যাটফর্ম এবং কীভাবে আপনার vimসংকলন করা হয়েছে (বা আপনি যদি ব্যবহার করেন তবে) তার উপর নির্ভর করেneovim ) ।

যদি এটি কাজ না করে, আপনি চেষ্টা করে দেখতে পারেন set clipboard=unnamedplus, তবে এই বিকল্পটি কেবল এক্স 11 সিস্টেমে উপলব্ধি করে।


-3

ইসি মোডে, মাউস = এ সেট করার সময়, মাউস ব্যবহার করে পাঠ্যটি নির্বাচন করুন। এটি ভিআইএম মধ্যে ভিজ্যুয়াল মোড সক্ষম করবে। তারপরে আপনি নির্বাচিত পাঠ্যটি ইয়াঙ্ক করতে 'y' টিপুন এবং আপনি যেখানে চান সেখানে এটিকে আটকানোর জন্য 'p' টিপুন। এটি কেবল ভিএম এর মধ্যেই ঘটে।


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