ভিমে টেক্সট আটকানোর সময় অটো ইনডেন্ট বন্ধ করা হচ্ছে


1185

আমি ভিম শেখার চেষ্টা করছি।

আমি যখন ক্লিপবোর্ড থেকে আমার দস্তাবেজে কোডটি পেস্ট করি, তখন প্রতিটি নতুন লাইনের শুরুতে আমি অতিরিক্ত স্পেস পাই:

line
  line
    line

আমি জানি আপনি অটো ইনডেন্ট বন্ধ করতে পারেন তবে আমি এটি কাজ করতে পারছি না কারণ আমার সাথে অন্য কিছু সেটিংস দ্বন্দ্বপূর্ণ বা কিছু রয়েছে (যা আমার .ভিআমআরসিআর-তে বেশ সুস্পষ্ট দেখায় তবে আমি এগুলি বের করার সময় মনে হয় না)।

আমি কোডটি পেস্ট করার সময় আমি কীভাবে অটো ইন্ডেন্টিং বন্ধ করব কিন্তু আমি কোড লিখছি তারপরেও ভিএম অটো ইনডেন্ট থাকবে কীভাবে? আমার .vimrcফাইলটি এখানে :

set expandtab  
set tabstop=2  
set shiftwidth=2  
set autoindent  
set smartindent  
set bg=dark  
set nowrap  

4
এফডাব্লুআইডাব্লু , ভিম ৮.০.২০১০ বন্ধনযুক্ত পেস্টের জন্য দেশীয় সমর্থন যোগ করে, তাই এটি আটকানো পাঠ্যকে এড়ানো যাবে না।
sh1

নতুন ফাইলগুলির জন্য ভিমের পেস্ট / নোপস্টে ঝাঁকুনি এড়াতে আপনি এন্টারcat > mynewfile.txt টিপতে পারেন , আপনার পাঠ্য আটকে দিতে পারেন , আবার এন্টার টিপুন এবং তারপরে সংরক্ষণ করতে Ctr + D করতে পারেন। ফাইলটি এখন তৈরি হয়েছে এবং আপনি এটি দিয়ে সম্পাদনা করতে পারেন । vim mynewfile.txt
সিসিপিজা

উত্তর:


2063

আপডেট: আরও ভাল উত্তর এখানে: https://stackoverflow.com/a/38258720/62202

আপনি কোডটি পেস্ট করার সময় স্বতঃসীমা বন্ধ করতে, একটি বিশেষ "পেস্ট" মোড রয়েছে।

আদর্শ

:set paste

তারপরে আপনার কোডটি পেস্ট করুন। দ্রষ্টব্য যে সরঞ্জামদণ্ডে লেখাটি এখন বলেছে -- INSERT (paste) --

আপনি আপনার কোড পেস্ট করার পরে, পেস্ট-মোডটি বন্ধ করুন, যাতে আপনি টাইপ করার সময় স্বতঃ-ইনডেন্টিং আবার সঠিকভাবে কাজ করে।

:set nopaste

যাইহোক, আমি সবসময় খুঁজে পেয়েছি যে জটিল। এই কারণেই আমি এমন ম্যাপ করি <F3>যে এটি পাঠ্য সম্পাদনার সময় পেস্ট এবং নোপস্ট মোডগুলির মধ্যে স্যুইচ করতে পারে ! আমি এটি যুক্ত.vimrc

set pastetoggle=<F3>

38
এটি :set noaiঅনুসরণ করার চেয়ে সহজ আর কিছু নয় :set ai। এর পরামর্শটি :r! catছোট।
লিওপড

68
আমি set pasteঅবশ্যই সহজ, মনে করি । এটি তুলনামূলক noaiবা তার চেয়ে অনেক বেশি noautoindentঅর্থসূচক, যা আপনি যখন কোনও টাচ টাইপ লেখক হিসাবে যথেষ্ট দক্ষ হন তখন "নোয়াই" এবং "পেস্ট" টাইপ করার সময় একই রকম তুচ্ছ পরিমাণ সময় নেয়।
ভিক্টর জামামানিয়ান

52
:set noaiওপি অনুসারে কীভাবে অন্যান্য ইনডেন্ট-সম্পর্কিত সেটিংস কনফিগার করা হয় তার উপর নির্ভর করে সর্বদা কাজ করে না। :set pasteএকসাথে বেশ কয়েকটি সেটিংসের শর্টহ্যান্ড হিসাবে উপস্থিত হয়।
মার্কহু

