Vi এডিটরটিতে কীভাবে পেস্টের বিষয়বস্তু অনুলিপি করবেন


165

আমি কোনও vi সম্পাদক নথিতে বিষয়বস্তু আটকানোর জন্য Ctrl+ ব্যবহার করার চেষ্টা করেছি V, তবে Ctrl+ Vএকটি পেস্ট হিসাবে ব্যাখ্যা করা হয় না।


16
কেবল একটি নোট, ভি ব্যবহারের মূল কারণ হ'ল ভিম ইনস্টল করা হয়নি। আপনার যদি ভিম ইনস্টল করা থাকে তবে তার পরিবর্তে এটি সম্ভবত ব্যবহারের পক্ষে উপযুক্ত। এটির জন্য প্রতিটি ইউনিক্স ইনস্টলটিতে ইতিমধ্যে উপস্থিত থাকা ছাড়াও সত্যই ভি এর কোনও সুবিধা নেই। আমার মতে ভিম শেখার সর্বোত্তম উপায় হ'ল আপনার টার্মিনাল এমুলেটরটি খুলুন (ভিমের মধ্যে নয়) এবং টাইপ করুন vimtutorএটি আপনাকে দ্রুত গতিতে পৌঁছে দেবে যেখানে এটি প্রায় 45 মিনিটের মধ্যে আপনার ব্যবহারযোগ্য।
বেন

1
+1 @ বেনমর্ডেকাই - আমি এর সুবিধাজনক সাব-শেল সামর্থ্য সহ vi (পুরানো থেকে) এর সাথে ইতিমধ্যে পরিচিত ছিলাম তবে তা রিফ্রেশ দরকার ছিল। টিউটরিং দুর্দান্ত। হাওয়ার মতো এর মধ্য দিয়ে W ধন্যবাদ।
সিবিহে

উত্তর:


192

প্রথমে নিশ্চিত হয়ে নিন যে আপনি সম্পাদনা মোডে রয়েছেন (টিপুন i)। তারপরে আপনি Ctrl+ Shift+ দিয়ে পেস্ট করতে পারেন V, আপনি যদি টার্মিনাল এমুলেটরটিতে থাকেন তবে gnome-terminal(অথবা ডান ক্লিকের মেনু থেকে "আটকান" নির্বাচন করুন)।

আপনি :set pasteস্বয়ংক্রিয় ইনডেন্টিং ইত্যাদি অক্ষম করার জন্য পেস্ট করার আগে আপনি ভিমে টাইপ করতে পারেন । তারপরে :set nopasteআপনি সামগ্রীটি আটকানোর পরে।

এছাড়াও পরীক্ষা এই প্রশ্নের আরো তথ্যের জন্য stackoverflow.com।

আপনি যদি vimক্লিপবোর্ডের বিষয়বস্তু পেস্ট করার বিপরীতে লাইনগুলি অনুলিপি / পেস্ট করতে চান তবে আপনি ইয়াঙ্ক আদেশটি পরীক্ষা করে দেখতে চান । এখানে একটি ঠকানো শীট যা সাহায্য করতে পারে is


1
আমি মনে করি আপনার যদি মাউস কার্সার চালু থাকে তবে আপনি Ctrl + Shift + V ব্যবহার করে পেস্ট করতে পারবেন না।
অ্যালভিন ওং

14
কেবল একটি নোট, এটি Iকেস-সংবেদনশীল। লোয়ারকেসটি iসন্নিবেশ মোডে প্রবেশের স্বাভাবিক উপায়। মূলধনটি Iকার্সারটিকে লাইনের শুরুতে নিয়ে আসে এবং তারপরে আপনাকে সন্নিবেশ মোডে প্রবেশ করে।
বেন

64

ভিডি (এবং ভিম) গেডিটের মতো একটি সাধারণ পাঠ্য সম্পাদকের তুলনায় খুব আলাদাভাবে কাজ করে। এটিতে বেশ খাড়া শেখার বক্ররেখাও রয়েছে। আপনি যদি কিছু বেসিক কমান্ড শিখতে চান তবে এই ইন্টারেক্টিভ টিউটোরিয়াল দিয়ে শুরু করুন

