তোমার মা তোমাকে কখনই বলেনি ভিমের অন্ধকার কোণগুলি কী? [বন্ধ]


799

প্রশ্নগুলির আধিক্য রয়েছে যেখানে লোকেরা সাধারণ কৌশল সম্পর্কে উল্লেখ করে, উল্লেখযোগ্যভাবে " Vim + ctags টিপস এবং কৌশল "।

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


10
: সেক্স স্প্লিট উইন্ডো এবং ওপেন ইন্টিগ্রেটেড ফাইল এক্সপ্লোরার (অনুভূমিক বিভাজন)
user3218088

2
এই প্রশ্নটি বেশ গঠনমূলক বলে মনে হচ্ছে - আপভোটের সংখ্যা দেখে ... আবার খোলার পক্ষে ভোট দিয়েছিল - সম্ভবত কিছু শীতল উত্তর এসেছে - যা দরকারী হলে উপস্থাপন করা যেতে পারে - সুতরাং এসওএফকে আরও মান দেয়। ভোটের মাধ্যমে উত্তরগুলি অর্ডার করে আমি মাত্র 5 মিনিটের মধ্যে প্রচুর শীতল জিনিস শিখেছি ... সত্যিই মূল্যবান জিনিস এখানে, কেন এই মূল্যবান কিছুটি বন্ধ করুন? এটি কীভাবে গঠনমূলক নয়?
heেগেগাস

7
হাস্যকর যে এই প্রশ্নটি বন্ধ। আইনতত্ত্ব সম্পর্কে কথা বলুন।
লেপিডোপটারিস্ট

2
আমি মনে করি এই প্রশ্নটি খুব গঠনমূলক তবে কোওরায় আরও উপযুক্ত।
ডায়োগো মেলো

2
কেন এই প্রশ্নটি মুছে ফেলার জন্য 2 টি (এখন হিসাবে) ভোট রয়েছে? এটি সম্ভবত কি ভাল করবে?
আকাওয়াল

উত্তর:


781

৯৯% ভিম ব্যবহারকারী জানেন না এমন একটি হতে পারে না, তবে এটি আমি প্রতিদিন ব্যবহার করি এবং যে কোনও লিনাক্স + ভিম শক্তি ব্যবহারকারীর অবশ্যই জানা উচিত।

বেসিক কমান্ড, এখনও অত্যন্ত দরকারী।

:w !sudo tee %

আমি প্রায়শই কোনও ফাইল সম্পাদনা করার আগে sudo করতে ভুলে যাই আমার কাছে লেখার অনুমতি নেই। যখন আমি সেই ফাইলটি সংরক্ষণ করতে এবং অনুমতি ত্রুটি পেতে আসি, তখন আমি কেবলমাত্র একটি ভিএম কমান্ডটি ফাইলটি কোনও অস্থায়ী ফাইলে সংরক্ষণ করার প্রয়োজন ছাড়াই সংরক্ষণ করার জন্য জারি করি এবং তারপরে আবার কপি করে ফেলি।

আপনার অবশ্যই সুডো ইনস্টলড সিস্টেমে থাকতে হবে এবং সুডোর অধিকার থাকতে হবে।


116
তর্কসাপেক্ষভাবে, এটি ভিএমকে রুট হিসাবে চালানোর চেয়েও ভাল ! সম্মত!
আরাফ্যাজিওন

27
একটি নুব জন্য, টি ঠিক কি করে? কেউ কি আমার জন্য এই আদেশটি বিশ্লেষণ করতে কিছু মনে করবে?
অ্যান্ডিল

41
cmap w !! w! sudo tee%
jm666

58
আপনার কখনও চালানো উচিত নয় sudo vim। পরিবর্তে আপনার EDITORভিএম হিসাবে রফতানি করা উচিত এবং চালানো উচিত sudoedit
জেরার্ডো মার্শেট

8
@ ম্যাক্সিমাস: ভিএম% কে বর্তমান বাফার / ফাইলের নামে প্রতিস্থাপন করে।
মিগু

617

আমি সবেমাত্র এমন কিছু আবিষ্কার করেছি যা আমি ভেবেছিলাম খুব শীতল:

:earlier 15m

দস্তাবেজটি 15 মিনিট আগে কীভাবে ফিরে আসে তা ফিরিয়ে দেয়। আপনি যে পরিমাণ সময় পিছনে ফিরে যেতে চান তার জন্য বিভিন্ন যুক্তি নিতে পারে এবং আনডোভেলভেলসের উপর নির্ভরশীল। বিপরীত কমান্ড দিয়ে বিপরীত হতে পারে:later


6
@ স্কিনপ: আপনি যদি পূর্বাবস্থায় ফিরে যান এবং তারপরে পূর্বে পূর্ববর্তী অবস্থা থেকে আরও পরিবর্তন করেন তবে আপনি সেই পুনরায় ইতিহাস হারাবেন। এটি আপনাকে এমন অবস্থায় ফিরে যেতে দেয় যা পূর্বে ফিরানো স্ট্যাকের মধ্যে নেই in
মুহুর্তের

39
সময় মতো পিছনে এবং এগিয়ে যেতে খুব দরকারী জি + এবং জি-। এটি পূর্বাবস্থায় ফেরানোর স্ট্যাকের চেয়ে অনেক বেশি শক্তিশালী, যেহেতু আপনি যখন কোনও পূর্বাবস্থার পরে কিছু করেন আপনি ইতিহাসটি looseিলে করেন না।
এটিয়েন পিয়ারের

9
পূর্বাবস্থায় ফিরে যাওয়ার পরে যদি আপনি কোনও পরিবর্তন করেন তবে আপনি পুনরায় ইতিহাস হারাবেন না। এটি কেবল সহজে অ্যাক্সেস করা যায় না। গুন্ডো.ভিম
এহতেশ চৌধুরী

559
বাহ, তাই এখন আমি ঠিক করতে পারি :later 8hএবং আমি আজকের জন্যই হয়েছি? : পি
ইগর পপভ

7
আপনার কমান্ড ধরে নিয়েছে যে একজন কমপক্ষে 15 মিনিট ভিএম এ ব্যয় করবে !
e2-e4

411

:! [command] আপনি ভিমে থাকাকালীন একটি বাহ্যিক কমান্ড কার্যকর করে।

তবে কোলনের পরে একটি বিন্দু যুক্ত করুন :.! [command]এবং এটি কমান্ডের আউটপুটটিকে আপনার বর্তমান উইন্ডোতে ফেলে দেবে। যে: . !

উদাহরণ স্বরূপ:

:.! ls

আমি টাইপ করছি এমন নথিতে বর্তমান তারিখ যুক্ত করার মতো জিনিসের জন্য আমি এটি ব্যবহার করি:

:.! date

74
এটি বেশ অনুরূপ: আর! যতদূর আমি বলতে পারি পার্থক্যটি হ'ল: আর! একটি নতুন লাইন খোলে,:! বর্তমান লাইনটি ওভাররাইট করে।
saffsd

6
একটি বিকল্প :.!dateহ'ল একটি তারিখে "তারিখ" লিখুন এবং তারপরে রান করুন !$sh(বিকল্পভাবে কমান্ডটি ফাঁকা লাইন দিয়ে চালানো এবং চালানো !jsh)। এটি "sh" শেলটিতে লাইনটি পাইপ করবে এবং কমান্ড থেকে আউটপুট সহ বিকল্প পাবে।
hlovdal