13
পার্টিতে দেরীতে, তবে set copyindentএটি আপনার জন্য নির্বিঘ্নে যত্ন নেবে।
ম্যাট রায়ান

33
:set pasteধনুর্বন্ধনী সমাপ্তির মতো অন্যান্য বৈশিষ্ট্যগুলিও অক্ষম করে, যা কোড পেস্ট করার সময়ও চাইত না।
ম্যানুয়েল ফক্স

263

আটকানোর সময় অযাচিত প্রভাব এড়ানোর জন্য, একটি বিকল্প রয়েছে যা সেট করা দরকার:

set paste

set pastetoggle=<F10>পেস্ট এবং নোপস্টের মধ্যে সহজে টগল করতে আপনার .vimrc বা অন্য কোনও বোতামে থাকা একটি দরকারী কমান্ড ।


13
অবশেষে! আমি টাইপ করতে থাকি: সেট পেস্ট /: সেট নোপস্টে, কত বোকা! ধন্যবাদ.
imwilsonxu

4
ব্যবহারিক দৃষ্টিকোণ থেকে, আপনার উত্তর গৃহীত উত্তরের চেয়ে বেশি কার্যকর
লিনব

8
আরেকটি বিকল্প হ'ল আপনার ভিআরসিআরকে একটি ম্যাক্রো যুক্ত করা:nmap <silent> <leader>p :set paste<CR>"*p:set nopaste<CR>
ক্রিস

দুর্দান্ত পরামর্শ @ ক্রিস - ইন্ডেন্টেশন সমস্যা ছাড়াই পেস্ট করার একক কী ক্রম!
রিচভেল

যদি আমি কখনই পেস্ট মোডে থাকতে চাই না? স্থায়ীভাবে অক্ষম করার কোন উপায় আছে কি?
ম্যাক্সওয়েল

132

আমি সাধারণত ব্যবহার :r! catএবং তারপর পেস্ট ( shift + insert )বিষয়বস্তু এবং CTRL+D

প্রত্যক্ষ ব্যবহার সক্ষম ও অক্ষম করার দরকার নেই।


আমি এই সরাসরি ব্যবহারের বিকল্পটি পছন্দ করি। যদিও আমি এখনও ওয়েব পৃষ্ঠাগুলিতে ভিএম সিনট্যাক্স পড়তে শিখছি। আপনার পদক্ষেপের অর্থ কী? বিশেষত, ধরুন, সিস্টেম ক্লিপবোর্ডে আমার কাছে কিছু আছে, আমি কোনও ডকুমেন্টে এটি ভিমে রেখে আটকানোর জন্য কী টিপব?
jvriesem

8
কেন এবং কীভাবে :r! catকাজ করে সে সম্পর্কিত তথ্যের সাথে এই উত্তরটি আরও সহায়ক হবে ।
কে এরল্যান্ডসন

11
@ কেরল্যান্ডসন, :rবর্তমান নথিতে একটি ফাইলের বিষয়বস্তু সন্নিবেশ করান। !catবলে, রান বিড়াল যা মূলত স্টিডিন (* নিক্স শেলস) খোলে (shift + insert)বা কিছু টার্মিনালের জন্য ডান মাউস ক্লিক ক্লিপবোর্ডের বিষয়বস্তু টার্মিনালে পেস্ট করবে CTRL+Dফাইল-এর শেষে, তাই এটি :r !catসেশনটি বন্ধ করে দেয় ।
ড্যানিয়েল

আসলেই কি এটি 'প্রত্যক্ষ'? pasteএকমাত্র এই উদ্দেশ্যে তৈরি একটি বিকল্প সেট করা ছাড়া ? @jvriesem এটি কোনও 'প্রত্যক্ষ' বিকল্প নয়, যদি আমি সেই শব্দটি সম্পর্কে আপনার বোঝার ধারণা অনুমান করি তবে এটি সঠিক।
0xc0de

এছাড়াও আপনি ব্যবহার করতে পারেন :r! catতারপর CTRL+SHIFT+Vটার্মিনাল (পরে মধ্যে পেস্ট করতে CTRL+D)।
পল রাউজিউস

86

আপনি যদি স্থানীয়ভাবে কাজ করে থাকেন তবে আপনি সিস্টেমের ক্লিপবোর্ড থেকে কী সিকোয়েন্স সহ পেস্ট করতে পারেন:

"+p

এটি একটি যথাযথ ভিআইএম কমান্ড, সুতরাং sertোকানো মোডে প্রবেশ করা বা প্রথমে স্বয়ংক্রিয়ভাবে স্যুইচ অফ করার বিষয়ে চিন্তা করার দরকার নেই।

অবশ্যই যদি আপনি দূরবর্তীভাবে কাজ করছেন (উদাহরণস্বরূপ :set noai, এসএসএইচে কনসোল ) তবে এটি কাজ করবে না এবং আপনার প্রবেশের মোডে, কনসোলে আটকানো, ইনসার্টমোড ছেড়ে :set aiঅন্য কোথাও বর্ণিত পথ হিসাবে চলতে হবে।


10
এই উত্তরটি আমি বহু বছর আগে লিখেছি। আজকাল আমি ব্যবহার করি :set pasteএবং :set nopasteপরিবর্তে দীর্ঘায়িত হওয়া সত্ত্বেও এটি মনে রাখা সহজ এবং প্রতিবার আমার এটি সন্ধান করতে হবে না!
thomasrutter

6
কিছু এম্বেড থাকা সিস্টেমে (মূলত ব্যস্তবক্সের ভিত্তিতে) :set pasteপ্রয়োগ করা হয় না, তাই :set noaiপরিবর্তে ব্যবহার করা উচিত।
jcarballo

আপনার যখন অনুলিপি করার জন্য একটি বড় পাঠ্য রয়েছে, তার পরিবর্তে + রেজিস্টার ব্যবহার করা কি দ্রুত হয় না?
পেড্রোম্যানোয়েল

1
@pedromanoel যা কেবলমাত্র স্থানীয়ভাবে কাজ করার সময় কাজ করে। এটি এসএসএইচ-এর মাধ্যমে ভিমে অ্যাক্সেসের কাজ করবে না, উদাহরণস্বরূপ, যদি আপনি স্থানীয়ভাবে কোনও কিছু অনুলিপি করেন এবং আপনার এসএসএইচ সেশনে থাকা ভিমে এটি আটকানোতে চান।
থমাসরুতার

1
@ থমাসরুতর তবে আমি এটিকে ম্যাপ করেছি <leader>p.. খুব দরকারী!
ডেন

51

পেস্ট মোডটি সেট করে paste/nopaste/pastetoggleনিখুঁতভাবে ঠিক করার সময়, আপনাকে এখনও পেস্ট করার আগে ম্যানুয়ালি পেস্ট মোড সক্ষম করতে হবে এবং আটকানোর পরে পেস্ট মোডটি অক্ষম করতে হবে। আমি যে অলস ব্যক্তির হয়েছি তার নীচে এখন পর্যন্ত আমি খুঁজে পেয়েছি সেরা সমাধান, যা আপনি পেস্ট করার সময় পেস্ট মোডটি স্বয়ংক্রিয়ভাবে টগল করে।

এখানে একটি সামান্য কৌশল যা আপনি পেস্ট করার সময় ভিমের পেস্ট মোডটি স্বয়ংক্রিয়ভাবে সেট / আনসেট করতে টার্মিনালের বন্ধনীযুক্ত পেস্ট মোড ব্যবহার করে। আপনার .vimrc এ নিম্নলিখিত রাখুন:

let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"

inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()

