সরল ভিম আদেশ দেয় আপনি চান যে আপনি আগে [বন্ধ]


378

আমি ভিমের মধ্যে সর্বদা নতুন কমান্ড শিখি তবে আমি নিশ্চিত যে প্রত্যেকে একবারে নতুন কিছু শিখেছে। আমি সম্প্রতি এই সম্পর্কে জানতে পারি:

zz, zt, zb - পজিশনের কার্সার মধ্য, উপরে বা পর্দার নীচে bottom

আপনি যুগে যুগে শিখতে চান এমন আরও কিছু দরকারী বা মার্জিত আদেশগুলি কী কী?


46
প্রযুক্তিগতভাবে, zz, zt, zb মাঝের / উপরে / নীচে কার্সার দিয়ে পর্দা অবস্থান করছে । অবস্থানে কার্সার মধ্যম / শীর্ষ / নীচে ব্যবহার এ এম, এইচ, অথবা এল উভয় কমান্ড সেট দরকারী হয়!
পিটার

1
মাস বা এক বছর আগে এই পোস্টটি পড়ার পর থেকে আমাকে প্রতিদিন সাহায্য করেছে। এই পোস্টটি ধন্যবাদ, ঘন্টার মধ্যে একাধিকবার অনুচ্ছেদে স্থানান্তরিত করতে ড্যাপ এমন একটি জিনিস যা আমি ব্যবহার করি।
ফানকোডাব্যাট

33
আমি কোনও পৃষ্ঠা থেকে এতগুলি কৌশল বাছাই করি নি যেটিকে গঠনমূলক হিসাবে চিহ্নিত করা হয়েছে :) সব ধন্যবাদ।
তাসোস বিটসিয়ো

উত্তর:


315

আমি সত্যিই ইচ্ছুক আমি জানতাম যে আপনি ব্যবহার করতে পারেন CtrlCপরিবর্তে Escসন্নিবেশ মোড থেকে বের স্যুইচ। আমার জন্য এটিই ছিল সত্যিকারের উত্পাদনশীলতা বৃদ্ধি।


93
আমি আমার ক্যাপস-লকটিকে একটি এসকে-তে পুনরায় তৈরি করেছি। এটি সাধারণ এসসি এবং সিটিআরএল-সি এর চেয়ে উভয়ই সহজ
ক্যাস্পার

114
পবিত্র জঞ্জাল। 15 বছরের vi এবং আমি এটি কখনই জানতাম না ...
ক্রিস কে

31
আর একটি জনপ্রিয় ছিল ESC এর জন্য 'jj' ব্যবহার করা। আমি এই পর্যন্ত এই পদ্ধতির পছন্দ। : মানচিত্রে!
jj