তবে, আপনার প্রশ্নের উত্তর দিতে। প্লাস রেজিস্ট্রারের মাধ্যমে সিস্টেম ক্লিপবোর্ডের সামগ্রীগুলি অ্যাক্সেস করা যায়। সুতরাং সাধারণ মোড থেকে, সিস্টেম ক্লিপবোর্ড থেকে যা কিছু আপনি পেস্ট করতে পারেন, টিপুন: "+p(একই সময়ে নয়, তবে একের পর এক)।


3
এটি এমন কিছু যা আমি এখনও অবধি জানতাম না। এছাড়াও, আরও একটি দুর্দান্ত ভিএম টিউটোরিয়াল লিঙ্ক করার জন্য +1।
আটটিলা ও।

19
সম্পাদকদের জন্য বক্ররেখা শেখার কথা বলতে গেলে এখানে "কিছু সাধারণ সম্পাদকের জন্য ধ্রুপদী শেখার কার্ভস ", ব্লগ.থাইলি.এন.পি / প্রজাতন্ত্র / স্টোর / ফলস / ক্রুভস.জেপিজি রয়েছে
hlovdal

জিনোম টার্মিনালে, অনুলিপি এবং পেস্টের শর্ট-কাটগুলি যথাক্রমে Ctrl-Shift-C এবং Ctrl-Shift-V are
ফ্লিম

1
আমি পরিবর্তে <kbd> "</kbd>, <kbd> + </kbd> এবং <kbd> পি </ কেবিডি>" <kbd> "</ কেবিডি>" এবং <কেবিডি> পি <টিপতে চেষ্টা করেছি / কেবিডি> এবং কিছুই ঘটেনি। আমি কী ভুল করেছি? আমি ব্যবহার করি viনাvim
user907860

1
এটাই সঠিক উত্তর। যেমন ব্যবহার Ctrl-Shift-v কেবলমাত্র সাধারণ বিষয়বস্তু দিয়ে কাজ করবে (আপনি টার্মিনালে থাকলে লাইন ব্রেক এবং ইন্ডেন্টেশনগুলি সত্যই ভুল হতে পারে, এবং আপনি ব্যবহার করতে ভুলে গেছেন set :paste)।
আরএসএন্না