function! XTermPasteBegin()
  set pastetoggle=<Esc>[201~
  set paste
  return ""
endfunction

এখন আপনি স্পষ্টভাবে পেস্ট মোডটি চালু / বন্ধ না করে পেস্ট করতে পারেন - এটি আপনার জন্য স্বয়ংক্রিয়ভাবে পরিচালিত হয়।

সূত্র: কোডারওয়াল

দ্রষ্টব্য: এই সমাধানটি ডাব্লুএসএল (লিনাক্সের জন্য উইন্ডোজ 10 সাবসিস্টেম) এ কাজ করে না। যদি কারও ডাব্লুএসএল এর সমাধান থাকে তবে দয়া করে এই উত্তরটি আপডেট করুন বা মন্তব্যগুলিতে এটি যুক্ত করুন।

Tmux যদি tmux ব্যবহার করে থাকে তবে ঘোষণাগুলিতে ডাবল পলায়ন করা দরকার। এর কোডটি কোডারওয়ালেও রয়েছে


এটি উজ্জ্বল। যদিও একটি জিনিস ... প্রতিটি পেস্টের সাথে আমি প্রতিটি পেস্টের শুরুতে একটি "0" (শূন্য) চারিত্রিক পাই। এর জন্য কোন টিপস?
জুলিয়াস Š।

এছাড়াও tmux ব্যবহার করে মনে রাখবেন তবে আপনার দ্বিগুণ পালাতে হবে। এই জন্য কোড উত্তরে Coderwall লিংক রয়েছে
Daithí

যদি আপনি এমনকি অলস হয়ে থাকেন এবং উপরের কোডটি আপনার .vimrc এ আটকান অনুলিপি করেন তবে এক্সটার্মপাস্টবেগিন () ফাংশনটির ইন্ডেন্টেশনটির যত্ন নিন।
1133

এটি কীভাবে কাজ করেছিল তা সম্পর্কে আমি কৌতুহল ছিলাম, এবং তাই আমি পেস্ট ব্র্যাকেটিংয়ের সন্ধান করেছি এবং gitlab.com/gnachman/iterm2/-/wikis/Paste- ব্র্যাকেটিং খুঁজে পেয়েছি যা ব্যাখ্যা করে যে t_SIএবং t_EIভেরিয়েবলগুলি পেস্ট বন্ধনী সক্ষম করে এবং এটি অক্ষম করছে। যখন পেস্ট বন্ধনী চালু থাকে, তখন আটকানো পাঠ্যটি উপসর্গযুক্ত হয় esc[200~এবং এর পরে অনুসরণ করা হয় esc[201~
প্যাটস

37

ম্যাক ব্যবহারকারীরা এগুলি সরাসরি পেস্টবোর্ড থেকে পড়ে স্বয়ংক্রিয় বিন্যাস এড়াতে পারবেন:

:r !pbpaste

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

আপনি যদি কেবল টাইপ করেন তবে :.!pbpasteএটি বর্তমান পংক্তিকে পেস্ট বাফারের আউটপুট দ্বারা প্রতিস্থাপন করে কাজ করা উচিত। সাধারণভাবে, ভিম আপনাকে আপনার বর্তমান ফাইলটিতে থাকা ডেটাটি অন্য প্রোগ্রামে পাইপ করতে এবং কমান্ডের আউটপুট সহ পাঠ্যকে প্রতিস্থাপন করতে দেয়। সুতরাং :1,3!pbpasteআপনার ফাইলের প্রথম তিনটি লাইন পেস্ট বাফার দিয়ে প্রতিস্থাপন করে। আমি :.!ppjsonখুব দীর্ঘ (অবরুদ্ধ জেএসওএন স্ট্রিং) নিতে এবং এটি ফর্ম্যাট করে এবং দীর্ঘ স্ট্রিংটিকে ফর্ম্যাট সমতুল্য সহ প্রতিস্থাপন করি। পিপিজেসন একটি বাশ স্ক্রিপ্ট যা চলমান python -m json.tool
প্যাটস

19

এখানে এমন একজনের পোস্ট রয়েছে যিনি পেস্ট ইভেন্টটি পুনরায় তৈরি করবেন কীভাবে পেস্ট মোডটি স্বয়ংক্রিয়ভাবে চালু করতে হবে এবং তারপরে ব্যাক অফ করবে। ম্যাকোএসএক্স-এ tmux / iTerm এ আমার জন্য কাজ করে।


1
ভকভগক. আমি এমন একটি প্লাগইনও সন্ধান করেছি যেখানে ব্যক্তি অনুরূপ কার্যকারিতা বান্ডেল করেছে - stackoverflow.com/a/36512548/255961
স্টাডিজিক

আমি যখন আমার ক্লিপবোর্ড থেকে টুকরো টুকরো প্রবেশ করিয়ে দিচ্ছি তখন এটি 'আইআইআইআই'র একটি স্ট্রিং সৃষ্টি করবে বলে মনে হয়।
জন জিয়াং

16

এটি আপনার যুক্ত করুন ~/.vimrcএবং আপনাকে কেবল পেস্ট করার আগে এবং পরে এফ 2 টিপতে হবে :

set pastetoggle=<F2>

12

আমি কেবল set clipboard=unnamedআমার .vimrc এ রেখেছি। এটি এক্সের ক্লিপবোর্ডে ডিফল্ট পেস্ট বাফার মানচিত্র তৈরি করে।

সুতরাং, আমি যদি টার্মিনালে কিছুটা পাঠ্য চিহ্নিত করি, তবে আমি কেবল pএটি ভিমে আটকে দিতে চাপতে পারি । একইভাবে, আমি ভিমে জিনিসগুলি ইঙ্ক করতে পারি (উদাহরণস্বরূপ YYবাফারে বর্তমান লাইনটি ইঙ্ক করা) এবং এটি আটকে দিতে কোনও উইন্ডোতে মিডল ক্লিক করুন click

জানিনা। আমি এটি অত্যন্ত সুবিধাজনক মনে।


আইএমএইচও, এটি সেরা উত্তর, এফ 11 (যা ভিমে ডিফল্টরূপে পূর্বনির্ধারিত) দিয়ে টগল করার দরকার নেই। এটি ম্যাক্স ওএসএক্স সিস্টেমে কাজ করে, আমি অন্যদের সম্পর্কে জানি না।
লাইটম্যান

9

টার্মিনালের ভিতরে কাজ করার সময়, ভিম-বন্ধনযুক্ত-পেস্ট ভিম প্লাগইনটি পেস্টের আগে বা পরে কোনও কীস্ট্রোকের প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে পেস্টগুলি পরিচালনা করবে।

এটি বন্ধনীযুক্ত পেস্ট মোড সনাক্ত করে কাজ করে যা "আধুনিক" এক্স-টার্ম সামঞ্জস্যপূর্ণ টার্মিনালগুলি যেমন আইটার্ম 2, জিনোম-টার্মিনাল এবং লাইবভেটি ব্যবহার করে অন্যান্য টার্মিনাল দ্বারা প্রেরিত একটি পালানোর ক্রম ence একটি যুক্ত বোনাস হিসাবে এটি tmux সেশনের জন্যও কাজ করে। আমি এটি ম্যাকের একটি লিনাক্স সার্ভারের সাথে সংযুক্ত হয়ে tmux ব্যবহার করে আইটির্ম 2 দিয়ে সাফল্যের সাথে ব্যবহার করছি।


এটি আরও নোট করে যা থেকে সাবধান থাকুন: দুর্ভাগ্যক্রমে, এর অর্থ হ'ল আপনি যদি টার্মিনালে পেস্ট করেন এমন কোনও কিছুতে নতুন লাইন থাকে তবে তারা ইনপুট বাফারের সামগ্রীগুলিও চালাবে।
0xc0de

1
@ 0xc0de, এই উক্তিটি এখানে প্রাসঙ্গিক নয়। এটি শেল যখন বন্ধনীযুক্ত পেস্ট মোড সমর্থন করে না তখন কী করবে তা নিয়ে কথা বলছে । এটি বন্ধনযুক্ত পেস্ট মোডের মূল বিষয় - এটি ঘটতে বাধা দেওয়ার জন্য।
sh1

এটি অন্যান্য সমাধানগুলির চেয়ে আমার পক্ষে আরও ভাল কাজ করেছে। ধন্যবাদ।
jjj

8

এটি আপনার ~ / .vimrc এ আটকে দিন এবং খুশি হন:

" enables :Paste to just do what you want
command Paste execute 'set noai | insert | set ai'

সম্পাদনা করুন: প্রতিবিম্বের উপর, :r !catএটি সংক্ষিপ্ত, শব্দার্থক, এবং কোনও কাস্টম ভিএমআরসি প্রয়োজন না বলে এটি আরও অনেক ভাল পদ্ধতির। পরিবর্তে যে ব্যবহার করুন!


5

যদিও :pastetoggleবা :pasteএবং ঠিকঠাক :nopasteকাজ করা উচিত (যদি এটি প্রয়োগ করা হয় - তবে তারা আলোচনার মাধ্যমে দেখতে পাবে না এগুলি সর্বদা হয় না) আমি অত্যন্ত সরাসরি প্রত্যক্ষ ব্যবহার করে "+pবা এর "*pসাথে পড়ার সাথে "+rবা তার সাথে পড়ার "*r:

ভিমের দশ প্রকারের রেজিস্টার ( :help registers) রয়েছে এবং প্রশ্নকর্তাটি বিভাগে quotestarএবং আগ্রহীquoteplus

  1. নির্বাচন এবং ড্রপ নিবন্ধসমূহ "*, "+এবং "~" ~

জিইউআইয়ের জন্য নির্বাচিত পাঠ্য সংরক্ষণ এবং পুনরুদ্ধারের জন্য এই নিবন্ধগুলি ব্যবহার করুন। দেখুন quotestarএবং quoteplus। ক্লিপবোর্ড উপলভ্য না থাকলে বা কাজ না করে, পরিবর্তে নামবিহীন নিবন্ধ ব্যবহার করা হয়। ইউনিক্স সিস্টেমের জন্য ক্লিপবোর্ড কেবল তখনই উপলব্ধ থাকে যখন + xterm_clipboard বৈশিষ্ট্য উপস্থিত থাকে। আমি ভি মধ্যে নেই}

দ্রষ্টব্য যে এক্স 11 সিস্টেমের জন্য "* এবং" + এর মধ্যে কেবল একটি পার্থক্য রয়েছে।

:help x11-selectionআরও স্পষ্ট করেন পার্থক্য *এবং +:

                                                  quoteplus quote+

এখানে তিনটি নথিভুক্ত এক্স নির্বাচন রয়েছে: প্রাথমিক (যা বর্তমান ভিজ্যুয়াল নির্বাচনের প্রতিনিধিত্ব করবে - ভিমের ভিজ্যুয়াল মোডের মতো), দ্বিতীয় (যা খারাপ-সংজ্ঞায়িত) এবং ক্লিপবোর্ড (যা কাটা, অনুলিপি এবং পেস্ট অপারেশনের জন্য ব্যবহৃত হবে বলে আশা করা হচ্ছে) )।

এই তিনটির মধ্যে, ভিম "* রেজিস্টারটি পড়ার সময় এবং লেখার সময় প্রাথমিক ব্যবহার করেন (অতএব X11 নির্বাচনগুলি উপলভ্য হলে, Vim" স্বয়ংক্রিয় নির্বাচন "এর ক্লিপবোর্ডের জন্য একটি ডিফল্ট মান সেট করে) এবং" + রেজিস্টারটি পড়তে এবং লেখার সময় ক্লিপবোর্ড ব্যবহার করুন। ভিম SECONDARY নির্বাচন অ্যাক্সেস করে না।

উদাহরণ: (ডিফল্ট বিকল্পের মান ধরে)

  • ভিমে ভিজ্যুয়াল মোডে একটি URL নির্বাচন করুন। আপনার ব্রাউজারে যান এবং URL পাঠ্য ক্ষেত্রে মাঝের মাউস বোতামটি ক্লিক করুন। নির্বাচিত পাঠ্য সন্নিবেশ করা হবে (আশা করি!)। দ্রষ্টব্য: ফায়ারফক্সে আপনি মিডলমাউস.কন্টেন্টলুআরএলআরএল পছন্দটি সম্পর্কে: কনফিগার করতে পারবেন তবে উইন্ডোটির বেশিরভাগ স্থানে মাঝারি মাউস বোতাম টিপানোর সময় নির্বাচিত ইউআরএল ব্যবহার করা হবে।

  • মাউস দিয়ে টেনে আপনার ব্রাউজারে কিছু পাঠ্য নির্বাচন করুন। ভিমে যান এবং মাঝের মাউস বোতামটি টিপুন: নির্বাচিত পাঠ্য সন্নিবেশ করা হয়েছে।

  • ভিমে কিছু পাঠ্য নির্বাচন করুন এবং "+ y" করুন your আপনার ব্রাউজারে যান, মাউসের সাহায্যে টানা একটি টেক্সটফিল্ডে কিছু পাঠ্য নির্বাচন করুন Now এখন ডান মাউস বোতামটি ব্যবহার করুন এবং পপআপ মেনু থেকে "পেস্ট করুন" নির্বাচন করুন selected নির্বাচিত পাঠ্যটি ওভাররাইট করে ভিমের পাঠ্য। নোট করুন যে ভিজ্যুয়াল সিলেকশন করার সময় "+ রেজিস্ট্রারে থাকা পাঠ্যটি উপলব্ধ থাকে যা" * রেজিস্টারে অন্যান্য পাঠ্যকে উপলভ্য করে selected এটি নির্বাচিত পাঠ্যটিকে ওভাররাইটিংয়ে অনুমতি দেয়।

আমি লক্ষ্য করেছি যে
ভিএমে

4

এটি আমার জন্য কাজ করে (রেজিস্ট্রারের ক্ষেত্রে, আমি এপিএসের মধ্যে এক্সচেঞ্জ বাফারের মতো কী ব্যবহার করি):

imap <silent> <S-Insert> <C-O>:set noai<CR><C-R>+<C-O>:set ai<CR>

2

আপনি যদি কোনও ম্যাক এ থাকেন তবে ম্যাকভিম টেষ্টল টেষ্ট পেস্ট না করে এটিকে ভালভাবে পরিচালনা করছে বলে মনে হচ্ছে।

ব্রিও ম্যাকভিম ইনস্টল করুন - ওভাররাইড-সিস্টেম-ভিএম


যদি আপনি নিজের .vimrcফাইলটিতে ওপির নির্দেশকে অন্তর্ভুক্ত করেন তবে কি সেই মামলাটি রয়েছে ?
ড্রু নোকস

2

নেটিভ পেস্ট / বন্ধনীযুক্ত পেস্ট হ'ল সবচেয়ে ভাল এবং সহজ উপায় vim 8(২০১ in সালে প্রকাশিত)। এটি এমনকি ssh উপর কাজ করে! (বন্ধনীযুক্ত পেস্ট লিনাক্স এবং ম্যাকের জন্য কাজ করে তবে উইন্ডোজ গিট ব্যাশ নয়)

  1. আপনার ভিম 8+ রয়েছে তা নিশ্চিত করুন (আপনার বিকল্প +clipboardবা +xterm_clipboardবিকল্পের প্রয়োজন নেই)।

    vim --version | head -1

  2. সাধারণ মোডে কেবল ওএস নেটিভ পেস্ট কমান্ড (যেমন ctrl+shift+Vবা cmd+V) ব্যবহার করুন । iসন্নিবেশ মোডের জন্য টিপুন না ।


পরীক্ষা

  1. সিস্টেমের ক্লিপবোর্ডে ( ctrl+shift+Cঅথবা cmd+C) এর ট্যাব ইনডেন্ট সহ 2 টি লাইন অনুলিপি করুন :

    echo -e '\ta\n\tb'

  2. অটোইন্ডেন্টের সাথে একটি ক্লিন ভিম 8+ চালু করুন:

    vim -u NONE --noplugin -c 'set autoindent'

  3. নরমাল মোডে সিস্টেম ক্লিপবোর্ড ( ctrl+shift+Vবা cmd+V) থেকে আটকান । iসন্নিবেশ মোডের জন্য টিপুন না । aএবং bএকটি একক ট্যাব ইন্ডেন্ট সাথে সংযুক্ত করতে হবে। এমনকি রিমোট মেশিনে এসএস-ইন করার সময় আপনি এটি করতে পারেন (রিমোট মেশিনটির জন্য ভিএম 8+ প্রয়োজন হবে)।

  4. এখন পুরানো উপায়ে চেষ্টা করুন, যা অতিরিক্ত ট্যাব সহ দ্বিতীয় লাইনে স্বয়ংক্রিয়ভাবে iপ্রবেশ করবে : সন্নিবেশ মোডের জন্য টিপুন । তারপরে ctrl+shift+Vবা ব্যবহার করে পেস্ট করুন cmd+Vaএবং bএখন শ্রেণীবদ্ধ করা হয়।


ভিম 8 ইনস্টল করা হচ্ছে


1
সেরা এবং সহজ উপায়! এছাড়াও, গুগল এটি Featured snippetআমার অনুসন্ধান 'পেস্ট সামগ্রীতে কোনও ট্যাব ভিম নেই' এর জন্য প্রস্তাব করেছিল , কারণ সম্ভবত, আমি এই ট্যাবটির মূল শব্দটি ব্যবহার করেছি, কেবলমাত্র এই উত্তরে উল্লেখ করা হয়েছে :)
ডেভিড

