সিস্টেম ক্লিপবোর্ডে কোনও পাঠ্যের ব্লক অনুলিপি করার কোনও উপায় আছে, তাই আমি এটি অন্য প্রোগ্রামে পেস্ট করতে পারি?
cpip
, cpi{
।
সিস্টেম ক্লিপবোর্ডে কোনও পাঠ্যের ব্লক অনুলিপি করার কোনও উপায় আছে, তাই আমি এটি অন্য প্রোগ্রামে পেস্ট করতে পারি?
cpip
, cpi{
।
উত্তর:
জন্য ব্যবহারে X11 ভিত্তিক ব্যবস্থা (। অর্থাত লিনাক্স এবং অন্যান্য অধিকাংশ ইউনিক্স -একটি সিস্টেম) দুটি clipboards যা অপরের স্বাধীন আছেন:
^C
এবং এটি পেস্ট করা হয় ^V
(এটি এমএস উইন্ডোজের মতো)।ওএস এক্স এবং উইন্ডোজ সিস্টেমে কেবল একটি ক্লিপবোর্ড রয়েছে।
এক্স 11 সিস্টেমের জন্য এমন অনেকগুলি সরঞ্জাম রয়েছে যা আপনার জন্য এই ক্লিপবোর্ডগুলি সিঙ্ক্রোনাইজ করে; সুতরাং তারা যদি একইরূপে উপস্থিত হয় তবে আপনার মধ্যে একটি চালানো হতে পারে।
এই ক্লিপবোর্ডগুলির সাথে সম্পর্কিত ভিমের দুটি বিশেষ রেজিস্টার রয়েছে:
*
প্রাথমিক ব্যবহার করে; স্মৃতিসম্বন্ধীয়: এস আলকাতরা হয় এস নির্বাচিত (জন্য কপি-অন এর নির্বাচিত)+
ক্লিপবোর্ড ব্যবহার করে; স্মৃতিচারণ: সিটিআরএল প্লাস সি (সাধারণ কীবাইন্ডের জন্য)উইন্ডোজ ও ওএস এক্স-তে +
এবং এর মধ্যে কোনও পার্থক্য নেই *
, যেহেতু এই সিস্টেমে কেবলমাত্র একটি ক্লিপবোর্ড রয়েছে, এবং উভয়ই রেজিস্টার একই জিনিসকে বোঝায় (আপনি কোনটি ব্যবহার করেন তা বিবেচ্য নয়)।
আপনি এই রেজিস্টারগুলিকে যেকোন নিবন্ধক হিসাবে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, প্রাইমারি ক্লিপবোর্ডটি ব্যবহার *
করে y
এবং p
কমান্ডগুলি:
"*yy
"*p
আপনি এটি আরও সুবিধাজনক কীবাইন্ড হিসাবে ব্যবহার করতে পারেন:
noremap <Leader>y "*y
noremap <Leader>p "*p
noremap <Leader>Y "+y
noremap <Leader>P "+p
আপনি যদি সমস্ত সময় ম্যানুয়ালি উল্লেখ না করে সিস্টেমের ক্লিপবোর্ডের সাথে "স্বয়ংক্রিয়ভাবে" ইন্টারফেসটি চান, আপনি clipboard
ভেরিয়েবলটি সেট করতে পারেন :
unnamed
ব্যবহার করতে সেট করুন *
(নির্বাচনের উপর PRIMARY)unnamedplus
ব্যবহারের জন্য সেট করুন +
(ক্লিপবোর্ড, ^C
)এখন, কেবল ব্যবহার করেই yy
ভিমের নামবিহীন নিবন্ধের পরিবর্তে p
সিস্টেমের ক্লিপবোর্ডে যাবে এবং সিস্টেমের ক্লিপবোর্ডটি আটকানো হবে।
আপনি এই নিবন্ধগুলিতে ঠিক যেমন নিবন্ধের সাথে নিযুক্ত করতে পারেন let
:
:let @+=42
:let @*=42
clipboard
সেটিং (যেমন ফিল্টার বাদ হিসাবে) আরো কিছু অপশন আছে; তবে এগুলি বেসিক। :help 'clipboard'
সম্পূর্ণ গল্পের জন্য দেখুন ;-)
আপনি যদি জিভিআইএম ব্যবহার করেন, আপনি ব্যবহার করার সময় অনুলিপি-অনুলিপি ব্যবহার করতে পারেন
:set guioptions+=a
।
এই ব্যবহারে X11 সিস্টেম, কিন্তু (প্রাথমিক থেকে কপি) ডিফল্টরূপে সক্রিয় করা হয় না (যে কোন টেক্সট আপনার ক্লিপবোর্ডে ওভাররাইড হবে নির্বাচন হিসাবে) মাইক্রোসফট উইন্ডোজ & ওএসএক্স উপর।
+clipboard
?এর যে +clipboard
কোনও একটির কাজ করার জন্য ভিমের বৈশিষ্ট্যযুক্ত পতাকা প্রয়োজন ; আপনার ভিমে ভিমের :echo has('clipboard')
মধ্যে থেকে এটি ব্যবহার করে তা পরীক্ষা করতে পারবেন (যদি আউটপুট হয় 0
, এটি উপস্থিত না , যদি হয় তবে 1
তা হয়), বা এর vim --version
জন্য আউটপুট পরীক্ষা করে
+clipboard
।
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনগুলি ডিফল্টরূপে "ন্যূনতম" ভিম বিল্ড সহ প্রেরণ করে, যা নেই +clipboard
তবে আপনি সাধারণত এটি ইনস্টল করতে পারেন:
vim-gtk
বা vim-gnome
।vim-X11
এবং ( আরও তথ্য ) এর vimx
পরিবর্তে চালান ।vim
gvim
(এটি +clipboard
স্বাভাবিকের vim
জন্যও সক্ষম করবে )।এছাড়াও আপনি ব্যবহার করতে পারে xclip
, xcopy
অথবা xsel
পাঠ্যটি ক্লিপবোর্ডে অনুলিপি করা; সমাধানের জন্য নিম্নলিখিত প্রশ্নগুলি দেখুন:
আপনি যদি এসএসএইচের মাধ্যমে এক্স 11 ফরোয়ার্ডিং সক্ষম করেন তবে আপনি রিমোট মেশিনে একটি ক্লিপবোর্ডও ব্যবহার করতে পারেন। এটি আপনার উপরের টিপটির সাথে বিশেষত কার্যকর কারণ আপনি xclip
আপনার ডেস্কটপের ক্লিপবোর্ডটি অ্যাক্সেস করতে ব্যবহার
করতে পারেন। আপনি যে মেশিনে ssh-ing করছেন তার ভিমটির জন্য এখনও +clipboard
বৈশিষ্ট্যটির প্রয়োজন হবে ।
এটির জন্য ForwardX11Trusted
সেটিংস প্রয়োজন এবং এটি কেবলমাত্র বিশ্বস্ত সার্ভারগুলির সাথে সম্পন্ন করা উচিত , কারণ এটি সার্ভারটিকে আপনার এক্স 11 সেশনে প্রায় সম্পূর্ণ নিয়ন্ত্রণ দেয়:
$ ssh -XY myhost
এই সেটিংসকে অবিচ্ছিন্ন করতে (যাতে আপনার -XY
প্রতিবার যুক্ত করার দরকার নেই ), আপনি নিজের কিছুতে এটি করতে পারেন ~/.ssh/config
:
# Do **NOT** set this globally; it gives the server complete control over
# your X11 session.
Host myhost
ForwardX11 yes
ForwardX11Trusted yes
নিওভিম ক্লিপবোর্ড সমর্থনটি নতুনভাবে তৈরি করেছে। বিল্ট-ইন ইন্টারফেস মুছে ফেলেছি এবং একটি সিস্টেম যে এই ধরনের মত কোনো বাহ্যিক ইউটিলিটি কল প্রতিস্থাপন করা হয়েছে xclip
, xsel
অথবা
pbcopy
/ pbpaste
।
এটি স্বয়ংক্রিয়ভাবে এই ইউটিলিটিগুলি গ্রহণ করে এবং সেগুলি ব্যবহার করা উচিত। OS X এর উপর pbcopy
এবং pbpaste
ডিফল্ট দ্বারা উপলব্ধ হওয়া উচিত, লিনাক্স আপনি সম্ভবত ইনস্টল করতে চান xclip
, যে হিসাবে বহুল উপলব্ধ (সেখানে আসলে দুই
সংস্করণ xsel
সঙ্গে বেমানান পতাকা । এই সত্যিই মূঢ়)।
আরো দেখুন :help clipboard
Neovim হবে।
"<Space>
একটি পেতে টিপতে হতে পারে "
। সুতরাং সেই ক্ষেত্রে আপনাকে চাপতে "<Space>+y
বা "<Space>*y
অনুলিপি করতে হবে।
"
অনেক নামকৃত নিবন্ধক নির্বাচন করতে পারে। "+
যাদু নয়, এটি কেবল নিবন্ধভুক্ত +
। সুতরাং উদাহরণস্বরূপ, আপনি একই সময়ে তিনটি বিষয় কপি এবং এক এক, আপনি পারবেন দ্বারা তাদের প্রতিটি পেস্ট করতে চান তাহলে "1y
, "2y
এবং "3y
পরে এবং "1p
, "2p
এবং "3p
। এটি অন্য যে কোনও সম্পাদকের ক্ষেত্রে সত্যই শক্তিশালী এবং অস্তিত্বহীন। আর একটি আকর্ষণীয় ব্যবহার হ'ল সঞ্চিত ম্যাক্রোগুলি। উদাহরণস্বরূপ, আপনি যদি রেকর্ড করে থাকেন qq
তবে আপনি বুঝতে পারেন যে এটি ঠিক করা দরকার, আপনি এটি করতে পারেন: একটি অস্থায়ী লাইনে "qp
, এটি ঠিক করতে এবং "qd
।
অন্যান্য উত্তরগুলি কীভাবে আপনার ক্লাসবোর্ডে আপনার বাফার থেকে পাঠ্য কপি করবেন cover অন্য একটি সাধারণ অপারেশন হ'ল ক্লিপবোর্ডে অন্য রেজিস্টার থেকে পাঠ্য অনুলিপি করা । উদাহরণস্বরূপ, আপনি যদি ইতিমধ্যে কিছু পাঠ্যকে "
ডিফল্ট (ডিফল্ট রেজিস্টারে) ইঙ্ক করে থাকেন তবে আপনি সেই নিবন্ধটি ক্লিপবোর্ডে লোড করতে চাইতে পারেন।
আপনি এটি দিয়ে এটি করতে পারেন :let
:
let @+=@"
- ক্লিপবোর্ডে ডিফল্ট রেজিস্টার অনুলিপি করেlet @*=@"
- এক্স 11 প্রাথমিক নির্বাচনে ডিফল্ট রেজিস্টার অনুলিপি করে ("মাউস ক্লিপবোর্ড")let @+=@a
- নিবন্ধ a
থেকে ক্লিপবোর্ডে অনুলিপি করুননোট করুন যে এটি সাধারণভাবে নিবন্ধকদের জন্য কাজ করে: let @a=@b
অনুলিপিগুলিতে নিবন্ধগুলি b
নিবন্ধ করুন a
।
Http://vim.wikia.com / উইকি / অ্যাক্সেসিং_ও_সিস্টেম_ক্লিপবোর্ড থেকে
set clipboard=unnamedplus
এটি ডিফল্ট ভিম রেজিস্টারকে রেজিস্টারে পরিবর্তন করে +
যা সিস্টেম ক্লিপবোর্ডের সাথে যুক্ত। থেকে :h clipboard-unnamedplus
:
clipboard-unnamedplus
unnamedplus A variant of the "unnamed" flag which uses the
clipboard register '+' (quoteplus) instead of
register '*' for all yank, delete, change and put
operations which would normally go to the unnamed
register. When "unnamed" is also included to the
option, yank operations (but not delete, change or
put) will additionally copy the text into register
'*'.
Only available with the +X11 feature.
Availability can be checked with:
if has('unnamedplus')
:version
অন্তর্ভুক্ত বৈশিষ্ট্যগুলির তালিকায় + X11 উপস্থিত হয় কিনা তা দেখতে আপনি ভিমের মধ্যে ব্যবহার করতে পারেন । আপনি যদি 'লেনদেনে না থাকেন তবে' নামবিহীন 'বৈশিষ্ট্যটি পাওয়া যায় কিনা তাও আপনি পরীক্ষা করতে পারেন :if has('unnamedplus')⏎ echo 'yes'⏎ endif
তবে আপনার নামবিহীন পরিবর্তনের পরিবর্তে আপনার নাম ব্যবহার করা উচিত।
যে বিল্ডগুলিতে এটি সমর্থন করে, তাদের নাম রেজিস্টার *
হ'ল সিস্টেম ক্লিপবোর্ড। ভিম থেকে সিস্টেম ক্লিপবোর্ডে পাঠ্য অনুলিপি করতে, আপনি ভিজ্যুয়াল মোড ব্যবহার করে পাঠ্যটি নির্বাচন করতে পারেন, তারপরে "*yএটি সিস্টেম ক্লিপবোর্ডে অনুলিপি করতে টিপুন ।
বিপরীতে, "*pসিস্টেম ক্লিপবোর্ড থেকে ভিমে টেক্সট আটকানোর জন্য ব্যবহার করুন ।
আমি আপনাকে Gvim ব্যবহার করার পরামর্শ দিচ্ছি এবং এটিতে আপনার যুক্ত করুন .vimrc
:
source $VIMRUNTIME/mswin.vim
behave mswin
এই জন্য সমর্থন সক্ষম CtrlC, CtrlX, CtrlVউইন্ডোজে নোটপ্যাড মত।
মনে রাখবেন, এই যেমন, কিছু অন্যান্য সাধারণ উইন্ডোজ শর্টকাট যোগ হবে CtrlSজন্য :w
, CtrlAসব নির্বাচন, ইত্যাদি
অন্যান্য প্রতিটি উত্তর নিবন্ধগুলি সম্পর্কিত গুরুত্বপূর্ণ বিষয়গুলি কভার করে। আমি আরও একটি জিনিস যুক্ত করতে চাই যা আমি ব্যবহার করি।
ক্লিপবোর্ডে দর্শনীয়ভাবে নির্বাচিত পাঠ্যটি সরাসরি অনুলিপি করার জন্য ভিমে একটি উপায় রয়েছে । এটি কেবল আপনার ভিএমআরসি ফাইলে রাখুন:
set guioptions+=a
এবং এর সাহায্যে যখনই আপনি দৃষ্টিভঙ্গি কোনও পাঠ্য নির্বাচন করেন এটি আপনার ক্লিপবোর্ডে অনুলিপি করা হবে। এ সম্পর্কে আরও তথ্যের জন্য,:help guioptions
বিটিডাব্লু, এটি কেবল জিভিমের জন্য।
guioptions+=a
কার্পেটসমোকারের উত্তরেও উল্লেখ করা হয়েছে।
ক্লিপবোর্ডে কিছু নির্দিষ্ট প্যাটার্ন রাখতে আপনি একটি বিশ্বব্যাপী কমান্ডও ব্যবহার করতে পারেন। এটি এমন পরিস্থিতিতে কার্যকর হতে পারে যেখানে আপনার কোনও ফাইলের মধ্যে তথ্য ছড়িয়ে ছিটিয়ে থাকে এবং ম্যানুয়ালি মোকাবেলা করা ত্রুটি এবং ক্লান্তির ঝুঁকিতে থাকে।
প্রথমে যে রেজিস্টারটি তথ্য পাবেন তা পরিষ্কার করুন
:let @a=""
তারপরে এটিতে প্যাটার্নযুক্ত সমস্ত লাইন অনুলিপি করুন
:g/pattern/yank A
পরিশেষে সিস্টেম ক্লিপবোর্ডে তথ্য ট্রান্সফারিং (অনুলিপি করা)
:let @+=@a
যদি আপনি ক্লিপবোর্ডে "প্যাটার্ন" যুক্ত প্রতিটি লাইন সরাসরি অনুলিপি করার চেষ্টা করেন তবে এটি কাজ করবে না কারণ ক্লিপবোর্ডে নতুন বিষয়বস্তু সংযোজন করার ক্ষমতা নেই, সুতরাং আমরা এখানে থাকা সমস্ত লাইন সঞ্চয় করতে একটি সাধারণ ভিআইএম রেজিস্টার ব্যবহার করছি প্যাটার্ন একবারে এবং তারপরে এটি ক্লিপবোর্ডে রেখে দেওয়া।
ওবিএস: এটি ব্যবহারের আগে এটি রেজিস্টারকে ক্লাইং করা প্রয়োজনীয়, এবং নিবন্ধের UPPERCASE সংস্করণ ব্যবহার আমাদের বিষয়বস্তু সংযোজন করতে দেয়, অন্যথায় এটিও কাজ করবে না।
যদি আপনি কীভাবে কাজ করতে হয় তা বুঝতে না পারছেন +clipboard
, যা আমি কোনও কারণে করতে পারি না, তবে আপনি এটি করতে পারেন।
ধরে নিচ্ছি আপনি কেবল ফাইলের একটি বিভাগ অনুলিপি করতে চান, আমি shift
+ v
ভিজ্যুয়াল মোডে যেতে এবং আমি যে লাইনগুলি অনুলিপি করতে চাই তা কেবল হাইলাইট করি। তাহলে আমি এই কাজ।
# Linux Wayland
:'<,'>w !wl-copy
# Linux Xorg
:'<,'>w !xclip -selection clipboard
ব্যাখ্যা
'<,'>
- এর অর্থ আপনি কোনও পরিসর নির্বাচন করতে ভিজ্যুয়াল মোড ব্যবহার করেছেন (আপনি এটি টাইপ করেন না)w !{cmd}
- এর স্টিডিনে ব্যাপ্তি লিখুন cmd
, আরও দেখুন:help w_c
wl-copy
এবং xclip
এমন প্রোগ্রাম যা আপনি পাঠ্যটি পাইপ করতে পারেন এবং তারা এটি আপনার সিস্টেম ক্লিপবোর্ডে যুক্ত করবেএছাড়াও, এটি একবার আপনার ইতিহাসে আসার পরে আপনাকে আবার পুরো জিনিসটি টাইপ করতে হবে না। কেবল ভিজ্যুয়াল মোডের সাহায্যে নির্বাচন করুন, w
তারপরে টাইপ করুন এবং কমান্ডটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ হবে। এছাড়াও, এছাড়াও, আপনাকে ভিজ্যুয়াল মোড ব্যবহার করতে হবে না। আপনি যা চান সীমা সেট করতে পারেন।