29
  1. আপনি যদি একই ফাইলের মধ্যে পেস্টের সামগ্রীগুলি অনুলিপি করতে চান তবেyank এবং ব্যবহার করুন paste

  2. আপনি যদি টার্মিনাল জুড়ে পেস্টের বিষয়বস্তু অনুলিপি করতে চান তবে প্রথম ফাইলটি খুলুন, আপনি যে পাঠ্যটি চান তা ইয়ানক্কিং করুন, তারপরে আপনার দ্বিতীয় ফাইলটি ভিএম (উদাঃ :tabnew /path/to/second/file) এর মধ্যে খুলুন এবং pএটি আটকে দিতে টিপুন ।

  3. আপনি যদি ভিআইএম থেকে কোনও বাহ্যিক প্রোগ্রামে পেস্টের সামগ্রীগুলি অনুলিপি করতে চান তবে আপনাকে সিস্টেম ক্লিপবোর্ডে অ্যাক্সেস করতে হবে। আমি ধরে নিলাম আপনি উবুন্টু ব্যবহার করেন ভিমের জিইউআই সংস্করণটিতে সর্বদা ক্লিপবোর্ড সমর্থন থাকে, তবে আপনি যদি টার্মিনাল থেকে ভিম ব্যবহার করতে চান তবে আপনাকে এক্স 11-ক্লিপবোর্ড সমর্থন পরীক্ষা করতে হবে।

    কনসোল থেকে, টাইপ করুন:

    $ vim --version | grep xterm
    

    যদি আপনি -xterm_clipboard সন্ধান করেন তবে আপনার কাছে দুটি বিকল্প রয়েছে:

    ১) এক্সটার্ম_ক্লিপবোর্ড পতাকাটি সহ, নিজেকে ভিএম কম্পাইল করুন

    2) Vim আনইনস্টল করুন, পরিবর্তে gvim (vim-gtk বা vim-gnome) ইনস্টল করুন। আপনি টার্মিনাল থেকে ভিএম কল করে নন-গুই ভিমে আটকে থাকতে পারেন, আপনি আগে যেমন করেছিলেন। এবার যখন আপনি চেক করবেন তখন আপনার + xterm_clipborad পাওয়া উচিত ।

    এখন, আপনি যখন আপনার ভিএম এডিটর (যেমন "+ yy) এর ভিতরে + রেজিস্ট্রারে কিছু পাঠ্য ইঙ্ক করেন, এটি সিস্টেম ক্লিপবোর্ডেও অনুলিপি হয়ে যায় যা আপনি জেডিট সম্পাদকের মতো আপনার বাহ্যিক প্রোগ্রাম থেকে উদ্ধার করতে পারেন, Ctrl+ ব্যবহার করে V

  4. আপনি পেস্ট বিষয়বস্তু কপি করতে চান তাহলে তেজ মধ্যে একটি বহিস্থিত প্রোগ্রাম থেকে প্রথম মাধ্যমে সিস্টেম ক্লিপবোর্ডে আপনার লেখা কপি Ctrl+ + C, তারপর তেজ সম্পাদকে সন্নিবেশ মোড , ক্লিক করুন মাউস মধ্যম বাটন (সাধারণত চাকা) অথবা প্রেস Ctrl+ + Shift+ + Vপেস্ট করতে।

    এগুলি 4 টি বীম সম্পর্কিত অনুলিপি এবং বিম সম্পর্কিত সম্পর্কিত শর্তাদি। আশা করি এটা কাজে লাগবে.


এর বিন্দুটি কী: ট্যাবনেউ / পাথ / টু / সেকেন্ড / ফাইল? আপনি ঠিক একই জিনিসটি প্রথম ফাইলটিতে ইয়াঙ্কিং / অনুলিপি / কাটা, দ্বিতীয় ফাইলটি খুলতে পারবেন: vi / পাথ / টু / সেকেন্ড / ফাইল এবং এতে পেস্টিং (পি / পি) দিয়ে। কমপক্ষে আমার ক্ষেত্রে ... বা আমার কাছে + এক্সটারম_ক্লিপবোর্ড ভিআইএম বৈশিষ্ট্যটি সক্ষমিত রয়েছে বলেই এটি? নাকি ঠিক তেমন কিছু আছে?
সিবিহে

1
উবুন্টু উপর vim-gtkরয়েছে xterm_clipboardসমর্থন এবং ফেডোরা উপর xvimএটা হয়েছে।
icc97

18

আমি সর্বদা Shift+ ব্যবহার Insertকরি যখন আমি টার্মিনালে পাঠ্য আটকে দিতে চাই, সমস্ত টার্মিনাল প্রোগ্রামে কাজ করে।

(এটিই কারণ যা আমি কখনই কোনও ল্যাপটপ পাই না যেখানে Insertসেকেন্ডারি কী টিপে চাপতে পারবেন না )


2
Vi/ Vim! = টার্মিনাল;)
0xC0000022L

1
ঠিক আছে, তবে এটি এখনও কার্যকর হয় :)
ম্যাগনাস জোনসন

এই জন্য +1 .. কি আপনি বলতে সম্পাদন করতে ব্যবহার করবেন Ctrl+A, Ctrl+Cএছাড়াও?
অরূপ রক্ষিত

আমি যদি ডিই এর অভ্যন্তরে টার্মিনাল ব্যবহার করি তবে আমি সাধারণত মাউসের সাহায্যে পাঠ্য নির্বাচন করি এবং সিটিআরটিএল + শিফট + সি দিয়ে অনুলিপি করি।
ম্যাগনাস জোনসন

শিফট + সন্নিবেশও জিভিএম-এ কাজ করে। (আমি যদি উবুন্টু 13.10 চালিয়ে যাচ্ছি, যদি তাতে কোনও পার্থক্য হয়))
এক্সরেসটো