43
:.!আসলে এটির একটি বিশেষ কেস :{range}!, যা .একটি কমান্ডের মাধ্যমে বিভিন্ন রেখার (বর্তমান রেখাটি যখন সীমা থাকে ) ফিল্টার করে এবং আউটপুট দিয়ে সেই লাইনগুলি প্রতিস্থাপন করে। আমি :%!পুরো বাফারগুলি ফিল্টার করার জন্য দরকারী বলে মনে করি ।
নেফ্রুবাইর

2
@ সুন্দর: sedআপনি যখন অনুরূপ অন্তর্নির্মিত ed/ exআদেশগুলি ব্যবহার করতে পারেন তখন কেন একটি লাইন পাস করবেন ? :.s/old/new/g;-) চালানোর চেষ্টা করুন
জবিরালি

4
এবং এটিও লক্ষ করুন যে '!' 'y', 'd', 'c' ইত্যাদির মতো অর্থাত আপনি করতে পারেন: !!, সংখ্যা !!,! গতি (যেমন! Gshell_command <cr> বর্তমান লাইন থেকে ফাইলের শেষে ('জি') এর সাথে প্রতিস্থাপন করুন শেল_কমন্ডের আউটপুট)।
aqn

312

ঠিক অস্পষ্ট নয়, তবে বেশ কয়েকটি "ডিলিট ইন" কমান্ড রয়েছে যা অত্যন্ত কার্যকর, যেমন ..

  • diw বর্তমান শব্দটি মুছতে
  • di( বর্তমান পেরেনগুলির মধ্যে মুছতে
  • di" উদ্ধৃতিগুলির মধ্যে পাঠ্য মুছতে

অন্যদের পাওয়া যাবে :help text-objects


8
ড্যাব "অরনব বন্ধনী মুছে ফেলুন", প্রায় কোঁকড়ানো বন্ধনীগুলির জন্য ডিএবি, এক্সএমএল টাইপ ট্যাগের জন্য টি, সাধারণ কমান্ডের সংমিশ্রণগুলি প্রত্যাশিত সিবি / ইয়াবি / ডিআইটি / ভ্যাট ইত্যাদি হিসাবে রয়েছে
এসজেএইচ

15
@ ম্যাসি: ইয়ি (ভিএ (পি শুধুমাত্র বন্ধনী মুছে ফেলবে
ডন রেবা

42
এটি সম্ভবত আমার সাথে ভিমের সাথে থাকার সবচেয়ে বড় কারণ। এটি এবং এর সমতুল্য "পরিবর্তন" কমান্ডগুলি: সিআইইউ, সিআই (, সিআই), পাশাপাশি ডিটি <স্পেস> এবং সিটি <স্পেস>
থোমাসরুতার

4
@ থোমাস্রুটটার: ডিটি <স্পেস> এর পরিবর্তে ডিডাব্লু / সিডাব্লু কেন নয়?

9
@Masi: সঙ্গে পারিপার্শ্বিক প্লাগইন। DS (

237

ডি টিপে শব্দের শেষ অবধি সমস্ত কিছু মুছুন। আপনার হৃদয়ের ইচ্ছায়

ci (xyz [Esc] - এটি একটি অদ্ভুত একটি। "xyz"। এটি বর্গক্ষেত্র এবং চিত্রের বন্ধনীগুলির ভিতরেও কাজ করে - কেবলমাত্র সিআই [বা সিআই {একইভাবে করুন Natural স্বাভাবিকভাবেই আপনি ডিআই করতে পারেন (যদি আপনি কেবল কোনও কিছু টাইপ না করে সমস্ত পাঠ্য মুছতে চান তবে আপনি aপরিবর্তে এটি করতে iপারেন যদি আপনি পাশাপাশি প্যারেন্টেসিসগুলি মুছতে চান এবং কেবল তাদের ভিতরে পাঠ্যই নয়।

ci " - বর্তমান উদ্ধৃতিতে টেক্সট কেটে দেয়

ciw - বর্তমান শব্দটি কেটে দেয়। এটি (প্রতিস্থাপন করা ছাড়া কেবল আগের মতো কাজ করে w

সি - বাকি রেখাটি কেটে সন্নিবেশ মোডে স্যুইচ করুন।

জেডজেড - বর্তমান ফাইলটি সংরক্ষণ এবং বন্ধ করুন (বর্তমান ট্যাবটি বন্ধ করতে Ctrl-F4 এর চেয়ে দ্রুততর উপায়!)

ডিডিপি - বর্তমান লাইনটিকে এক সারি নীচে সরান

এক্সপি - বর্তমান চরিত্রটিকে এক অবস্থান থেকে ডানে সরান

ইউ - বড় হাতের অক্ষর, তাই viwUশব্দটি উচ্চারণ করে

~ - স্যুইচস কেস, সুতরাং viw~পুরো শব্দের আবরণকে বিপরীত করবে

Ctrl + u / Ctrl + d পৃষ্ঠাটি অর্ধ-পর্দা উপরে বা নীচে স্ক্রোল করুন। এটি স্বাভাবিক ফুল-স্ক্রিনের পেজিংয়ের চেয়ে বেশি কার্যকর বলে মনে হচ্ছে কারণ দুটি স্ক্রিন কীভাবে সম্পর্কিত তা দেখতে এটি আরও সহজ করে তোলে। যারা এখনও পুরো স্ক্রিনটি একবারে স্ক্রোল করতে চান তাদের জন্য ফরোয়ার্ডের জন্য Ctrl + f এবং পিছনের জন্য Ctrl + b রয়েছে। Ctrl + Y এবং Ctrl + E একবারে এক লাইন নীচে বা উপরে।

ক্রেজি কিন্তু খুব দরকারী কমান্ডটি zz - এটি এই লাইনটি মাঝখানে প্রদর্শিত করতে স্ক্রিনটি স্ক্রোল করে। আপনার মনোযোগ কেন্দ্রে আপনি যে কোডটির উপর কাজ করছেন তাতে টুকরো টুকরো রাখার জন্য এটি দুর্দান্ত। সিবিলিং কমান্ড - zt এবং zb - এই লাইনটিকে শীর্ষে বা নীচের অংশটিকে স্রিনে তৈরি করুন যা যথেষ্ট কার্যকর নয়।

% খুঁজে পেয়েছে এবং ম্যাচিং প্যারেনেসিসে ঝাঁপিয়ে পড়ে।

ডি - শব্দের শেষে কার্সার থেকে মুছুন (আপনি dEপরবর্তী স্থান পর্যন্ত মুছতেও পারেন)

bde - বাম থেকে ডান ডিলিমিটারে বর্তমান শব্দটি মুছুন

df [স্পেস] - পরবর্তী স্থান পর্যন্ত এবং মুছে ফেলুন

DT। - পরবর্তী বিন্দু পর্যন্ত মুছুন

ডিডি - এই সম্পূর্ণ লাইনটি মুছুন

তোমরা (বা হ্যাঁ) - শব্দটির শেষাংশ পর্যন্ত এখান থেকে পাঠ্য

সিআর - শব্দের শেষে কাটা

বিদায় - বর্তমান শব্দটি অনুলিপি করে ("হাই" কী করে তা আমাকে অবাক করে তোলে!)

yy - বর্তমান লাইনটি অনুলিপি করে

সিসি - বর্তমান লাইনটি কেটে দেয়, Sপরিবর্তে আপনি এটিও করতে পারেন । এছাড়াও নিম্ন ক্যাপ রয়েছে sযা বর্তমান চরিত্রটি কেটে দেয় এবং মোড inোকাতে স্যুইচ করে।

viwy বা viwc । ইয়াঙ্ক বা বর্তমান শব্দ পরিবর্তন করুন। wপরবর্তী প্রতিটি শব্দ নির্বাচন করতে একাধিকবার হিট করুন , bপিছনের দিকে যেতে ব্যবহার করুন

vi { - চিত্রের বন্ধনীগুলিতে সমস্ত পাঠ্য নির্বাচন করুন। va {- text} গুলি সহ সমস্ত পাঠ্য নির্বাচন করুন

vi (পি -) এর ভিতরে সমস্ত কিছু হাইলাইট করুন এবং আটকানো পাঠ্যটি প্রতিস্থাপন করুন

b এবং e কার্সার শব্দ-দ্বারা-শব্দটি সরান, একইভাবে Ctrl + তীরগুলি কীভাবে সাধারণভাবে করে । শব্দের সংজ্ঞা যদিও কিছুটা আলাদা তবে একাধিক ধারাবাহিক ডেলিমেটারকে একটি শব্দ হিসাবে বিবেচনা করা হয়। আপনি যদি কোনও শব্দের মাঝামাঝি থেকে শুরু করেন, বি টিপলে সর্বদা আপনি বর্তমান শব্দের শুরুতে পৌঁছে যাবেন এবং প্রতিটি পর পর খ পরবর্তী শব্দের প্রারম্ভে উঠে যাবে। একইভাবে, এবং মনে রাখা সহজ, eকারেন্টটি কারেন্টের শেষে এবং পরবর্তী প্রতিটি শব্দ পেয়ে যায়।

b/ e, মূলধনের অনুরূপ Bএবং Eকার্সার শব্দ-দ্বারা-শব্দটি সরকারী হিসাবে কেবল সাদা স্থান ব্যবহার করে সরান using

মূলধন ডি (গভীর নিঃশ্বাস নিন) কার্সরের ডানদিকে বাকী রেখাটি মুছে ফেলুন, সাধারণ সম্পাদকদের শিফট + এন্ড / ডেল সমান (নোটিশ 2 কী - টিপুন - শিফট + ডি - 3 এর পরিবর্তে)


15
zt বেশ কার্যকর যদি আপনি এটি কোনও ফাংশন বা শ্রেণি সংজ্ঞা শুরুতে ব্যবহার করেন।
নিক লুইস

9
vityএবং যথাক্রমে এবং vitcসংক্ষিপ্ত করা যেতে পারে । yitcit
নাথান ফেলম্যান

33
আপনি "কাট" বলছেন এমন সমস্ত জিনিস হ'ল "পরিবর্তন"। যেমন: লাইন শেষ হওয়া পর্যন্ত সি পরিবর্তন করা হয়। ভিমের "কাট" এর সমতুল্য "মুছুন", ডি / ডি দিয়ে সম্পন্ন হয়। পরিবর্তন এবং মোছার মধ্যে প্রধান পার্থক্য হ'ল মুছে ফেলা আপনাকে স্বাভাবিক মোডে ফেলে দেয় তবে পরিবর্তন আপনাকে এক প্রকারের সন্নিবেশ মোডে ফেলে দেয় (যদিও আপনি এখনও পরিবর্তন কমান্ডে রয়েছেন যা পুরো পরিবর্তনটির সাথে পুনরাবৃত্তি হতে পারে .)।
লরেন্স গনসালভেস

11
আমি ভেবেছিলাম এটি এমন জিনিসগুলির তালিকার জন্য যা অনেক লোক জানে না। yy খুব সাধারণ, আমি ভাবতাম।
অলমো

19
byeআপনি যখন শব্দের প্রথম চরিত্রে থাকবেন তখন কাজ করে না। yiwসর্বদা না।
আন্দ্রে ফ্রান্সিয়া

204

বেশিরভাগ ভিএম টিউটোরিয়ালগুলিতে আমি খুব কমই খুঁজে পাই, তবে এটি অত্যন্ত দরকারী (কমপক্ষে আমার কাছে), সেটি হ'ল

g; and g,

পরিবর্তন তালিকার মাধ্যমে (এগিয়ে, পিছিয়ে) সরাতে।

আমি এটি কীভাবে ব্যবহার করব তা আমাকে দেখান। কখনও কখনও আমাকে কোড বা স্ট্রিংয়ের একটি টুকরো অনুলিপি করতে হবে, একটি সিএসএস ফাইলে একটি হেক্স রঙের কোড বলতে হবে, তাই আমি অনুসন্ধান করে, লাফাই (ম্যাচটি যেখানে দেখা যায় না যত্নশীল), অনুলিপি করুন এবং তারপরে ফিরে যান (জি;) যেখানে যান আমি কোডটি সম্পাদনা করছিলাম শেষ পর্যন্ত এটি পেস্ট করার জন্য। চিহ্ন তৈরি করার দরকার নেই। সহজ।

শুধু আমার 2 সেন্সেন্ট।


29
একইভাবে, '.শেষ সম্পাদিত লাইনে `.যাবে এবং শেষ সম্পাদিত অবস্থানে যাবে
এহল্কে

8
Ctrl-O এবং Ctrl-I (ট্যাব) একইভাবে কাজ করবে, তবে একই নয়। তারা "লাফের তালিকায়" পিছনে এবং এগিয়ে চলেছে, যা আপনি এটির মাধ্যমে দেখতে পারেন: লাফিয়ে লাফিয়ে বা: ju আরও তথ্যের জন্য একটি করুন: সহায়তা জাম্পলিস্ট
কিমবল রবিনসন

17
আপনি এই পরিবর্তনের তালিকাটি
কিমবল রবিনসন

গরম ডাং যে দরকারী। আমি এই জন্য <C-o>/ <C-i>সর্বদা ব্যবহার করি - বা আমার জায়গা চিহ্নিত করে।
ওয়েইন ওয়ার্নার

187
:%!xxd

একটি ভার্সন সম্পাদক হিসাবে ভিম করুন।

:%!xxd -r

প্রত্যাবর্তন করে।

সতর্কতা: আপনি যদি বাইনারি (-b) দিয়ে সম্পাদনা না করেন তবে আপনি ফাইলটির ক্ষতি করতে পারেন। - জোশ লি মন্তব্যে।


9
এবং কীভাবে আপনি এটি ফিরিয়ে আনবেন?
খ্রিস্টান

40
:! xxd -r // এইচএক্স থেকে ফিরে যেতে
নাগা কিরণ

21
আমি আসলে মনে করি এটি :%!xxd -rএটিকে ফিরিয়ে আনতে হবে
আন্দ্রে গ্র্যাচ

@ জোশলি: যদি কেউ নিউলাইনগুলি না দেখে সতর্ক হন তবে -b বিকল্পটি ব্যবহার না করা কি নিরাপদ? আমি জিজ্ঞাসা করি কারণ মাঝে মাঝে আমি একটি হেক্স পরিবর্তন করতে চাই, তবে ফাইলটি বন্ধ করতে এবং এটি করতে আবার খুলতে চাই না।
দোটানকোহেন

4
@ ডটানকোহেন: আপনি যদি ফাইলটি বন্ধ বা পুনরায় খুলতে না চান তবে আপনি করতে পারেন: বাইনারি সেট করুন
বাম্বু

129
gv

সর্বশেষ চাক্ষুষ নির্বাচনটি পর্যালোচনা করে।


119

কখনও কখনও আপনার .vimrc এর একটি সেটিংস একটি প্লাগইন বা অটোমন্ডমে ওভাররাইড হয়ে যায়। এটির ডিবাগ করার জন্য একটি কার্যকর কৌশলটি হ'ল: ভার্বোজ কমান্ড: সেট এর সাথে একত্রে ব্যবহার করা। উদাহরণস্বরূপ, সিন্ডেন্টটি কোথায় সেট / আনসেট সেট হয়েছে তা নির্ধারণ করার জন্য:

:verbose set cindent?

এটি এমন কিছু আউটপুট দেবে:

cindent
    Last set from /usr/share/vim/vim71/indent/c.vim

এটি মানচিত্র এবং হাইলাইটগুলির সাথেও কাজ করে। (এটি নির্দেশ করার জন্য জোয়েটউইল ধন্যবাদ।) উদাহরণস্বরূপ:

:verbose nmap U
n  U             <C-R>
        Last set from ~/.vimrc

:verbose highlight Normal
Normal         xxx guifg=#dddddd guibg=#111111 font=Inconsolata Medium 14
        Last set from ~/src/vim-holodark/colors/holodark.vim

8
দুর্দান্ত টিপ - আমি ঠিক আজ যা খুঁজছিলাম।
আর্টেম রাশাকোভস্কিই

দুর্দান্ত টিপ ম্যান! কীভাবে আপনি এই গৌরবময় জিনিসগুলি জানতে পারবেন?
রাফিদ

1
:verboseকীম্যাপ বা হাইলাইটটি সর্বশেষে সংজ্ঞায়িত হয়েছিল তার আগে nmap lবা এটির জন্যও ব্যবহার করা যেতে পারে । ডিবাগিংয়ের জন্য খুব দরকারী! highlight NormallNormal
জোয়েটউইডল

@ জোয়েটউইল ধন্যবাদ! আমি উত্তরে সেই তথ্য যুক্ত করেছি।
লরেন্স গনসাল্ভেস

আপনি যখন কাস্টম ম্যাপিংগুলি তৈরি করতে যাবেন, এটি আপনার গাধাটিকে অনেক বার বাঁচাতে পারে, সম্ভবত এখানে সবচেয়ে দরকারী এক (আইএমও)!
সিডওফসি


98

এটি মোটেও অন্ধকার-কোণার-ইশ হিসাবে গণ্য হয়েছে কিনা তা নিশ্চিত নয় তবে আমি কেবল এটি শিখেছি ...

:g/match/y A

(কপি) সমস্ত বাক্সে "ম্যাচ" ধারণকারী লাইন হ্যাঁচকা টান হবে "a/ @aনিবন্ধন। (যেমন ক্যাপিটালাইজেশন Aতোলে তেজ পরিশেষে যোগ পরিবর্তে পূর্ববর্তী রেজিস্টার বিষয়বস্তু প্রতিস্থাপন yankings।) আমি অনেক সম্প্রতি এটি ব্যবহৃত যখন ইন্টারনেট এক্সপ্লোরার স্টাইলশীট করে।


সংখ্যা, সংখ্যা আমি এই এক :) দেখা যায় না যেমন

সুন্দর. এর সম্পর্কে কখনও শুনিনি ... কার্যকর হতে পারে: পি
স্ক্রিনপ

5
আপনি ব্যবহার করতে পারেন: ছ! একটি প্যাটার্নের সাথে মেলে না এমন রেখাগুলি সন্ধান করতে যেমন: g! / set /
normaldd (

3
কখনও কখনও এটি সুকিমি যা বলেছিল তা করা ভাল এবং কেবল আপনার প্যাটার্নের সাথে মেলে না এমন লাইনগুলি ফিল্টার করে। যদিও এই কমান্ডটির সংক্ষিপ্ত সংস্করণ: :v/PATTERN/dব্যাখ্যা: এর :vজন্য একটি সংক্ষেপণ :g!এবং :gকমান্ডটি লাইনের সাথে কোনও প্রাক্তন কমান্ড প্রয়োগ করে। :y[ank]কাজ করে এবং তাই করে :normalতবে এখানে সর্বাধিক প্রাকৃতিক জিনিসটি ঠিক :d[elete]
পান্ডুবিয়ার

আপনি এটিও করতে পারেন :g/match/normal "Ayy- normalকীওয়ার্ডটি আপনাকে এটিকে নরমাল-মোড কমান্ডগুলি চালনা করতে দেয় (যার সাথে আপনি সম্ভবত আরও পরিচিত)।
কিমবল রবিনসন

93

আপনার: কমান্ডের ইতিহাসটি দেখতে চান?

q:

তারপরে ব্রাউজ করুন, সম্পাদনা করুন এবং শেষ অবধি কমান্ডটি কার্যকর করুন।

দুটি ফাইলে কখনও একই রকম পরিবর্তন আনতে হবে এবং তাদের মধ্যে পিছনে পিছনে স্যুইচ করবেন? (বলুন, উত্স এবং শিরোলেখ ফাইল?)

:set hidden
:map <TAB> :e#<CR>

তারপরে এই ফাইলগুলির মধ্যে পিছনে ট্যাব করুন।


131
আমি q:সব সময় দুর্ঘটনার কবলে পড়েছি ...
জোশ লি

11
বিকল্প হিসাবে, প্রাক্তন সম্পাদক (:) থেকে, আপনি কমান্ড ইতিহাসের উইন্ডোটি পপআপ করতে CTRL-f করতে পারেন।
জেসন ডাউন

6
@ জ্লেদেভ আমাকেও। আমি এই আদেশটি প্রায় ঘৃণা করি, কারণ আমি এটিকে দুর্ঘটনাক্রমে খুব বেশি ব্যবহার করি।
bradlis7

9
q / এবং q? আপনার অনুসন্ধান নিদর্শনগুলির জন্য একই জাতীয় জিনিস করতে ব্যবহার করা যেতে পারে।
বিপিডব্লিউ 1621

5
<Cf> এর পরে: বা / (বা যে কোনও সময় আপনি কমান্ড মোডে থাকবেন) হিট করা একই ইতিহাস মেনুটি নিয়ে আসবে। সুতরাং আপনি কিউ পুনরায় তৈরি করতে পারেন: আপনি যদি দুর্ঘটনাক্রমে এটিকে প্রচুর পরিমাণে আঘাত করেন এবং এখনও এই দুর্দান্ত মোডে অ্যাক্সেস করেন।
ইডব্রি

82

উদাহরণস্বরূপ, ভিএম একটি URL খুলবে

vim http://stackoverflow.com/

রেফারেন্সের জন্য আপনার যখন কোনও পৃষ্ঠার উত্স টানতে খুব ভাল।


2
আমার জন্য এটি উত্সটি খোলেনি; পরিবর্তে এটি দৃশ্যত রেন্ডার পৃষ্ঠাটিকে একটি বাফারে ফেলে দেওয়ার জন্য এলিংকগুলিকে স্পষ্টতই ব্যবহার করেছিল এবং তারপরে এটি খোলা।
ইভান ভুইকা

এই কমান্ডটি কার্যকর করার সময় ত্রুটি রয়েছে
জজুন এনগুইন

5
একটি স্ল্যাশ শেষে আরও ভাল কাজ করে। নিখুঁত কৌশল!
থমাস

@ ভিডিটি: আপনি যদি ত্রুটি পোস্ট করেন তবে এটি কার্যকর হবে। যদি এটি হ'ল : " ত্রুটি (নেটরউ) না উইজেট বা আনতে হবে না কমান্ড উপলব্ধ" আপনার স্পষ্টতই আপনার পাথ পরিবেশ পরিবর্তনশীল থেকে সেই সরঞ্জামগুলির মধ্যে একটি তৈরি করতে হবে।
আইজাক নেউকিট্টেপাস

আমি এটিকে বিশেষভাবে দরকারী মনে করি যখন লোকেরা কোনও পেস্ট পরিষেবায় লিঙ্কগুলি প্রেরণ করে এবং একটি সিনট্যাক্স হাইলাইট করা নির্বাচন করতে ভুলে যায়, "সাধারণত" এবং কাঁচা "যুক্ত করার পরে আমার সাধারণত লিঙ্কটি ভিএম-এ খুলতে হয়।
ডেটোরার

68

ম্যাক্রোগুলি অন্য ম্যাক্রোগুলি কল করতে পারে এবং নিজে কল করতে পারে।

উদাহরণ:

qq0dwj@qq@q

... ফাইলটির শেষ হওয়া পর্যন্ত প্রতিটি লাইন থেকে প্রথম শব্দটি মুছবে।

এটি বেশ সহজ উদাহরণ তবে এটি ভিমের একটি খুব শক্তিশালী বৈশিষ্ট্য দেখায়


2
আমি জানতাম না ম্যাক্রোরা তাদের পুনরাবৃত্তি করতে পারে। কুল। দ্রষ্টব্য: কিউএক্স রেজিস্ট্রার এক্স-এ রেকর্ডিং শুরু করে (তিনি রেজিস্ট্রার কিউয়ের জন্য কিউকিউ ব্যবহার করেন)। 0 লাইনের শুরুতে সরানো হয়। dw একটি শব্দ delets। j একটি লাইন নিচে সরানো। @Q আবার ম্যাক্রো চালাবে (একটি লুপ সংজ্ঞায়িত)। তবে আপনি একটি চূড়ান্ত "q" দিয়ে রেকর্ডিংটি শেষ করতে ভুলে গেছেন, তবে আসলে @Q লিখে ম্যাক্রোটি চালান।
কিমবল রবিনসন

2
আমি মনে করি এটি উদ্দেশ্যমূলক, নেস্টেড এবং পুনরাবৃত্ত ম্যাক্রো হিসাবে।
Yktula


6
এটি সম্পাদন করার আরেকটি উপায় হ'ল একটি ম্যাক্রোকে একটি রেখায় রেকর্ড করা যা কোনও একক লাইনে কিছু রূপান্তর করে, তারপরে লাইনওয়াইজ সহ ভি'র সাথে অনেকগুলি লাইন হাইলাইট :normal! @aকরে এবং আপনার নির্বাচনের প্রতিটি লাইনে আপনার ম্যাক্রো প্রয়োগ করতে টাইপ করুন।
নাথান লং

আমি এই পোস্টটি গুগলিং পুনরাবৃত্তিমূলক ভিআইএম ম্যাক্রোগুলি পেয়েছি। আমি ভিআইএম প্রক্রিয়া হত্যার বাইরে ম্যাক্রো থামানোর কোনও উপায় খুঁজে পাইনি।
dotancohen

55

ধরে নেওয়া যাক আপনি Perl এবং / অথবা রুবি সমর্থনে কম্পাইল আছে, :rubydoএবং :perldoসঙ্গে, একটি পরিসীমা (সমগ্র বাফার ডিফল্ট) প্রতিটি লাইনে একটি রুবি বা পার্ল এক-লাইনের চালানো হবে $_বর্তমান লাইন লেখা (বিয়োগ সম্পর্কে newline) আবদ্ধ। ম্যানিপুলেটিং $_সেই লাইনের পাঠ্য পরিবর্তন করবে।

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

:perldo $_ = join ' ', reverse split

প্রতিটি লাইনের শেষে 8 টি অক্ষরের (এজেড) একটি এলোমেলো স্ট্রিং Toোকাতে:

:rubydo $_ += ' ' + (1..8).collect{('A'..'Z').to_a[rand 26]}.join

আপনি একবারে এক লাইনে অভিনয় করতে সীমাবদ্ধ এবং আপনি নতুন লাইন যোগ করতে পারবেন না।


আমি যদি কেবল একটি নির্দিষ্ট লাইনে পার্ল্ডো চালাতে চাই তবে কী হবে? বা একটি নির্বাচিত কয়েকটি লাইন?
সুজয়

5
আপনি এটিকে অন্য কমান্ডের মতো পরিসর দিতে পারেন। উদাহরণস্বরূপ: 1,5perldo কেবলমাত্র 1-5-তে লাইনে কাজ করবে।
ব্রায়ান কার্পার

আপনি কি $ _ + = '\ n NEWLINE !!!' করতে পারেন বর্তমানের পরে একটি নতুন লাইন পেতে?
গ্রেগ

দুঃখের বিষয় নয়, এটি কেবল লাইনের শেষে একটি মজাদার নিয়ন্ত্রণের অক্ষর যুক্ত করে। তারপরে আপনি সেই সমস্ত নিয়ন্ত্রণের অক্ষরকে বাস্তবের নতুন লাইনে পরিবর্তন করতে একটি Vim অনুসন্ধান / প্রতিস্থাপন ব্যবহার করতে পারেন।
ব্রায়ান কার্পার

3
একইভাবে, pydoএবং py3doপাইথনটির জন্য কাজ করুন যদি আপনার কাছে প্রয়োজনীয় সমর্থন সংকলিত থাকে
ডেরেচো

54

^ ও এবং ^ আই

পুরানো / নতুন অবস্থানে যান। আপনি যখন ফাইলটি সন্ধান করছেন (অনুসন্ধান করে, কমান্ড মুভিং ইত্যাদি দ্বারা) ভিম এই "জাম্পগুলি" রেন্ডার করুন, যাতে আপনি এই জাম্পগুলিকে পিছনে (for O - O পুরানো জন্য) পুনরুদ্ধার করতে পারেন এবং কীবোর্ডে I এর ঠিক পরে (^ I - )। কোড লেখার সময় এবং অনেকগুলি অনুসন্ধান সম্পাদন করার সময় আমি এটি খুব দরকারী বলে মনে করি।

সিপাহী

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

জিএফ

ফাইলের নামের উপর কার্সার রাখুন (উদাহরণস্বরূপ শিরোলেখ ফাইল অন্তর্ভুক্ত), জিএফ টিপুন এবং ফাইলটি খোলায়

gF

জিএফ এর অনুরূপ তবে "[ফাইলের নাম]: [লাইন নম্বর]" ফর্ম্যাটটি সনাক্ত করে। জিএফ টিপলে [ফাইলের নাম] খুলবে এবং কার্সারটি [লাইন নম্বর] এ সেট করবে।

^ পি এবং ^ এন

সম্পাদনা করার সময় স্বয়ংক্রিয় সম্পূর্ণ পাঠ্য (^ পি - পূর্ববর্তী ম্যাচ এবং match N পরবর্তী ম্যাচ)

^ X ^ এল

সম্পাদনা একই লাইনে সম্পূর্ণ হওয়ার পরে (প্রোগ্রামিংয়ের জন্য দরকারী)। আপনি কোড লিখেন এবং তারপরে আপনি মনে করতে পারেন যে ফাইলের কোথাও আপনার একই কোড রয়েছে। কেবলমাত্র ^ X ^ L টিপুন এবং সম্পূর্ণ লাইনটি সমাপ্ত

^ X ^ এফ

সম্পূর্ণ ফাইলের নাম। আপনি লিখুন "/ ইত্যাদি / পাস" হুঁ। আপনি ফাইলের নাম ভুলে গেছেন। কেবলমাত্র ^ X ^ F টিপুন এবং ফাইলের নামটি সম্পন্ন হবে

^ জেড বা: শ

শেল থেকে অস্থায়ী সরান। আপনার যদি দ্রুত বশ করা দরকার:

  • আসল শেলটিতে ফিরতে ^ Z টিপুন (ব্যাকগ্রাউন্ডে vi রাখতে) এবং ভিগ ব্যাক ফিরতে fg টিপুন
  • সাব শেল এ যেতে sh টিপুন এবং vi তে ফিরে to D / প্রস্থান টিপুন

^X^Fআমার পোষা প্রাণীর সাথে ফাইলের নামগুলি =লক্ষণগুলি অন্তর্ভুক্ত করে এটি বিভিন্ন সময়ে পচা জিনিসগুলি করে তোলে (আইএনআই ফাইল, মেকফিলস ইত্যাদি)। আমি এই se isfname-==
উপদ্রবটি

3
+1 বিল্ট-ইন স্বতঃ-সম্পূর্ণ এখানে সন্ধানের অপেক্ষায় বসে আছে।
জোয়েটউইডল

48
" insert range ip's
"
"          ( O O )
" =======oOO=(_)==OOo======

:for i in range(1,255) | .put='10.0.0.'.i | endfor

2
আমি এটি দেখতে পাচ্ছি না (এটি একটি রসিক জবাবের মতো দেখার পাশাপাশি)। আর কেউ আমাকে আলোকিত করতে পারে?
রায়ান এডওয়ার্ডস

2
ভিমটি খুলুন এবং তারপরে "করুন: আমি সীমার জন্য (1,255) | ইনপুট = '10 .0.0। '। আই | এন্ডফোর"
কোডিম্যান

2
@ রায়ানএডওয়ার্ডস পূরণ করতে পারে / ইত্যাদি / হোস্টগুলি হতে পারে
রুসলান

26
এটি একটি ভয়ঙ্কর উত্তর। আইপি অ্যাড্রেস তৈরি সম্পর্কে বিট নয়, তবে বিটটি বোঝায় যে ভিআইএম কমান্ডের লুপের জন্য ব্যবহার করতে পারে
dotancohen

4
প্রাক্তন মোড ছাড়াই:i10.0.0.1<Esc>Y254p$<C-v>}g<C-a>
31:57

47

ভিন্ন ফাইলের এনকোডিং সহ বর্তমান ফাইলটি আবার খোলার জন্য এটি একটি দুর্দান্ত কৌশল:

:e ++enc=cp1250 %:p

উত্তরাধিকারের এনকোডিংগুলির সাথে যখন আপনাকে কাজ করতে হয় তখন দরকারী। সমর্থিত এনকোডিংগুলি encoding-values(দেখুন help encoding-values) এর অধীনে একটি সারণীতে তালিকাভুক্ত করা হয়েছে । অনুরূপ জিনিসটি এর জন্যও কাজ করে ++ff, যাতে আপনি প্রথমবার ভুল হয়ে থাকলে উইন্ডোজ / ইউনিক্স লাইনের সাথে ফাইলটি আবার খোলা যায় (দেখুন help ff)।


কখনও এই ধরণের জিনিস ব্যবহার করা হয়নি, তবে আমরা অবশ্যই আমার কৌশলগুলিতে যুক্ত করব ...

দুর্দান্ত টিপ, ধন্যবাদ বোনাস পয়েন্টগুলির জন্য, সাধারণ বৈধ এনকোডিংগুলির একটি তালিকা যুক্ত করুন।
অ্যাড্রিয়ানো ভারোলি পিয়াজা 18

2
আমি আজ এটি ব্যবহার করেছি তবে আমার মনে হয় "%: p" নির্দিষ্ট করার দরকার নেই; কেবল ফাইলটি খোলার জন্য এবং: e ++ enc = cp1250 যথেষ্ট ছিল। আমি
ইভান ভুইকা

হবে: সেট এনকোডিং = সিপি 1250 একই প্রভাব আছে?
ল্যাজ

1
`: e + b% 'বাইনারি মোডে পুনরায় খোলার জন্য একইভাবে কার্যকর (নতুন লাইনের কোনও গাওয়া নয়)
অনুগত

47

টাইপিং == উপরের লাইনের উপর ভিত্তি করে বর্তমান লাইনের ইন্ডেন্টেশনটি সংশোধন করবে।

আসলে, আপনি যে কোনও মুভিং কমান্ডের পরে একটি = সাইন করতে পারেন। = {আন্দোলন}

উদাহরণস্বরূপ, আপনি% মুভমেন্টটি ব্যবহার করতে পারেন যা ব্রেসিংয়ের সাথে মিলে যায়। নিম্নলিখিত কোডে on এ কার্সারটি অবস্থান করুন:

if (thisA == that) {
//not indented
if (some == other) {
x = y;
}
}

এটি সঙ্গে সঙ্গে এটি পেতে =% টিপুন :

if (thisA == that) {
    //not indented
    if (some == other) {
        x = y;
    }
}

পর্যায়ক্রমে, আপনি নিজের কোডটি {চরিত্রের উপর সরাসরি অবস্থানের পরিবর্তে কোড ব্লকের মধ্যে = a do করতে পারেন ।


এইচএম, আমি ইনডেন্টেশন সম্পর্কে এটি জানতাম না।
এহতেশ চৌধুরী

ধনুর্বন্ধনী ঠিক ঠিক করা প্রয়োজন হয় না। আমি প্রায়শই ভাবতাম আমি কেবল =}বা vaBaB=কারণ এটি কম নির্ভরশীল। এছাড়াও, v}}:!astyle -bjআমার কোড শৈলীর সাথে আরও ভাল মিলছে, তবে আমি এটিকে আপনার স্টাইলে ফিরে যেতে পারি একটি সাধারণ সাথে%!astyle -aj
শেে

7
gg=Gকোনও কিছুতে পেস্ট করার সময় বেশ ঝরঝরে।
কিরিয়াস

সম্পর্কিত: ভিম এসই
কেনোরব

@ ক্যারিয়াস ওহ, আমি এটির মতো করে চলেছি ggVG=
ব্র্যাডেন সেরা

42
imap jj <esc>

7
আপনি কীভাবে জেজে টাইপ করবেন? : পি
হাসেন

6
আপনি কতবার jj টাইপ করেন? কমপক্ষে ইংরেজিতে?
ojblass

50
আমি পরিবর্তে এস্কে ক্যাপসলকটি পুনরায় তৈরি করেছি, কারণ এটি অন্যথায় অকেজো চাবি। যদিও আমার ম্যাপিংটি ওএস প্রশস্ত ছিল তাই এটি দুর্ঘটনাক্রমে আঘাত হানার বিষয়ে কখনই চিন্তা না করার অতিরিক্ত সুবিধা রয়েছে। একমাত্র ব্যর্থতা হ'ল লোকদের কাছে সবচেয়ে খারাপ লাগা। :)
অ্যালেক্স

7
@ অ্যালেক্স: অবশ্যই ক্যাপসলক হচ্ছে মৃত্যু। "অপেক্ষা করুন, ডাব্লুটিএফ? ওহ, ওটা ছিল জেডজেড? .... ক্রেপ।"
intuited

5
@ ওজব্লাস: নিশ্চিত নয় যে কত লোক ভিমে মাতলাব কোডটি সঠিকভাবে প্রয়োগ করে, iiএবং jjসাধারণত কাউন্টার ভেরিয়েবলের জন্য ব্যবহৃত হয়, কারণ iএবং jজটিল সংখ্যার জন্য সংরক্ষিত।
brianmearns

37

আসুন দেখি কিছু সুন্দর আইডিই সম্পাদক কলাম স্থানান্তর করেন do

:%s/\(.*\)^I\(.*\)/\2^I\1/

ব্যাখ্যা

\(এবং \)কীভাবে রেইজেক্স-জমিতে স্টাফগুলি মনে রাখা যায় । এবং \1, \2ইত্যাদি হল কীভাবে স্মরণ করা জিনিসগুলি পুনরুদ্ধার করা যায়।

>>> \(.*\)^I\(.*\)

সব কিছু অনুসরণ করুন ^I(ট্যাব) এর পরে সমস্ত কিছু।

>>> \2^I\1

উপরের জিনিসগুলি "২ য় জিনিস আপনার মনে পড়ে" এর পরে প্রতিস্থাপন করুন এরপরে "প্রথম জিনিস আপনি মনে রেখেছিলেন" - মূলত ট্রান্সপোজ করে doing


4
একে অপরের সাথে একজোড়া ট্যাব-বিভাজিত কলামগুলি (বিচ্ছিন্নভাবে স্বেচ্ছাসেবী, এটি সমস্ত রেজেক্স) স্যুইচ করে।
বিশৃঙ্খলা

39
এটি কেবল একটি রেজেক্স; প্রচুর আইডিই'র রেগেক্স সন্ধান এবং প্রতিস্থাপন রয়েছে।
rlbond

7
@ আরলবন্ড - আইডিইতে রেগেক্স ইঞ্জিনটি কতটা ভাল তা নেমে আসে। ভিমের রেইগেক্সগুলি বেশ শক্তিশালী; অন্যদের .. অনেক সময় না।
রোমান্ডাস

3
* লোভী হবে, সুতরাং এই রেজেক্সটি ধরে নিবে আপনার কাছে মাত্র দুটি কলাম রয়েছে। আপনি যদি এটি অহংকার করতে চান * * এর পরিবর্তে {- use ব্যবহার করুন (দেখুন:}} গুণক সম্পর্কে আরও তথ্যের জন্য অ-লোভীকে সহায়তা করুন)
কিমবল রবিনসন

4
এটি আসলে একটি দুর্দান্ত সরল রেগেক্স, এটি কেবল গোষ্ঠী প্যারেন্টেসিস থেকে বেরিয়ে আসছে যা এটিকে জটিল দেখায়।
এম কে 12

30

একেবারে অন্ধকার রহস্য নয়, তবে আমি আমার .vimrc ফাইলটিতে নিম্নলিখিত ম্যাপিংটি রাখতে চাই, তাই আমি কেবল সম্পাদনা করা ফাইলটির সাথে সংযুক্ত ফাইলগুলি দেখানোর জন্য ফাইল এক্সপ্লোরারটি খোলার জন্য যে কোনও সময় "-" (বিয়োগ) হিট করতে পারি । ফাইল এক্সপ্লোরারে, আমি একটি ডিরেক্টরিতে সরানোর জন্য আরেকটি "-" চাপতে পারি, একটি জটিল ডিরেক্টরি কাঠামোর বিরামবিহীন ব্রাউজিং সরবরাহ করে (যেমন আজকাল এমভিসি ফ্রেমওয়ার্কগুলি ব্যবহার করে):

map - :Explore<cr>

এগুলি কারও পক্ষে কার্যকরও হতে পারে। আমি স্ক্রিনটি স্ক্রোল করতে এবং একই সাথে কার্সারটি অগ্রিম করতে চাই:

map <c-j> j<c-e>
map <c-k> k<c-y>

ট্যাব নেভিগেশন - আমি ট্যাবগুলি পছন্দ করি এবং তাদের মধ্যে সহজেই সরানো দরকার:

map <c-l> :tabnext<enter>
map <c-h> :tabprevious<enter>

কেবল ম্যাক ওএস এক্সে: সাফারি-জাতীয় ট্যাব নেভিগেশন:

map <S-D-Right> :tabnext<cr>
map <S-D-Left> :tabprevious<cr>

আপনি
ভিমে

হাই রোমান, এই ম্যাপিংটি ঠিক এটিই করে তবে এটি একটি "হট কী" এ নিয়োগ করে। :)
KKovacs

27

আমি 'সুডো বাশ' ব্যবহার করতে চাই এবং আমার সিসাদমিন এটি ঘৃণা করে। তিনি 'সুডো' লক করে রেখেছিলেন যাতে এটি কেবলমাত্র কয়েকটি মুষ্টি কমান্ড (এলএস, ছোমড, ছাউন, ভি, ইত্যাদি) ব্যবহার করা যেতে পারে তবে আমি যেভাবেই কোনও রুট শেল পেতে ভিএম ব্যবহার করতে সক্ষম হয়েছি:

bash$ sudo vi +'silent !bash' +q
Password: ******
root#

9
FWIW, sudoedit (বা sudo -e) সুবিধাযুক্ত ফাইলগুলি সম্পাদনা করে তবে আপনার সম্পাদককে আপনার সাধারণ ব্যবহারকারী হিসাবে চালায়।
আরজেহান্টার

12
হ্যাঁ ... আমি আপনাকেও ঘৃণা করব;) আপনার কেবলমাত্র খুব কমই একটি রুট শেল লাগানো উচিত, যদি না আপনি ইতিমধ্যে রুট হিসাবে প্রচুর কমান্ড চালানোর অভ্যাসে থাকেন যার অর্থ আপনার অনুমতিগুলি সমস্ত ভুল হয়ে যায়।
আমরা সমস্ত মনিকা

5
আপনার সিসাদমিন কেন আপনাকে রুট দেয়? : ডি
d33tah

26

প্রায়শই, আমি সম্পাদনার সময় বর্তমান ডিরেক্টরিগুলি পরিবর্তন করতে পছন্দ করি - তাই আমাকে কম পাথ নির্দিষ্ট করতে হবে।

cd %:h

এটি কি করে? এবং এটি অটচিডির সাথে কাজ করে?
লিওনার্ড

2
আমি মনে করি এটি অস্থায়ীভাবে অটোচিডিরকে ওভাররাইড করবে (যতক্ষণ না আপনি আবার বাফারগুলি স্যুইচ করেন)। মূলত, এটি বর্তমান ফাইলের মূল ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন করে। এটি আমাকে অটোচ্ডিরের চেয়ে কিছুটা বেশি ম্যানুয়াল নিয়ন্ত্রণ দেয়।
রমপিন

1
: সেট অটোচডির // এটি একই কার্যকারিতাটি পরিবেশন করে এবং এটি বর্তমান ডিরেক্টরিটি বাফারে ফাইলের পরিবর্তিত করে
নাগা কিরণ

25

আমি যখন কোন প্রকল্পে কাজ করি তখন আমি প্রায়শই অনেকগুলি উইন্ডোজ ব্যবহার করি এবং কখনও কখনও সেগুলি পুনরায় আকার দেওয়ার প্রয়োজন হয়। আমি যা ব্যবহার করি তা এখানে:

map + <C-W>+
map - <C-W>-

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


16
এছাড়াও রয়েছে Ctrl-W =, যা উইন্ডো সমান প্রস্থে পরিণত করে।
বিল লিঞ্চ

2
ভিমের মধ্যে একাধিকবার অ্যাকশন সম্পাদনের জন্য আপনি সংখ্যাগুলি প্রেন্ডেন্ড করতে পারেন তা ভুলবেন না। সুতরাং বর্তমান উইন্ডোটির উচ্চতাটি 8 টি লাইন দ্বারা প্রসারিত করতে: 8 <CW> +
জোয়েটউইডল

23

অস্পষ্ট বৈশিষ্ট্য নয়, তবে খুব দরকারী এবং সময় সাশ্রয়।

আপনি যদি আপনার উন্মুক্ত বাফারস, ট্যাবগুলি, চিহ্নিতকারী এবং অন্যান্য সেটিংসের একটি সেশন সংরক্ষণ করতে চান তবে আপনি নিম্নলিখিতটি ইস্যু করতে পারেন:

mksession session.vim

আপনি এটি ব্যবহার করে আপনার সেশনটি খুলতে পারেন:

vim -S session.vim

5
আপনি :so session.vimভিমে ভিতরে করতে পারেন ।
ট্যাঙ্কোরস্যামশ

22
:r! <command>

একটি বাহ্যিক কমান্ডের আউটপুট বাফারে আটকায়।

কিছু গণিত করুন এবং ফলটি সরাসরি পাঠ্যে পান:

:r! echo $((3 + 5 + 8))

মেকফিল লেখার সময় সংকলনের জন্য ফাইলগুলির তালিকা পান:

:r! ls *.c

আপনি উইকিপিডিয়ায় যে সত্যটি পড়েছেন সেটিকে সন্ধান করবেন না, এটি আপনি যে নথিতে লিখেছেন তা সরাসরি এঁকে দিন:

:r! lynx -dump http://en.wikipedia.org/wiki/Whatever

14
Sert R = 3 + 5 + 8 সন্নিবেশ মোডে আপনাকে কী-স্ট্রোকের সাহায্যে পাঠ্যটিতে অভিব্যক্তির মান (3 + 5 + 8) সন্নিবেশ করতে দেবে।
সুধাংশু

আমি কীভাবে ফলাফল / আউটপুটটিকে বর্তমানের চেয়ে আলাদা বাফারে পেতে পারি?
ডিসিএন


21

আপনার বাফারটি দ্রুত ROT13 করতে এফ 5 মানচিত্র করুন:

map <F5> ggg?G``

আপনি এটি বস কী হিসাবে ব্যবহার করতে পারেন :)।


14
আপনি কী লিখছেন তা আমি জানি না ... তবে অবশ্যই আমার বস আরও কৌতূহল বোধ করবেন যখন তিনি আমাকে
রট

বা আপনার বন্ধুদের বানাবেন না: nmap i ggg?G`` । অথবা নারকীয়: nmap i ggg?G``i!
রোমভস

1
@ ক্রমোভস দ্বিতীয়টি অসীম লুপ, ননোরম্যাপটি ব্যবহার করুন
অমিত সোনার

19

আমি আজই এটি এনএসএফএকিউর মাধ্যমে পেয়েছি :

কোড ব্লক মন্তব্য।

সিটিআরএল-ভি-তে আঘাত করে ব্লকওয়াইজ ভিজ্যুয়াল মোড প্রবেশ করুন।

আপনি মন্তব্য করতে চান ব্লক চিহ্নিত করুন।

আমি (মূলধন I) টিপুন এবং লাইনের শুরুতে আপনার মন্তব্যের স্ট্রিংটি প্রবেশ করুন। (// সি ++ এর জন্য)

ESC হিট করুন এবং নির্বাচিত সমস্ত লাইনগুলিতে লাইনের সামনের দিকে // চাপ দেওয়া হবে।


আমি রুবিতে কোডের একটি ব্লক মন্তব্য করতে # যোগ করেছি। আমি এটিকে কীভাবে পূর্বাবস্থায় ফিরিয়ে আনব।
নীররাজ সিং

3
আপনি শুধু আবার Ctrl + V আঘাত চিহ্ন "uncomment" করার // 's এবং হিট এক্স পারেন
টি

6
আমি এর জন্য NERDCommenter ব্যবহার করি।
জাইএক্স

1
মন্তব্য করা কোড সম্ভবত সবচেয়ে খারাপ মন্তব্যের মধ্যে একটি যা আপনি সম্ভবত আপনার কোডটিতে রাখতে পারেন। দারুণ ব্লক sertোকানোর জন্য আরও ভাল ব্যবহার রয়েছে।
ব্র্যাডেন সেরা

1
@ পাই কারণ মন্তব্য করা কোড মৃত কোড । ডেড কোড কোনও কার্যকর উদ্দেশ্যে কাজ করে না এবং বিশৃঙ্খলা সৃষ্টি করে। আপনি মনে করেন আপনি কোড সংরক্ষণ করছেন যা আপনি পরে ফিরিয়ে আনতে চাইতে পারেন তবে এর চেয়ে আরও ভাল উপায় আছে। আপনি আপনার পূর্বাবস্থায় ইতিহাস ব্যবহার করতে পারেন, আপনি ফাইলটি ডুপ করতে পারেন, বা আপনি গিট ব্যবহার করতে পারেন, যা এই কার্যকারিতাটি ( git checkout) এ অন্তর্নির্মিত রয়েছে । ব্লক sertোকানোর জন্য আরও ভাল ব্যবহারের জন্য, কোনও সেট-ইন-পাথর নেই। আপনি কেবলমাত্র এটি ব্যবহার করুন যখনই আপনার একাধিক লাইন থাকবে যেখানে আপনি একই জায়গায় অক্ষরের একই ক্রম সন্নিবেশ করতে চান।
ব্র্যাডেন সেরা

17

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

:set paste

আপনার তথ্য পেস্ট করার আগে। এটি এটিকে গোলযোগ থেকে বিরত রাখবে।

নোট করুন যে আপনাকে :set nopasteস্বয়ংক্রিয় ইন্ডেন্টেশন পুনরুদ্ধার করতে ইস্যু করতে হবে । প্রাক-ফর্ম্যাটযুক্ত পাঠ্য আটকে দেওয়ার বিকল্প উপায় হ'ল ক্লিপবোর্ডের নিবন্ধগুলি ( *এবং +) এবং:r!cat (আপনাকে you D দিয়ে আটকানো টুকরোটি শেষ করতে হবে)।

এটি কখনও কখনও উচ্চ বৈসাদৃশ্য রঙের স্কিম চালু করতে সহায়ক। এটি দিয়ে করা যেতে পারে

:color blue

আমি লক্ষ্য করেছি যে এটি আমার ব্যবহারের সমস্ত সংস্করণে কাজ করে না তবে এটি বেশিরভাগ ক্ষেত্রে ঘটে।


10
"বিকৃতি" ঘটছে কারণ আপনি কিছু ফর্ম স্বয়ংক্রিয় ইন্ডেন্টেশন সক্ষম করেছেন। বিকল্পটির set pasteজন্য কোনও কী ব্যবহার করা বা নির্দিষ্ট করা pastetoggleএটিকে ঘিরে কাজ করার একটি সাধারণ উপায়, তবে একই ফলস্বরূপ একই ফলস্বরূপ অর্জন করা যেতে পারে set mouse=aযেহেতু ভিম জানেন যে এটি পাঠ্যের বন্যাকে মাউস দ্বারা চালিত একটি পেস্ট হিসাবে দেখেছে।
জামেসান

1
আপনি যদি জিভিআইএম ইনস্টল করে থাকেন তবে আপনি প্রায়শই (যদিও এটি আপনার ডিস্ট্রো উইমগুলি কী কী অপশনগুলি সংকলন করে তার উপর নির্ভর করে) সরাসরি রেজিস্ট্রারের মাধ্যমে এক্স ক্লিপবোর্ড ব্যবহার করতে পারেন im উদাহরণস্বরূপ "*pএক্স এক্সলিপবোর্ড থেকে আটকানো। (এটি টার্মিনাল ভিআইএম থেকেও কাজ করে, এটি কেবলমাত্র আপনার পৃথক হলে gvim প্যাকেজটির প্রয়োজন হতে পারে)
kyrias

2
রেকর্ডের জন্য @ ক্যারিয়াস *হ'ল PRIMARY("মাঝারি ক্লিক") নিবন্ধক। ক্লিপবোর্ড হয়+
ব্র্যাডেন শ্রেষ্ঠ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.