27
আপনি সিটিআরএলও ব্যবহার করতে পারেন- [(যা আমি পছন্দ করি কারণ এটি দুটি ছোট আঙুলের ... উভয় হাতের সামান্য ঘূর্ণন)।
জেসন ডাউন

42
@ ক্লেট্রনগুলিতে 'জে কে' ব্যবহার করুন ' যদি আপনি অজান্তে ইতিমধ্যে INSERT মোডে থাকেন, জে কে আপনাকে যেখানে ছিল সেখানে ছেড়ে দেয়, তাই আপনি যখনই এটি আঘাত করতে পারেন (ক্রেডিট: অন্য কেউ ... আমার ধারণা নয়)।
কাইল

197

আমি শিখেছি সবচেয়ে সাম্প্রতিক "বাহ" কৌশলটি জটিল অনুসন্ধান এবং প্রতিস্থাপন করার একটি পদ্ধতি method বেশিরভাগ ক্ষেত্রে অতীতে, প্রতিস্থাপনগুলি করার জন্য আমার খুব জটিল একটি রেজি এক্সপক্স ছিল এবং এটি কার্যকর হয়নি। আরও ভাল উপায় আছে:

:set incsearch             " I have this in .vimrc
/my complicated regexp     " Highlighted as you enter characters
:%s//replace with this/    " You don't have to type it again

"কৌশল" এখানে (আরও ভাল শব্দের জন্য প্রয়োজন হিসাবে) আপনি যে পদ্ধতিটি অনুসন্ধান করতে ব্যবহার করতে পারেন তা হ'ল রেজিএক্সএক্স তৈরি করতে (এবং 'ইনসার্চ' হাইলাইট করে আপনি অক্ষরগুলি প্রবেশ করানোর সময়) এবং তারপরে বিকল্পটিতে একটি খালি প্যাটার্ন ব্যবহার করুন: খালি সর্বশেষ অনুসন্ধানের ধরণে প্যাটার্ন ডিফল্ট a

উদাহরণ:

/blue\(\d\+\)
:%s//red\1/

সমতুল্য:

:%s/blue\(\d\+\)/red\1/

দেখা:

:help 'incsearch'
:help :substitute

1
বাহ ... আমি এই জাতীয় কিছু
খুঁজছিলাম

1
হ্যাঁ, আমি আশা করি আমি এটি আরও তাড়াতাড়ি জানতে পারতাম। তবে আবার, আমি যা শিখি সে সম্পর্কে আমি যা বলি তা ভিমের মধ্যে নতুন।
রবার্ট ম্যাসাওলি

26
যে কেউ সত্যিই এটি পছন্দ করে তাদের জন্য, <Ctrl-R>/সর্বশেষ অনুসন্ধান কোয়েরিটি toোকানোর চেষ্টা করুন । (দেখুন :help i_CTRL-R) উপরে অনুরূপ জন্য সত্যিই দরকারী, কিন্তু আপনি অনুসন্ধান ফলাফলের অংশ ক্যাপচার করতে চান। ( %s:/\\([fF]rank\\) and mary/marie and \1/g
এটির

4
:%s//...*(কার্সারের নিচে অনুসন্ধান শব্দ) এর সাথেও কাজ করে । ভিজ্যুয়াল-স্টার-সন্ধান নামে একটি প্লাগইন *একটি ভিজ্যুয়াল নির্বাচনের পুরো পাঠ্যের সাথে মিলিয়ে কার্যকারিতা বাড়িয়ে তোলে যা নির্বাচিত পাঠ্যটিকে সন্ধান এবং প্রতিস্থাপন করা সহজ করে তোলে, যেমন v3e(দৃশ্যত 3 শব্দ নির্বাচন করুন) *(অনুসন্ধান) এবং :%s//replacement/g(সমস্ত উপস্থিতি "এর সাথে প্রতিস্থাপন করুন" প্রতিস্থাপন ")। আমি এই তাই প্রায়ই আমি বিশ্ব প্রতিকল্পন কমান্ডের জন্য একটি ম্যাপিং আছে ব্যবহার করুন: :nmap <Leader>s :%s///g<left><left>
প্যাট্রিক অসিটি

1
@ আইডব্রাই যেহেতু লোকেরা পড়তে পারে তারা ভিম নুবস (আমাকে) %s:হতে পারে :%s, এবং আমার সিস্টেমের জন্য আমার \(\)পরিবর্তে আমার দরকার ছিল\\(\\)
চার্লি গরিচানাজ

155

আমি আমার এক বন্ধুর জন্য আমার সবচেয়ে বেশি ব্যবহৃত কমান্ডের এই রেফারেন্সটি তৈরি করেছি:

select                                   v
select row(s)                            SHIFT + v
select blocks (columns)                  CTRL  + v
indent selected text                     >
unindent selected text                   <
list buffers                             :ls
open buffer                              :bN (N = buffer number)
print                                    :hardcopy
open a file                              :e /path/to/file.txt
                                         :e C:\Path\To\File.txt
sort selected rows                       :sort
search for word under cursor             *
open file under cursor                   gf
  (absolute path or relative)
format selected code                     =
select contents of entire file           ggVG
convert selected text to uppercase       U
convert selected text to lowercase       u
invert case of selected text             ~
convert tabs to spaces                   :retab
start recording a macro                  qX (X = key to assign macro to)
stop recording a macro                   q
playback macro                           @X (X = key macro was assigned to)
replay previously played macro *         @@
auto-complete a word you are typing **   CTRL + n
bookmark current place in file           mX (X = key to assign bookmark to)
jump to bookmark                         `X (X = key bookmark was assigned to
                                             ` = back tick/tilde key)
show all bookmarks                       :marks
delete a bookmark                        :delm X (X = key bookmark to delete)
delete all bookmarks                     :delm!
split screen horizontally                :split
split screen vertically                  :vsplit
navigating split screens                 CTRL + w + j = move down a screen
                                         CTRL + w + k = move up a screen
                                         CTRL + w + h = move left a screen
                                         CTRL + w + l = move right a screen
close all other split screens            :only

*  - As with other commands in vi, you can playback a macro any number of times.
     The following command would playback the macro assigned to the key `w' 100
     times: 100@w

** - Vim uses words that exist in your current buffer and any other buffer you may have open for auto-complete suggestions.

আপনি এক্স নামের সাথে চিহ্নটিতে যেতে "~ এক্স" তালিকাভুক্ত করেন যা আমার পক্ষে কাজ করে না - পরিবর্তে আমি "'এক্স" (একক উদ্ধৃতি) ব্যবহার করি।

কি দারুন. আপনার একেবারে ঠিক। আমি যখন গাইডটি টাইপ করছিলাম তখন অনুমান করি আমার চোখটি কেবল টিল্ডটি দেখেছিল এবং পিছনের টিকটি দেখে গ্লোস করেছে। আমি সেই অনুযায়ী আপডেট করব। সতর্ক থাকুন জন্য ধন্যবাদ।
ব্রায়ান নিউম্যান

5
এই তালিকাটি দুর্দান্ত, তবে আমি সত্যিই জানতে চাই আপনি কীভাবে এই টেবিলটি আঁকেন? ভিআইএম এর সাথে? কোন প্লাগইন? আমি বর্তমানে একটি খুঁজছি
ক্যান্ট

6
আমি ভিআইএম ব্যবহার করেছি, তবে কোনও প্লাগইন নেই। যাহোক; নির্বাচন ব্লক বৈশিষ্ট্যটি ব্যবহার করা তুলনামূলকভাবে সহজ করে তুলেছে। আপনি তালিকা দরকারী খুঁজে পেয়েছি খুশি!
rian

11
ব্লক-নির্বাচনের জন্য সিটিআরএল-কিউ হ'ল এমএসউইন.ভিম এর একটি বৈশিষ্ট্য যা CTRL-V কে পেস্ট করতে দেয়। বেশিরভাগ ভিআইএম ব্যবহারকারীরা এই দুষ্টকে বিবেচনা করবেন এবং এমএসউইন.ভিমকে অক্ষম করবেন। "+ P বা Ctrl-R + ক্লিপবোর্ডের বিষয়বস্তু সন্নিবেশ করানোর জন্য টাইপ করা এত কঠিন নয়
বেনোইট

144

জিআই সন্নিবেশ মোডে স্যুইচ করে কার্সারটি একই স্থানে রেখেছিল যা এটি আগে ছিল।


29
আমি এখন খুব খুশী হয়েছিলাম যখন আমি জানতে পেরেছি এটি g;আমাকে অশ্রুতে নিয়ে যায় :-)
প্যাট্রিক অসিটি

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

9
এফওয়াইআই, জি; (যা উপরের @ পেট্রিকঅ্যাসিটি উল্লিখিত হয়েছে) কার্সারটি এমন জায়গায় স্থাপন করেছে যেখানে একটি সম্পাদনা করা হয়েছিল। আপনি ইতিহাসে ফিরে যেতে একাধিকবার এটি ব্যবহার করতে পারেন। এটি এখানে উল্লেখ করা কারণ আমার ভিম সহায়তাটি কোনও বিজোড় কারণে এটি উল্লেখ করে না।
পনিয়ার্স

13
ভিমের স্বজ্ঞাততা কখনই আমাকে প্রভাবিত করে না। যেহেতু @ পনিয়ার্স উল্লেখ করেছেন যে g;আমি চেষ্টা করেছি যদি এর "বিপরীত" হয় এবং এটি g,দেখতে হয় তবে আমরা পিছনে এবং এগিয়ে যেতে পারি!
সাইবার

aখাটো হয়। :) তবে giসত্যিই খুব স্বজ্ঞাত, gসাধারণত একটি বিপরীত অপারেশন হয়ে থাকে।
এরউইন রুইজ্যাকার

105
: Q! কোন

আমি আশা করি আমি প্রথমবার vi শুরু করার আগে জানতাম।


23
ইমাস লোক হিসাবে, এটি আমার মজার মজার মন্তব্য। নিশ্চিত আপনি নিশ্চিত যে এটি ছিল। তুমি আজ আমাকে খুশি করেছ।
pjammer

29
আমি মনে করি একই দিনে প্রথমবারের মতো ভিএম এবং ইম্যাকস চেষ্টা করেছিলাম, কীভাবে কীভাবে প্রস্থান করতে হবে তা জানে না। আমি নিজেকে ভেবেছিলাম এই লোকগুলির সাথে হেক কী ভুল !?
পদার্থ বিজ্ঞান

13
+1 টি। প্রথমবার আপনি যখন ভিম শুরু করবেন, তখন ডিফল্ট বার্তাটি "লিখতে হবে: কিউ ছাড়তে হবে"। আমি অনেক সময় বাঁচাতে পারব লস
জোসে রামেন

2
@ JoséRamón কিন্তু এটা করে ডিফল্টরূপে পর্দায় তা প্রদর্শন যদি আপনি একটি ফাইল না খুলেই তেজ লিখুন। এটি কি সম্প্রতি যুক্ত হয়েছিল? আমি স্পষ্টভাবে মনে করতে পারি যে আমি বহু বছর আগে ভিএম চেষ্টা করেছিলাম এবং এটি ইতিমধ্যে ছিল। :q!আপনি বাফারটি সংরক্ষণ না করেই যদি প্রস্থান করার চেষ্টা করেন তবে এটি আপনাকে ব্যবহার করতে বলে tells
mechalynx

5
@ আইওয়াই_লাইনক্স হ্যাঁ, আপনি ঠিক থাকতে পারেন, তবে আপনি যদি ফাইল ছাড়াই ভিএম খোলেন। সাধারণত, আপনি প্রথমবার ভিএমটি খুলবেন কারণ ইউনিক্সে আপনাকে কোনও কনফিগারেশন ফাইল সম্পাদনা করতে হবে, সুতরাং আপনি "im vim ফাইল" লিখেন এবং আপনি নিজের উপায় খুঁজে পাচ্ছেন না। নাকি আমি একাই?
হোসে রামেন

56

^ এক্সএফ বর্তমান ডিরেক্টরি থেকে ফাইলের নাম ব্যবহার করে সম্পূর্ণ করে। টার্মিনাল বা বেদনাদায়ক ডাবল চেকিং থেকে আর অনুলিপি / আটকানো নেই।

^ এক্সপি বর্তমান ফাইলটিতে শব্দ ব্যবহার করে সম্পূর্ণ করে

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


আমি একবার সক্ষম হয়ে গেলে স্ক্রোলবাইন্ড কীভাবে অক্ষম করব?
আমজিথ

2
jinxed_coder : :set noscbএটি বন্ধ করতে এবং এটি :set scbচালু করার জন্য (না :scrollbind) ব্যবহার করুন। :h scrollbind
jmdeldin

উপস। ': স্ক্রোলবাইন্ড সেট করুন' এর জন্য সংশোধন করা হয়েছে।
ব্রায়ান অগ্নিউ

7
^ এক্সপি ফাইলের পূর্ববর্তী শব্দের সাথে অগ্রাধিকার দিয়ে সম্পূর্ণ করে, ^ এক্সএন ফাইলের পরবর্তী শব্দগুলির সাথে পছন্দ হিসাবে।
u0b34a0f6ae

আপনি ফাইল 1 খুলতে এবং চালানো :diffsplit file2বা সবেমাত্র ভিএম দিয়ে শুরু করে ফাইলগুলি পৃথক করতে পারেন vim -d file1 file2। ভিম স্বয়ংক্রিয়ভাবে দুটি ফাইল স্ক্রোলবাইন্ড করে।
ব্রায়ান ম্যাকচ্যাটন

51

বন্ধনী / বন্ধনী / উদ্ধৃতি চিহ্ন / ট্যাগের অভ্যন্তরে পাঠ্য পরিবর্তন করতে আপনি সম্পূর্ণ কমান্ড ব্যবহার করতে পারেন। গ্রুপটির শুরু এবং সমাপ্তি খুঁজে পেতে এড়াতে এটি অত্যন্ত দরকারী। আপনি ci(, ci{, ci<, ci", ci', ctকোন ধরণের অবজেক্টটি পরিবর্তন করতে চান তার উপর নির্ভর করে চেষ্টা করুন । এবং ca(, ca{, ...রূপগুলি বন্ধনী / উদ্ধৃতি চিহ্নগুলি পাশাপাশি মুছে দেয় delete

মনে রাখা সহজ: বন্ধনীযুক্ত স্টেটমেন্টের ভিতরে পরিবর্তন করুন / একটি বন্ধনী বিবৃতি পরিবর্তন করুন।


16
এই শুধুমাত্র জন্য c। আপনি dমুছে ফেলার সাথে এটি করতে পারেন (যেমন ডি (বা দা (), yইয়েঙ্ক করতে, vইত্যাদি নির্বাচন করতে )
নাথান ফেলম্যান

হ্যালো! আমি জানতে চাই যে এখানে ডকুমেন্টেশন ব্যবহার করছে :help? আমি এটি কোথাও খুঁজে পাচ্ছি না। > _ <
মাতেজ

1
@ পিটার আমি আগে এগুলি পরীক্ষা করে দেখেছি, তবে অদ্ভুত "অভ্যন্তরীণ + ডিলিমিটার" আচরণের উল্লেখ খুঁজে পাইনি। এটি হতে দেখা যাচ্ছে :help motion.txt! ধন্যবাদ!
মাতেজ

2
এই টিপটি হ'ল আমি প্রথম স্থানে vi এ চলে যাওয়ার একমাত্র কারণ :)
জাস্টিন এল

1
আপনি যদি এইচটিএমএল বা এক্সএমএল সম্পাদনা করেন তবে আপনি citবর্তমান ট্যাগের বিষয়বস্তু পরিবর্তন করতে ব্যবহার করতে পারেন । উদাহরণস্বরূপ <span>Some text</span>, যদি আপনার কার্সারটি "মি" এর উপরে থাকে তবে আপনি এটি করতে ditপারেন <span></span>
জোনাথন পটার

47
  1. Escকখনও চাপবেন না । কেন এই উত্তরটি দেখুন । উপরে উল্লিখিত হিসাবে, Ctrl+ Cএকটি ভাল বিকল্প। আমি Caps Lockপালানোর জন্য আপনার কীটি ম্যাপিংয়ের দৃ strongly় পরামর্শ দিচ্ছি ।

  2. আপনি যদি কোনও Ctags সামঞ্জস্যপূর্ণ ভাষা সম্পাদনা করে থাকেন তবে ট্যাগ ফাইল এবং :ta, Ctrl+ ]ইত্যাদি ব্যবহার করে কোড একাধিক ফাইলের মধ্যেও নেভিগেট করার দুর্দান্ত উপায় across এছাড়াও, ট্যাগ ফাইল ব্যবহার করে Ctrl+ Nএবং Ctrl+ Pসমাপ্তি কী-স্ট্রোকগুলি কেটে ফেলার একটি দুর্দান্ত উপায়।

  3. যদি আপনি এমন কোনও লাইন সম্পাদনা করেন যা মোড়ানো থাকে তবে এটি আপনার বাফারের চেয়ে বেশি প্রশস্ত হয়, আপনি gk এবং gj ব্যবহার করে উপরে / নিচে চলে যেতে পারেন।

  4. আপনি খারাপ অভ্যাস শিখার আগে মোশন কমান্ডগুলির কার্যকর ব্যবহারে মনোযোগ দেওয়ার চেষ্টা করুন। Xa গুচ্ছটি বার বার চাপার পরিবর্তে 'dt' বা 'd3w' ব্যবহার করার মতো বিষয়। মূলত, যে কোনও সময় আপনি নিজেকে একই কী টি বার বার টিপতে দেখতে পান, একই জিনিসটি সম্পাদন করার সম্ভবত আরও ভাল / দ্রুত / আরও সংক্ষিপ্ত উপায় রয়েছে।


11
এস্কেপ ব্যবহার করবেন না? এটা ধর্মবিরোধী। চাকরীতে বা বাইরে উভয়ই পালানো আপনার সেরা বন্ধু।
এক্সক্র্যাম্প

28
যদি এটি এত ভাল বন্ধু হয় তবে এটি এত দূরে কী-বোর্ডে কেন?
এন্থনি

কারণ 99% লোক কখনই এটি ব্যবহার করে না।
স্টেফানো বোরিনি

5
আমার কীবোর্ডে কয়েক ইঞ্চি দ্বারা এস্কেপ অন্যান্য কী থেকে আলাদা হয়ে যায়। আপনি এটি মিস করতে পারবেন না।
ব্রায়ান কার্পার

15
# 3 দুর্দান্ত! এখনও নতুন জিনিস শিখছে ...
ব্রায়ান নিউম্যান

45

তারকাচিহ্ন কী, *কার্সারের নীচে শব্দটির জন্য অনুসন্ধান করবে।

[+ Tabআপনাকে আপনার কার্সারের অধীনে একটি সি ক্রিয়াকলাপের সংজ্ঞাতে নিয়ে যাবে। (যদিও এটি সর্বদা কার্যকর হয় না))


1
'ম্যান সিটিগস' ব্যবহার করে চেষ্টা করুন যদি আপনি "নিক্স" কীভাবে একটি "ট্যাগ" ফাইল তৈরি করতে শিখতে চান যা সিআই ছাড়াও বহু ভাষাতে কোনও ফাংশন বা ভেরিয়েবলের সংজ্ঞা কীভাবে খুঁজে বের করতে হয় সে সম্পর্কে Vim কে জানায় সংজ্ঞাটি জানতে ctrl +] ব্যবহার করুন আপনার কার্সারের নিচে টোকেন বা ব্যবহার করুন: এটি সম্পর্কে জেনে থাকা কোনও টোকেন সন্ধান করতে ট্যাগ টোকেনফিনফিন্ডটি ট্যাগ করুন। এমনকি উপযুক্ত ফাইলটি খুলতে এবং সম্পাদনা করার জন্য যে ফাংশনটিতে কার্সার রয়েছে তার জন্য আপনি "vim -t tokenToFind" দিয়ে ভিএম শুরু করতে পারেন।
অ্যাডাম লিস

23
# কীটি কার্সারের নীচে শব্দের বিপরীত দিকে অনুসন্ধান করবে
ফানকোডাবিট

github.com/bronson/vim-visual-star-search ভিজ্যুয়াল নির্বাচনের জন্য তারকা অনুসন্ধান সক্ষম করে। আমি এটি আর মিস করতে চাই না।
প্যাট্রিক অসিটি

[ + Tab যখন আপনি pathপ্রয়োজনীয় ফোল্ডারগুলি প্রসারিত করেন সর্বদা কাজ করবেset path+=path/to/files
dlmeetei

43

ZZ(যেমন কাজ করে :wq)

এবং কার্সারের অবস্থান সম্পর্কে: আমি দেখেছি যে একটি কার্সার যা সর্বদা পর্দার মাঝখানে থাকে তা দুর্দান্ত -

set scrolloff=9999

2
তা জানতাম না। :xযে আছে হিসাবে ভাল
sa125

18
সম্পূর্ণ সঠিক নয়। এর মতো কাজ করে :x, যা পরিবর্তনগুলি উপস্থিত থাকলে কেবলমাত্র ফাইলটি সংরক্ষণ করে, যেখানে :wqসর্বদা ফাইল সংরক্ষণ করে।
এরিক বি

জেডকিউ (যেমন: q!) কাজ করে
xialu

42

আমার ভিম ব্রেইনস্টোরে আমার সর্বশেষতম সংযোজন:

  • ^wi: উইন্ডোটি বিভক্ত করে কার্সারের নীচে ট্যাগটিতে যান।
  • cib/ciB: অনুক্রমের () বা ব্রেসেস current} এর বর্তমান সেটটির যথাক্রমে পাঠ্য পরিবর্তন করুন।
  • :set listchars=tab:>-,trail:_ list: অন্যান্য স্পেস থেকে দৃশ্যমানভাবে পৃথক পৃথক ট্যাব / অনুসরণযোগ্য স্থানগুলি দেখান। পাইথন কোডিংয়ের সাথে এটি অনেক সহায়তা করে।

4
এর জন্য আরও ভোট দরকার! cibমহান.
ম্যাট পার্কার

এছাড়াও: বর্তমান শব্দের পরিবর্তন করতে ciw (বা কাও, কেবল তবে বাম হাত কেবল) ciW বর্তমান ডাব্লু = ও। (আরডি) এর পরিবর্তে সি এর পরিবর্তে
ভেরু সহ স্যামগুলি

5
cib "ci" টাইপ করার সমতুল্য। আপনি অন্যান্য ধরণের বন্ধনীর জন্য "সিআই [", "সিআই {", বা (যদি আপনার ভিআরসিআরও সঠিকভাবে সেট আপ করা থাকে) "সিআই <" করতে পারেন
টম লর্ড

2
এছাড়াও, একটি ট্যাগের ভিতরে পাঠ্য পরিবর্তন করতে "সিটি"। এক্সএমএল / এইচটিএমএল নিয়ে কাজ করার সময় খুব দরকারী।
ওয়াল্টার

এটি উল্লেখ করার মতো যে আপনি ডাব্লু / এর পরিবর্তে বন্ধ বন্ধনীটি ব্যবহার করতে পারেন, আপনার যদি এটি পছন্দ হয়। এছাড়াও, আমি সবেমাত্র ci}& cit- বাহ সম্পর্কে শিখেছি , এটি খুব কার্যকর হতে চলেছে । vi[m]একটি খুব উত্তেজনাপূর্ণ প্রোগ্রাম প্রমাণ করছে [গুলি]!
আন্ডারস্কোর_ইড

37

gv ভিজ্যুয়াল মোড শুরু করে এবং আপনি পূর্বে যা নির্বাচন করেছিলেন তা স্বয়ংক্রিয়ভাবে নির্বাচন করে।


34

: শিম Vim থেকে শেল কনসোল চালু করতে। দরকারী যখন উদাহরণস্বরূপ আপনি Vim ছাড়াই কোনও স্ক্রিপ্ট পরীক্ষা করতে চান। শেল কনসোলটি সম্পন্ন করার পরে কেবল ^ d টিপুন এবং তারপরে আপনি ভিমে এবং আপনার সম্পাদিত ফাইলটিতে ফিরে আসবেন।


আমার ধারণা :!shখুব শক্ত ছিল। আমি পছন্দ যে কারণ এটি সাম্প্রতিক বাফার বা যেমন ব্যবহার থেকে রেজিস্টার / সম্পূর্ণকরণ ব্যবহার রচনা কমান্ড লাইন করা আরো সহজ %/ %:hবর্তমান ফাইলের নাম জন্য / dirname ইত্যাদি
sehe

1
এই এক খুব দুর্দান্ত। আমি এটি প্রতিদিন ব্যবহার করি .. এর আগে এটি ছিল: wq, ক্লাইফ স্টাফ করুন,
ভিম

7
শেলটিতে স্যুইচ করতে Ctrl-Z এবং ভিগ-এ ফিরে যাওয়ার জন্য <g
মারিও জি।

map <Esc>! :shell<CR>আপনার রাখুন .vimrc, এবং আপনি কেবল Alt + !, বা Alt + Shift + 1 দিয়ে শেলটি চালু করতে পারেন। (স্মৃতিসম্বন্ধীয়: :!{cmd}, executes {cmd}শেল যান।)
musiphil

:shellযদিও একটি নতুন নেস্টেড শেল স্তরটি শুরু করবে। যেখানে ctrl-zনা।
উইসবাকি


31

vimcryption

vim -x filename.txt

আপনাকে একটি পাসফ্রেজ, সম্পাদনা এবং সংরক্ষণের জন্য জিজ্ঞাসা করা হবে। এখন যখনই আপনি vi এ ফাইলটি আবার খুলবেন তখন আপনাকে দেখতে পাসওয়ার্ডটি প্রবেশ করতে হবে।


এটি আপনার ড্রপবক্সের সাথে সিঙ্ক করুন এবং আপনি একটি দুর্দান্ত পাসওয়ার্ড ম্যানেজার পাবেন ;-)
লুইস নেল

15
তবে মনে রাখবেন যে আপনি set cryptmethod=blowfish(কেবলমাত্র 7.3+ এ উপলব্ধ) যদি না তা হাস্যকর শক্তি সহ একটি অ্যালগরিদম ব্যবহার করবে। দেখুন help encryptionআরো বিস্তারিত জন্য।
এবি

3
দয়া করে ভিআইএম এনক্রিপশন ব্যবহার করবেন না, ভাল এনক্রিপশন নয় এবং খারাপ সুরক্ষাও এর চেয়ে খারাপ worst আরও তথ্য: github.com/neovim/neovim/issues/694
রড্রোগিক

2
dgl.cx/2014/10/vim-blowfish meta-tldr: " পিছনে সামঞ্জস্যতার কারণে এটি প্রয়োজনীয় কারণের জন্য, " ভিম .3.৪.৩৯ [[গ্রুপ. google.com/forum/#!msg/vim_dev/D8FyRd0EwlE/bkBOo-hzTzoJ] এ ঠিক করা হয়েছে " একটি নতুন ক্রিপ্টমেডুড হতে হবে, সুতরাং :set cm=blowfish2"
আন্ডারস্কোর_আডি

28

ভিমের মধ্যে থেকে আপনার কোডটি তৈরি করুন এবং ডিবাগ করুন!

কনফিগারেশন

আসলেই বেশি কিছু নয়। Makefileআপনার বর্তমান ডিরেক্টরিতে একটি দরকার ।

সংকলন করতে

আপনি ভিমে থাকাকালীন :makeশেলটি শুরু করতে লিখুন এবং আপনার প্রোগ্রামটি তৈরি করুন। আউটপুটটি যখন স্ক্রল করে তখন চিন্তা করবেন না; Enterভিমে ফিরতে শেষ হয়ে গেলে কেবল টিপুন ।

চমক

ভিমের মধ্যে ফিরে আসার পরে, আপনার নিষ্পত্তি করার জন্য আপনার কাছে নিম্নলিখিত কমান্ড রয়েছে:

  1. :cl ত্রুটি, সতর্কতা এবং অন্যান্য বার্তাগুলি তালিকাভুক্ত করে।
  2. :ccস্ক্রিনের নীচে বর্তমান ত্রুটি / সতর্কতা বার্তা প্রদর্শন করে এবং আপনার কোডের আপত্তিজনক লাইনে লাফ দেয়
  3. :cc nজাম্প nতম বার্তা।
  4. :cn পরবর্তী বার্তা অগ্রগতি।
  5. :cp আগের বার্তায় লাফ দেয়।

আরো আছে; আপনি যদি আগ্রহী হন তবে :help :ccভিমের মধ্যে থেকে টাইপ করুন ।


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

25

^ পি এবং ^ এন

পূর্ববর্তী (^ পি) বা পরবর্তী (^ N) পাঠ্য সম্পূর্ণ করুন।

^ ও এবং ^ আই

পূর্ববর্তী (old O - "পুরাতন জন্য" O ") অবস্থানে বা পরের (^ I -" I "এর ঠিক কাছে" O "এর কাছাকাছি যান)।

আপনি অনুসন্ধানগুলি সম্পাদন, ফাইল সম্পাদনা ইত্যাদি করার সময় আপনি এই "লাফিয়ে" এগিয়ে এবং পিছনে নেভিগেট করতে পারেন।

চিহ্ন

মা (m- চিহ্ন, একটি - চিহ্নের নাম) টিপুন । পরে অবস্থানে ফিরে আসতে, টাইপ করুন `এ


1
বাহ, আমি ^ ও এবং ^ আমি সম্পর্কে জানতাম না: এটি দুর্দান্ত। :help jump-motionsযদি কেউ আরও তথ্য চায় তার ক্ষেত্রে আপনার উত্তর সহ অন্তর্ভুক্ত হতে পারে ।
ডাব্লু

শোমার্কগুলি vim.org/scriptts/script.php?script_id=152 দেখুন । এটি আপনাকে এবং কোথায় আপনার সমস্ত চিহ্ন একটি বাফারে রয়েছে তা স্মরণে রাখতে সহায়তা করবে। আপনি ভিজ্যুয়ালাইজেশনটি চালু করতে এবং বন্ধ করতে পারেন \ এমটি
পরীক্ষক

আমি ^ P এবং ^ N এর মধ্যে পার্থক্য পাই না ...
লাজার

@ লাজেরে তারা বিপরীত দিকে উপলভ্য
পরিপূরণগুলির তালিকাটি ঘুরে দেখায়

2
আমি প্রায়শই ভিএম খোলার সময় V O noticed O ব্যবহার করি যখন আমি লক্ষ্য করেছি যে আমি শেষ সম্পাদিত ফাইলটি আবার সম্পাদনা করতে চাই। বিশাল টাইম সেভার!
প্যাট্রিক অসিটি

24

%কার্সারটি যখন কোনও উদ্ধৃতি, প্রথম বন্ধনী, বন্ধনী বা ব্রেস থাকে তার টিপতে টিপুন its


20
কার্সার যদি তার কোনওটির উপরে না থাকে তবে এটি ডানদিকে সরে যায় যতক্ষণ না এটি তার মধ্যে একটিকে আঘাত করে।
সাইবার অলিভিয়র

@ লোও: বোনাস টিপটির জন্য ধন্যবাদ!
অ্যাডাম লিস

22

[চরিত্র] ( t) অবধি । এটি কোনও কমান্ডের জন্য দরকারী যা একটি ব্যাপ্তি গ্রহণ করে। আমার প্রিয় ct;বা ct)সেগুলি সেমিকোলন / ক্লোজিং বন্ধনীর সমস্ত কিছু মুছে ফেলে এবং তারপরে আপনাকে সন্নিবেশ মোডে রাখে।