1

দয়া করে এই নিবন্ধটি পড়ুন: কোড পেস্টের জন্য অটো-ইন্ডেন্টিং টগল করুন

কিছু লোক আপনার জন্য নিম্নলিখিত বিকল্পের দ্বারা স্থিতির লাইনে প্রদর্শিত ভিজ্যুয়াল প্রতিক্রিয়াটিকে পছন্দ করে vimrc:

nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode

1

দ্রুততম উপায় আমি দ্রুত এক-শটের পেস্ট জন্য পেস্ট-সন্নিবেশ মোড যেতে সচেতন আছি tpope কারো নির্দেশ চলে না অটুট , যা অতিরিক্ত বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে yoএবং yOসম্ভবতঃ স্মৃতিবর্ধনবিদ্যা "আপনি খোলা" জন্য। এগুলি কেবল তার ভিমডকে নথিভুক্ত রয়েছে, যেমন:

'পেস্ট' করার জন্য একটি টগল সরবরাহ করা হয়নি কারণ একাকীকরণ সন্নিবেশ মোড়ানোর সাধারণ ব্যবহারের ক্ষেত্রে এতটাই অপচয় হ'ল: আপনি দুবার টগল করেছেন তবে আপনি কেবল একবার (YOPO) পেস্ট করবেন। পরিবর্তে, ইতোমধ্যে সেট করা 'পেস্ট' দিয়ে ও বা ওকে অনুরোধ করতে ইয়ো বা yo টিপুন। Sertোকানো মোডটি স্বয়ংক্রিয়ভাবে 'নোপস্টে' সেট করে।


