সন্নিবেশ মোডে আটকান?


উত্তর:


465

সন্নিবেশ মোডে থাকার সময় CTRL-R {register}

উদাহরণ:

  • CTRL-R * ক্লিপবোর্ডের বিষয়বস্তু inোকানো হবে
  • CTRL-R " (নামবিহীন নিবন্ধক) সর্বশেষ মুছুন বা ইয়াঙ্ক সন্নিবেশ করান।

এটি ভিএম এর সাহায্যের ধরণে খুঁজে পেতে :h i_ctrl-r


13
হ্যাঁ, আমি সম্প্রতি সিটিআরএল-আর শিখেছি এবং এটি অত্যন্ত কার্যকর।
ড্যান

16
CTRL-R *শুধুমাত্র জিভিআইএম বা সংস্করণগুলিতে কাজ করে যা এক্সের সাথে ইন্টারেক্ট করার জন্য সংকলিত। টাইপ vim --versionএবং সন্ধান করুন +xterm_clipboard। আপনার যদি তা না থাকে তবে আপনার ভিএম এর ভিন্ন সংস্করণ দরকার। ( vim.wikia.com
উইকি /

10
আপনার কেবলমাত্র প্রয়োজন +clipboard, তবে আপনার যদি এটি থাকে তবে তা +xterm_clipboardআপনার উচিত। কিছু ওএস প্রয়োগ xterm_clipboardহয় না।
অ্যান্ড্রু মার্শাল

1
হুম, আমি উইন্ডোজের সিস্টেম ক্লিপবোর্ড থেকে পেস্ট করতে সি-আর + ব্যবহার করি (জিভিম পোর্টেবল ব্যবহার করে)? রেজিস্টারের কথা কখনও শুনিনি।
kitsu.eb

6
@ কিটসু.ইবি অন সিস্টেমের *রেজিস্টার মাঝারি মাউস-ক্লিকের +সাথে গতানুগতিক যখন প্রথাগত অনুলিপি / পেস্ট হয়। standards.freedesktop.org/clipboards-spec/clipboards-latest.txt
AMC

234

আপনি তেজ পাঠ্য আটকানো ইনকামিং এ বিন্যাস কাপড় ইস্ত্রী করা চাই না, তাহলে আপনি ব্যবহারের বিষয়ে বিবেচনা করতে চাইতে পারেন: :set paste। এটি ভিমকে আপনার কোডটি পুনরায় ট্যাব করতে বাধা দেবে। আটকানো হয়ে গেলে, :set nopasteস্বাভাবিক আচরণে ফিরে আসবে।

set pastetoggle=<F2>আপনার .vimrc তেমন কিছু যুক্ত করে একটি একক কী দিয়ে মোডটি টগল করাও সম্ভব । টগলিং অটো-ইনডেন্ট সম্পর্কিত আরও বিশদ এখানে


47
:set nopasteপেস্ট মোডটি অক্ষম করবে
জেমস স্নাইডার

24
@ জেমস স্নাইডার একটি আরও ভাল উপায় :set paste!সম্ভবত সেট করা যেতে পারে আপনার কমান্ডের ইতিহাসে পেস্টটি খুব কাছাকাছি থাকে, তাই আপনি কেবল ':' টিপুন, তারপরে তীর-আপ এবং একটি '!' যুক্ত করুন।
রাফায়েল বারবোসা

6
কেবল কৌতূহলী - :set paste! ধন্যবাদ সম্পর্কে আরও ভাল বা আলাদা কি আছে :)
মাইকেল ডুরান্ট

32
!কমান্ড শেষে vimটগল এবং বন্ধ কমান্ড। এর :set nopasteপরিবর্তে আপনাকে টাইপ করতে হবে না আপনি নিজের ইতিহাসটি স্ক্রোল করে :set paste!আবার একই কমান্ডটি চালাতে পারবেন ( )।

3
@ ব্লকলুপ আপনি এটি পেস্ট করার সময় এটি সক্ষম করার কথা বলবেন এবং ঠিক পরে এটি অক্ষম করুন।
নিডজেজেকোব

125