এছাড়াও, Gএবং ggদরকারী (যথাক্রমে নীচে এবং শীর্ষে যান)।


এখানে সেরা একটি, যদিও অন্যদের মধ্যে কিছু খুব দরকারী, আমি কেবল তাদের সম্পর্কে ইতিমধ্যে জানতাম
Funkodebat

1
এছাড়াও fপরিবর্তে t, যা হবে [কর্ম] আপ মাধ্যমে যে চরিত্র; উদাহরণস্বরূপ, একটি ফাংশন আর্গুমেন্টের শুরুতে কার্সার থাকা, df,এটি মুছে ফেলবে (অবশ্যই উপযুক্ত ভাষায়)।
অভিনেতা ক্লাভিলিস

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

1
টি এবং এফও কাজ করে তবে বিপরীত দিকে।
ফেডার

20

^r^w কমান্ড মোডে কার্সারের নীচে শব্দটি পেস্ট করতে।

গ্রেপ বা কমান্ডগুলি প্রতিস্থাপন করার সময় এটি সত্যই কার্যকর।


এটি যদি আপনি চান তবে এটি কেবল একটি শব্দ, তবে * সাধারণ মোডে কার্সারের নীচে শব্দটি অনুসন্ধান করা হবে।
idbrii

17

তারপরে একটি লাইন নম্বর টাইপ করা ggআপনাকে সেই লাইনে নিয়ে যাবে।