1

পেস্ট করার আরেকটি উপায় হ'ল <CR>নিবন্ধের বিষয়বস্তুগুলি (এখানে বিশ্বব্যাপী রেজিস্ট্রার) মাধ্যমে ping দেখুন: :h i_ctrl-rএবং h i_CTRL-R_CTRL-O

ভিএম সহায়তা নথি থেকে:
Insert the contents of a register literally and don't auto-indent. Does the same as pasting with the mouse<MiddleMouse>. Does not replace characters! The '.' register (last inserted text) is still inserted as typed.{not in Vi}

সুতরাং অটো ইন্ডেন্ট ছাড়াই ভিমে কনটেন্টগুলি আটকানোর জন্য, <CR><CO>*বেশিরভাগ ইউনিক্স সিস্টেমে ব্যবহার করুন ।

দ্রষ্টব্য: ভিএম সংকলিত থাকলে এটি কেবলমাত্র কাজ করে clipboard



1

আর একটি উত্তর আমি এখনও অবধি দেখিনি:

:se paste noai

0

দুঃখের সাথে আমি খুঁজে পেয়েছি যে ভিআইএম প্লাগইনটি আইটিার্ম 2 3.0.15 এর সাথে কাজ না করার কথা উল্লেখ করেছে (ন্যায্য বলতে আমি জানি না এটির পুরানো সংস্করণগুলি ভেঙে গেছে কিনা) - তবে আমি তার পরিবর্তে এই হ্যাকটি পেয়েছি।