সরাসরি না। আপনি যা করতে পারেন তা হ'ল দ্রুত কোনও একক সাধারণ মোড অপারেশনের জন্য সন্নিবেশ মোডে প্রস্থান করুন Ctrl-Oএবং তারপরে সেখান থেকে পেস্ট করুন যা আপনাকে প্রবেশের মোডে ফিরিয়ে রেখে শেষ হবে।

কী কম্বো: Ctrl-O p

সম্পাদনা: আকর্ষণীয়। এটি প্রদর্শিত হয় যে আরও বেশ কয়েকটি লোক তালিকাভুক্ত করার মতো একটি উপায় রয়েছে।


2
ctrl-r "আমার পক্ষে কাজ করে না (ওএস এক্স, টার্মিনালে vi) c ctrl-o p করেছে।
বব

4
এটি মনে রাখা সবচেয়ে দ্রুত এবং সহজ উপায়।
পিনপক্স

কি হবে esc + p?
স্যাটেলিজ

2
এর চেয়ে অবশ্যই বেশি দ্রুত esc + p + iএবং স্পষ্টভাবে টাইপ করা সহজCTRL-R + "
লুসিডব্রোট

আসলে, এটি কখনও কখনও থেকে পৃথক আচরণ করে CTRL-R "। উদাহরণস্বরূপ, যদিও ভিএমআরসি সেটিংস এটি পরিবর্তন করতে পারে তবে নতুন লাইনে কিছু আটকানো তার প্রবর্তনকে CTRL-O pদূরে সরিয়ে দেয়।
noname

30

সন্নিবেশ মোডে থাকাকালীন আপনি ব্যবহার করতে পারেন Ctrl-R {register}, যেখানে নিবন্ধক হতে পারে:

  • + ক্লিপবোর্ডের জন্য,
  • * এক্স ক্লিপবোর্ডের জন্য (এক্সে সর্বশেষ নির্বাচিত পাঠ্য),
  • " নামবিহীন নিবন্ধের জন্য (সর্বশেষে মুছুন বা ভিমে ইয়ঙ্ক),
  • বা অন্য একটি সংখ্যা (দেখুন :h registers)।

Ctrl-R {register} পাঠ্যটি সন্নিবেশ করান যেন এটি টাইপ করা থাকে।

Ctrl-R Ctrl-O {register} মূল ইনডেন্টেশন সহ পাঠ্য সন্নিবেশ করান।

Ctrl-R Ctrl-P {register} পাঠ্যটি সন্নিবেশ করায় এবং এটিকে স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত করে।

Ctrl-Oসন্নিবেশ মোডে ফিরে আসার আগে যে কোনও সাধারণ মোড কমান্ড চালাতে ব্যবহার করা যেতে পারে
Ctrl-O "+p, উদাহরণস্বরূপ এটি ব্যবহার করা যেতে পারে।

আরও তথ্যের জন্য ডকুমেন্টেশন সহ দেখুন :h i_ctrl-r


4
এই উত্তরটি সবচেয়ে ব্যাপক বলে মনে হচ্ছে। এটি খুব স্পষ্ট, এবং আমার মতে, সবচেয়ে সহায়ক। এটি ওপির প্রশ্নের উত্তর দেয় এবং তারপরে কিছু সংক্ষিপ্ত করে দেয়।
দেবভিন

26

আপনি ক্লিপবোর্ড থেকে এটি দিয়ে পেস্ট করতে এটি ব্যবহার করতে পারেন Ctrlv:

set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>

এবং এটি দিয়ে ক্লিপবোর্ডে ভিজ্যুয়াল নির্বাচনটি ইয়াঙ্ক করার জন্য Ctrlc:

vnoremap <C-c> "+y

আপনি যদি সাধারণ মোডে ক্লাসিক ভিম ইয়ঙ্কিং / পেস্টিং ( y/ p) এর জন্য ডিফল্টরূপে ক্লিপবোর্ড ব্যবহার করতে চান তবে এখানে একটি কনফিগারেশন বিকল্প রয়েছে যা এটি করে:

set clipboard=unnamedplus

এই কনফিগারেশনের সাহায্যে আপনি প্রথমে স্বাভাবিক মোডে ইয়াঙ্ক করতে পারেন এবং তারপরে Ctrlvসন্নিবেশ মোডের মাধ্যমে পেস্ট করতে পারেন । এছাড়াও, আপনি বিভিন্ন ভিআইএম দৃষ্টান্ত এবং বিভিন্ন অ্যাপ্লিকেশন থেকে পাঠ্য আটকে দিতে পারেন।