31
: লাইন নম্বর অনুসারে একই কাজ করে: 42 লাইন নম্বর 42 এ যায়
অ্যান্টি Veeranna

12
জি এর পরে একটি লাইন নম্বর টাইপ করার একই প্রভাব রয়েছে।
সাইবার অলিভিরা 15

3
<number>go<number>ফাইলের তম অক্ষরে যায় ।
অভিনেতা ক্লাভিলিস

17

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

উদাহরণস্বরূপ আমি বিশেষভাবে দরকারী খুঁজে পেয়েছি, যখন, বলি, প্রতীকী ধ্রুবক নামের তালিকার ধারাবাহিকভাবে রিফ্যাকচারিং:

ভিজ্যুয়াল ব্লক মোড প্রবেশ করান ( Ctrl+ Qউইন্ডোজটিতে Ctrl+ + এর পরিবর্তে আমার জন্য V)

পছন্দসই ব্লকটি হাইলাইট করতে কার্সারটি সরান।

তারপরে, I whatever textএবং Escপ্রতিটি লাইনে ব্লকের সামনে পাঠ্য সন্নিবেশ করানোর জন্য টিপুন ।

প্রতিটি লাইনে ব্লকের পরে পাঠ্য প্রবেশ করানোর Aপরিবর্তে ব্যবহার করুন I