10

আপনি অন্য কোথাও হাইলাইট করেছেন এমন পাঠ্য সন্নিবেশ করতে মাউসের কেন্দ্রের বোতামটি ব্যবহার করুন ।

আপনার সিস্টেমে ক্লিপবোর্ডে অ্যাক্সেস না থাকলে এটি কার্যকর হয় (উদাহরণস্বরূপ, একটি দূরবর্তী এসএসএইচ সেশনে)।

ভিমের জন্য অবশ্যই সম্পাদনা / সন্নিবেশ মোডে থাকতে হবে।


6

একবার আপনি vi প্রবেশ করালে, iসন্নিবেশ মোডে উঠতে টিপুন , টার্মিনালে ডান ক্লিক করুন, পেস্ট ক্লিক করুন।


আমি ভেবেছিলাম লোয়ার-কেস i। আপার-কেস কী করে I?
ফ্লিম

@ ফ্লিমটি ইতিমধ্যে অন্য উত্তর সম্পর্কে বেন মোরদেকাইয়ের একটি মন্তব্যে ব্যাখ্যা করা হয়েছিল।
সিয়ারাসডেট্যান্ডিল

আমি উত্তর ছোট হাতের হিসাবে সম্পাদনা করেছি i। আপার-কেস Iসন্নিবেশ মোডে প্রবেশের আগে লাইনটির শুরুতে কার্সারটি সরায়, যা এখানে প্রয়োজন হয় না।
ফ্লিম

5

Vi ব্যবহার করে yankএবং তে টেক্সটের লাইনগুলি অনুলিপি / আটকানোর জন্য বিশদ নির্দেশাবলীput

( vi এর কমান্ড মোডে নিম্নলিখিতটি ব্যবহার করুন )

অনুলিপি (YANK)

Vi তে একটি লাইন অনুলিপি করতে:

  • কমান্ড মোডে, কার্সারটি সেই লাইনে সরান যা কপি করে টাইপ yyবা টাইপ করা দরকার toY

Vi তে 2 লাইন অনুলিপি করতে:

  • কমান্ড মোডে, কার্সারটিকে প্রথম লাইনে নিয়ে যান যা অনুলিপি করে টাইপ 2yyবা টাইপ করা দরকার2Y

(একইভাবে, যে কোনও লাইন অনুলিপি করা যায়)

বর্তমান অবস্থান থেকে ফাইলের শেষ পর্যন্ত সমস্ত লাইন অনুলিপি করতে:

  • কমান্ড মোডে, কার্সারটিকে প্রথম লাইনে সরান যা কপি করে টাইপ করা দরকার needs yG

বর্তমান অবস্থান থেকে বর্তমান শব্দের শেষে সমস্ত পাঠ্য অনুলিপি করতে:

  • কমান্ড মোডে, কার্সারটিকে এমন জায়গায় নিয়ে যান যেখান থেকে পাঠ্য অনুলিপি করে টাইপ করা দরকার yw

বর্তমান অবস্থান থেকে রেখার শেষ পর্যন্ত সমস্ত পাঠ্য অনুলিপি করতে:

  • কমান্ড মোডে, কার্সারটিকে এমন জায়গায় নিয়ে যান যেখান থেকে পাঠ্য অনুলিপি করে টাইপ করা দরকার y$

আটকান (পুট)

ক্লিপবোর্ডে পাঠ্য আটকানোর জন্য - কার্সারের অবস্থানের পরে :

  • কমান্ড মোডে টাইপ করুন p

ক্লিপবোর্ডে পাঠ্য আটকানোর জন্য - কার্সারের অবস্থানের আগে :

  • কমান্ড মোডে টাইপ করুন P

1

আমার একটি সমস্যা ছিল, কারণ আমার ভিম ইনস্টলেশন ক্লিপবোর্ড সমর্থন করে না :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

আমি vim-gnome (যা ক্লিপবোর্ড সমর্থন করে) ইনস্টল করেছি এবং তারপরে আবার চেক করেছি:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