পেস্ট করতে iTerm2 ভিম কী ব্যবহার করতে কমান্ড-পি ম্যাপ করুন। স্পষ্টতই এটি কেবল আইটার্ম 2 এর জন্য কাজ করে।

কিভাবে এটা কাজ করে. আমি পালানোর মোডে প্রবেশ করতে "jk" ব্যবহার করি যাতে আপনারও এটির প্রয়োজন হবে:

: inoremap জে.কে.

আপনার .vimrc এ।

তারপরে এটি কেবলমাত্র পেস্ট মোডে প্রবেশের জন্য P কে অনুরোধ করে, "+ পি ক্লিপবোর্ড থেকে পেস্ট করতে এবং তারপরে পেস্ট মোড অক্ষম করতে পি।

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


1
অপেক্ষা করুন, কী, আপনি এর জন্য 'জে কে' ব্যবহার করেন?
0xc0de

হ্যাঁ, আমি এটি উল্লেখ করতে ভুলে গেছি। আপনার .vimrc এ কেবল ": inoremap jk <esc>" যুক্ত করুন। হিসেবে কেন আমি জে কে ব্যবহার করেন, অ্যাপল জিজ্ঞাসা এবং কেন তারা সরানো এবং শারীরিক পালাবার কী পরিত্রাণ পেতে প্রয়োজনীয়তা অনুভব করেন। 8 (
নীল ম্যাকগিল

বিটিডাব্লু এটি কিছু প্রশিক্ষণ নেয় তবে কিছু পরে জে কে দ্রুত অনুভব করে এবং আমি মনে করি যে আমি এটিকে এখন পালানোর চেয়ে বেশি পছন্দ করি ... যাইহোক, আইটির্ম 2 এটি <ESC> গ্রহণ করে কিনা তা জানতে আগ্রহী হবে।
নীল ম্যাকগিল

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