এছাড়াও - কেবলমাত্র ভিজ্যুয়াল নির্বাচনের ক্ষেত্রে টগল ~করা বড় সময় বাঁচানো যেতে পারে।

এবং dঅবশ্যই কলামগুলি অবশ্যই মুছে ফেলা হচ্ছে।


15

^ y কার্সরের উপরে অক্ষরটি অনুলিপি করবে।


6
... এবং ^ E কার্সারের নীচে অক্ষরটি সন্নিবেশ করবে
PHP

আমার জন্য কাজ করে না, এটি পাঠ্যের শুরুতে কেবল একটি কার্সার নিয়ে যায়
অ্যালেক্স

14

q <letter> - একটি ম্যাক্রো রেকর্ড করে।

এবং

@ <same-letter> - এটিকে আবার খেলবে।

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


ব্যবহারগুলির qবিষয়গুলি সরল করে তোলে, তবে আপনার এটি ব্যবহার করার দরকার নেই: কেবল একটি নামযুক্ত বাফার বাফার কমান্ডে সংরক্ষণ করুন "- উদাহরণস্বরূপ, বাফার ব্যবহার করে a- "ad$...
মেই

@ মাই qএকটি ম্যাক্রো রেকর্ড করেছে; ম্যাক্রোগুলি কেবল পাঠ্য নয়, কমান্ড ধারণ করতে পারে, তাই এর "ad$থেকেও আলাদা qa
ব্রায়ান ম্যাকচাটন