আরেকটি বিকল্প হ'ল:

set clipboard=unnamed

তারপরে আপনি নিজের এক্স পরিবেশে মাউস টেনে কিছু নির্বাচন করতে সক্ষম হবেন এবং এরপরে এটি ভিমে আটকে দিতে পারবেন। তবে (কোনও কারণে) আপনি ভিমের মধ্যে কিছু ( y) ইঙ্ক করতে পারবেন না এবং shiftinsertএটি অন্য কোথাও পরে আসতে পারে যা সম্ভবত বেশ সীমাবদ্ধ।

এই সম্পর্কে দস্তাবেজগুলি ভিম করুন: http://vim.wikia.com/wiki/Acecessing_t__ সিস্টেম_ক্লিপবোর্ড

কাস্টম নিবন্ধগুলি থেকে পেস্ট করার জন্য আপনি অন্যান্য উত্তরগুলি অনুসরণ করতে পারেন :)। এই উত্তরটি মূলত আপনার সিস্টেম ক্লিপবোর্ডের সাথে ভিমে সংহত করার বিষয়ে।


নোট করুন set clipboard=unnamedplusএবং set clipboard=unnamedকাজ করার জন্য আপনার gvim বা vimx ( vim-X11) ব্যবহার করতে হবে : সেগুলি সংকলিত +xterm_clipboard। আপনি .bashrcএটির vimসাথে aliasচ্ছিকভাবে এটির সাথে নিজের নাম রাখতে পারেন vimx:

if [ -e /usr/bin/vimx ]; then
    alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi

আপনার ভিমে +xterm_clipboardপ্রদত্ত তথ্যগুলিতে আছে কিনা তা আপনি খুঁজে পেতে পারেন vim --version


7
আমি ঠিক এটিই খুঁজছিলাম। এটি এখানে শুধুমাত্র যুক্তিসঙ্গত উত্তর। এভাবেই কেউ কাজ করার প্রত্যাশা করে। কেউ কি জানেন যে কেন :set pasteএবং বাইজেন্টাইন এর ডিফল্ট আচরণ <leader><leader> * yএমনকি দূরবর্তী থেকে কাম্য? খুব বেশি প্রতিশ্রুতিবদ্ধ শোনার জন্য নয়, আমি যে সত্যিকারের দর্শনের প্রতিফলন ঘটায় তা সত্যই উত্সাহী, বা যদি এটি কেবল একটি .তিহাসিক দুর্ভাগ্য হয়।
এসিচ্লুস

আপনার উত্তর আমাকে Gvim এ শিফট + সন্নিবেশ ব্যবহার করার অনুমতি দেয় inoremap <S-Insert> <F12><C-r>+<F12>(আমি F12 টি পেস্টটোগল হিসাবে ব্যবহার করি)। ধন্যবাদ।
শ্রোমো

20

আপনি যদি সিস্টেম ক্লিপবোর্ড ( :set clipboard=unnamed) ব্যবহার করতে ভিমটিকে সেট করেন তবে আপনার ভিমে অনুলিপি করা কোনও পাঠ্য Shift+ ব্যবহার করে আটকানো যেতে পারে InsertShift+ Insertহ'ল একটি ওএস-প্রশস্ত পেস্ট কী-সংমিশ্রণ ( Ctrl+ Insertএটি সম্পর্কিত 'অনুলিপি')।


1
এস-সন্নিবেশ সম্পর্কে জানতেন না :)
ব্যান্ডগ্যাপ

এটি কি বিপরীতে কাজ করে? হবে pক্লিপবোর্ড-এর লেখাটি পেস্ট?
জাজ

Shift + Insertপাঠ্যটি পেস্ট করার আগে , আমাদের সন্নিবেশ মোডে থাকা দরকার।
jdhao

18

সন্নিবেশ মোডে পেস্ট করতে আপনি কেবল মাউস মিডল বোতামটি ব্যবহার করতে পারেন (কেবলমাত্র লিনাক্স)।


106
এই মাউসটির কথা আপনি কী বলছেন?
জিম মিচিটনার

19
এই নন-লিনাক্স ওএসগুলি আপনি কী সম্পর্কে কথা বলছেন?
ব্রুনো ব্রোনোস্কি