এখন আমি যথাক্রমে "+ y এবং" + পি ব্যবহার করে অনুলিপি এবং আটকানোতে সক্ষম হয়েছি।


এই আমার সমস্যা স্থির!
অ্যাস্ট্রজুয়ানলু

1

লিনাক্স বা ম্যাকের ভিম 8+ এর সাহায্যে আপনি এখন কেবল ওএসের নেটিভ পেস্ট ( ctrl+shift+Vলিনাক্সে, cmd+Vম্যাকে) ব্যবহার করতে পারেন । iসন্নিবেশ মোডের জন্য টিপুন না ।

এটি স্বয়ংক্রিয়তা যোগ না করে ফাঁকা স্থান এবং ট্যাব সংরক্ষণ করে আপনার ওএস ক্লিপবোর্ডের সামগ্রীগুলি পেস্ট করবে। এটা তোলে পুরাতন সমতুল্য :set paste, i, ctrl+shift+V, esc, :set nopasteপদ্ধতি।

এমনকি আপনার আর +clipboardবা +xterm_clipboardউইম বৈশিষ্ট্যগুলি ইনস্টল করার দরকার নেই। এই বৈশিষ্ট্যটির নাম "বন্ধনীযুক্ত পেস্ট"। আরও তথ্যের জন্য https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763 দেখুন


এই উত্তরটি আমি খুঁজছি। যেহেতু ভিএনএম gnu / লিনাক্স ডিস্ট্রোজে ডিফল্ট নয়, এটি উবুন্টুতেও ইনস্টল করা প্রয়োজন। অতিরিক্তভাবে, ভি এর আপ ডাউন বোতামগুলি উবুন্টুতে কাজ করে না এবং হাইলাইট করে না।
নোটমাইরিয়াল


0

আমি কেবল এটি লক্ষ করতে চেয়েছিলাম যে উইন্ডোজে গিট ব্যাশের মাধ্যমে ভিম ব্যবহার করে, আপনি কেবল pসন্নিবেশ মোডে না রেখে মাউসের সেকেন্ড-ক্লিক বা ব্যবহার করতে পারেন । মাধ্যমে তেজ ব্যবহার পুটিং , আপনি শুধু ডান ক্লিক করতে পারেন। এবং হাইলাইটিং অনুলিপি করা হয়।

আমি এটি উল্লেখ করেছি কারণ আমি এখানে এসে দেখছি না যে এটি উবুন্টুর জন্য এসই।

অন্যান্য সহায়ক আদেশ:

  • yy(লাইনের # টি) - ইয়াঙ্ক (অনুলিপি)
  • dd(# লাইনের) - মুছুন
  • p - বর্তমান লাইনের নীচে পেস্ট লাইন
  • Shift+ p- বর্তমান লাইনের উপরে লাইন আটকে দিন
  • u - পূর্বাবস্থা
  • r - আবার করুন
  • i - সন্নিবেশ মোড
  • v - ভিজ্যুয়াল মোড

উইন্ডোজ গিট ব্যাশে এটি আমার পক্ষে কার্যকর হয়নি। আপনি কোন কনসোল ব্যবহার করছেন, পুদিনা বা উইন্ডোজ সেমিডি?
উইসবাকি

আমি বিশ্বাস করি এটি পুদিনা ছিল।
টাইলার খ্রিস্টান

0

আপনি ব্যবহার করতে পারে Ctrl+ + Shift+ + Vটার্মিনাল সংস্করণ তেজ পেস্ট, কিন্তু গুই সংস্করণ তেজ মত Neovim-Qt, সিস্টেম ক্লিপবোর্ড থেকে আটকানো হচ্ছে পাঠ্য সহ Ctrl+ + Shift+ + Vকেবল কাজ করবে না। আপনাকে ক্লিপবোর্ডে "+বা "*ভিম সম্পাদকটিতে অ্যাক্সেস করতে হবে ।

এতে নতুন কী-বাইন্ডিং যুক্ত করা .vimrcঅনুলিপি করে অনুলিপি / অনুলিপি করবে:

" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.