@ সোর্টোফাবেগিনার এটি এখানে অপ্রাসঙ্গিক। "বিজ্ঞাপন" কমান্ডটি পাঠ্যকে বাফার এ রাখে এবং QA এটি চালায়
মেই

2
@ মাই qaএটি চালায় না; qaএটি রেকর্ড করে এটি @aচালায়। এটি সত্য যে আপনি সরল পাঠ্যে একটি ম্যাক্রো লিখতে পারেন, এটির aমতো কোনও কিছুতে এটি নিবন্ধে সংরক্ষণ করতে পারেন "ad$এবং এটির সাথে চালিত করতে পারেন তবে এটি @aবেশ খানিকটা কাজ is কাট-পেস্ট এবং রেকর্ড-ও-রানের মধ্যে একটি মৌলিক পার্থক্য রয়েছে।
ব্রায়ান ম্যাকচ্যাটন

ডোহ! আমি জানি সেটা. সংশোধন করার জন্য ধন্যবাদ
মেই

13

ট্যাব ব্যবহার করে একাধিক ফাইল খোলা হচ্ছে

:tabe filepath

খোলা ফাইলগুলির মধ্যে নেভিগেট করা

gt and gT or :tabn and :tabp

খোলা সেশনটি সংরক্ষণ করুন যাতে আপনি পরে খোলা ফাইলগুলির তালিকায় ফিরে আসতে পারেন