-1: এই উত্তরটি হার্ডওয়্যার এবং টার্মিনাল সেটিংসের উপর নির্ভরশীল। শেষ পর্যন্ত মাউসের বোতামগুলি টার্মিনালে একটি প্রিসেট স্ট্রিং প্রেরণ করে এবং টার্মিনাল একটি নির্দিষ্ট কমান্ড কার্যকর করতে স্ট্রিংটিকে পার্স করে। সমস্যাটি হ'ল, এটি টার্মিনাল সেটিংসের উপর নির্ভর করে ব্যাপকভাবে পরিবর্তিত হতে পারে। এই উত্তরটির উন্নতি করতে, দয়া করে আমাদের কমপক্ষে, টার্মিনালের সংস্করণ, ওএস এবং সংস্করণ এবং মাউস ব্যবহার করছেন যা আপনি ব্যবহার করছেন provide
melvynkim

মিডল মাউস বোতামের পেস্ট সমস্ত লিনাক্স অ্যাপ্লিকেশন জুড়ে খুব সাধারণ, টার্মিনাল বা ওএস সংস্করণ দ্বারা সীমাবদ্ধ নয়।
lcltj

আর্ক লিনাক্স + urxvt এ কাজ করে না। এটি কেবল নতুন লাইন যুক্ত করে।
zygimantus

5

আপনি এর -- INSERT (past) --মাধ্যমে মোড প্রবেশ করতে পারেন :

  • কীবোর্ড কম্বো: y p

অথবা

  • :set pasteএবং সন্নিবেশ মোডে প্রবেশ করা ( :set nopasteঅক্ষম করতে)

একবার -- INSERT (past) --মোডে কেবল আপনার সিস্টেমের পেস্ট ফাংশনটি ব্যবহার করুন (যেমন CtrlShiftvলিনাক্সে,Cmdv উপর, ম্যাক ওএসে)।

ভিএম ওভার এসএসএস ব্যবহার করার সময় এই কৌশলটি খুব কার্যকর।


4

হ্যাঁ. উইন্ডোজ Ctrl+ এV এবং লিনাক্সে প্রায় একই সাথে দুটি মাউস বোতাম টিপুন।

উইন্ডোজে আমার মনে হয় আমার _ ভিমআরসি-তে এই লাইনটি সম্ভবত এটি করে:

source $VIMRUNTIME/mswin.vim

লিনাক্সে আমি কীভাবে এটি করেছি তা মনে নেই। দেখে মনে হচ্ছে ডিফল্ট .vimrc ফাইল থেকে আমি সম্ভবত কিছু লাইন মুছে ফেলেছি।


আমি কি একাধিকবার upvote করতে পারি ?? আমি যখন অন্য উইন্ডো থেকে এসেছি কেবল তখনই আমি পেস্ট করতে চাই - তাই আমি সর্বদা মাউসে থাকি। উজ্জ্বল!
ডেভ

লিনাক্সে আপনি মাঝের মাউস বোতাম টিপে পেস্ট করুন। আপনার যদি দুটি বোতামের মাউস থাকে এবং উভয় বাম এবং ডান বোতাম টিপুন, তবে এটির জন্য এইভাবে "Emulate3Buttons" বা অনুরূপ প্রয়োজন।
কুগার

0

সন্নিবেশ মোডে আটকান

একটি কাস্টম মানচিত্র এই ক্ষেত্রে উপযুক্ত বলে মনে হচ্ছে। এটি আমি yোকানো মোডে ইয়ঙ্কযুক্ত আইটেমগুলি পেস্ট করতে ব্যবহার করি:

inoremap <Leader>p <ESC>pa

আমার Leaderচাবি এখানে \; এর অর্থ \pসন্নিবেশ মোডে আঘাত করা পূর্ববর্তী ইয়ঙ্কযুক্ত আইটেম / লাইনগুলি পেস্ট করবে।


0

কেবল মানচিত্র যুক্ত করুন:

" ~/.vimrc
inoremap <c-p> <c-r>*

পুনরায় আরম্ভ করুন এবং যখন Crtl+pসন্নিবেশ মোডে টিপুন , অনুলিপিযুক্ত পাঠ্য আটকানো হবে

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