:mksession session_file_name.vim

একটি তৈরি সেশন খুলুন

vim -S session_file_name.vim

একবারে সমস্ত ফাইল বন্ধ করুন

:qa

আরেকটি আদেশ আমি সম্প্রতি শিখেছি

autocmd

এটি আপনাকে একটি ইভেন্টে একটি কমান্ড চালানোর অনুমতি দেয়, সুতরাং আপনি উদাহরণস্বরূপ কোনও ফাইল ব্যবহার করে কোনও ফাইল সংরক্ষণ করার সময় মেক কমান্ড চালাতে পারেন:

:autocmd BufWritePost *.cpp :make

12

কিউএক্স কীস্ট্রোক রেকর্ডিং শুরু করবে। আপনি কোনও সম্পাদনা কার্য বেশ কিছু করতে পারেন এবং ভিম এটি মনে রাখে। শেষ হয়ে গেলে কিউ আবার হিট করুন , এবং আপনার কীস্ট্রোকগুলি পুনরায় খেলতে @x টিপুন । এটি পুনরাবৃত্তিমূলক সম্পাদনাগুলির জন্য দুর্দান্ত যা ম্যাপিং লিখতে খুব জটিল। এক্স ব্যতীত অন্য একটি অক্ষর ব্যবহার করে আপনার অনেক রেকর্ডিং থাকতে পারে ।


5
এছাড়াও একই অক্ষর 'x' টি 'কিউ' রেকর্ড ম্যাক্রো কমান্ড এবং নামযুক্ত ক্লিপবোর্ডগুলির মধ্যে ভাগ করা হয়েছে ("x ...) You আপনি আপনার ফাইলের চারপাশে বসে ম্যাক্রোগুলির স্নিপেটগুলি রেখে একটি নামযুক্ত ক্লিপবোর্ডে অনুলিপি করতে পারেন (যেমন" xyy ) এবং তারপরে সেগুলি খেলুন (@ x)।
সাইবার অলিভীরা 15

এবং যদি আপনি যদি কখনও এডোমিস্ট ম্যাক্রো তৈরি করেন তবে আপনি সেই ক্লিপবোর্ডটিকে একটি 'লেট @ এক্স = "" (ম্যাক্রোটিকে "" "") দিয়ে আপনার _vimrc এ আটকান এবং চিরতরে সংরক্ষণ করতে পারেন!
কেয়ার্নস

11

আমার বলতে হবে যে আমার পছন্দের একজন হেল্প উইন্ডোটিকে একটি নতুন ট্যাবে রাখছে:

:tab help <help_topic>

এটি একটি নতুন ট্যাবে সহায়তা উন্মুক্ত করে এবং যে কেউ ভিম ট্যাবগুলিকে পছন্দ করে, এটি হাস্যকরভাবে কার্যকর।


2
বাফারগুলি ভিমের ট্যাবগুলি। এগুলি ভিএম ওয়ার্কফ্লো দ্বারা আরও ভালভাবে সমর্থিত। আমার সন্দেহ হয় যে ট্যাবগুলি কেবল ভিমে যুক্ত হয়েছিল কারণ অনেক লোক বাফার বুঝতে পারে না।
এখনও_ড্রিমিং_1

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

9

CW

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

f + অক্ষর

বর্তমান লাইনে অক্ষরের পরবর্তী উপস্থিতি সন্ধান করে। সুতরাং আপনি বর্তমান লাইনে পরবর্তী "টি" পর্যন্ত সমস্ত পাঠ্য নির্বাচন করতে ভিএফটি করতে পারেন । এটি অন্য চলন কী, তাই এটি অন্যান্য কমান্ডের সাথেও কাজ করে।


9

:b [any portion of a buffer name]বাফার পরিবর্তন করতে। সুতরাং আপনার যদি দুটি বাফার থাকে, "somefile1.txt", এবং "someotherfile2.txt", আপনি সহজভাবে দ্বিতীয়টিতে যেতে পারেন ":b 2.t<enter>"। এটি ট্যাব সমাপ্তি সমর্থন করে, যদিও এটি প্রয়োজন হয় না।

ট্যাব সমাপ্তির কথা বললে, সেটিংসটিও :set wildmode=full wildmenuখুব সহায়ক। এটি কমান্ড-মোডের জন্য সম্পূর্ণ ট্যাব সমাপ্তি সক্ষম করে, পাশাপাশি এটি ব্যবহারের সময় সমস্ত সম্ভাব্য ম্যাচের একটি খুব সহায়ক ncurses- স্টাইল মেনু সক্ষম করে।


9

হয়েছে:% s, / অনুসন্ধান / প্রতিস্থাপন,

আপনি /প্রতিস্থাপনের জন্য পৃথক প্যাটার্নগুলি (স্ল্যাশ) ব্যতীত অন্য অক্ষর ব্যবহার করতে পারেন । এইভাবে আপনাকে ফাইল পাথের স্ল্যাশগুলি থেকে বাঁচতে হবে না।


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