ভিমে ফাইল খুলতে শর্টকাট


123

আমি অন্ধকার ব্যবহার তেজ একটি ফাইল খুলতে চান Ctrl+ + Shift+ + R, বা মাধ্যমে Ctrl+ + Nস্বতঃপূর্ণ এর বিকল্প। একটি কীবোর্ড শর্টকাট চালু করুন, ফাইলের নাম / প্যাটার্নটি টাইপ করুন এবং সমস্ত মিলে যাওয়া ফাইলের নাম থেকে পছন্দ করুন।

আমি সাধারণভাবে এটি খুলতে জানি:

:tabe <filepath>
:new <filepath>
:edit <filepath>

এখানে সমস্যা হ'ল আমাকে এই ক্ষেত্রে পুরো ফাইলের পথটি নির্দিষ্ট করতে হবে।


1
নোট করুন যে প্রস্তাবিত কমান্ডগুলির আলাদা প্রভাব :tabeরয়েছে একটি নতুন ট্যাবে ফাইলটি খুলবে, :newঅনুভূমিকভাবে উইন্ডোটি বিভক্ত :editহবে এবং নতুন ফাইলটি খোলার আগে বর্তমান ফাইলটি বন্ধ করে দেবে।
স্কিপি লে গ্র্যান্ড গৌরু

উত্তর:


61

আমি সম্প্রতি fuzzyfinder.vim এর প্রেমে পড়েছি ... :-)

: FuzzyFinderFile আপনাকে আংশিক নাম বা নিদর্শনগুলি টাইপ করে ফাইলগুলি খুলতে দেবে।


141

আমি সাধারণত যা করি তা হ'ল e .(ই-স্পেস-ডট) যা আমাকে একটি ব্রাউজযোগ্য বর্তমান ডিরেক্টরি দেয় - তবে আমি করতে পারি /- নামের টুকরোগুলি অনুসন্ধান করতে , যেমন কোনও পাঠ্য ফাইলে একটি শব্দ খুঁজে পাওয়া। আমি এটি যথেষ্ট ভাল, সহজ এবং দ্রুত বলে মনে করি।


22
অতিরিক্ত 25% টাইপিং সংরক্ষণ করে আপনার স্থানের দরকার নেই। ( :e.)।
কনরাড রুডল্ফ

67
আপনি যদি মূলধন ই ব্যবহার করেন তবে আপনার বিন্দুর প্রয়োজন হবে না যেমন: E <ENTER>
Andriy Drozdyuk

2
@ড্রোজি এটি ভিএম :
ডেরমাইক

7
যদিও এর মধ্যে :e.এবং :Eতার মধ্যে আচরণের মধ্যে পার্থক্য রয়েছে : যদি বর্তমান ফাইলটি সম্পাদনা করা হয়েছে এবং এখনও সংরক্ষণ না করা হয়েছে তবে প্রাক্তন :edit"শেষ পরিবর্তনের পরে লেখেন না" বলে অভিযোগ করবেন (যেমন ) উইন্ডোটি অনুভূমিকভাবে বিভক্ত করবেন (যেমন :new) কোনও নতুন ফাইল খোলার অনুমতি দেওয়ার জন্য (যখন উভয়ই বর্তমান ফাইলটিকে নতুন ফাইলের সাথে প্রতিস্থাপন করবে যদি এটি পরিবর্তন না করা হয় (যেমন :edit))।
স্কিপি লে গ্র্যান্ড গৌরু

1
আপনি যদি কোনও ফাইল খোলেন, তবে এটি একটি দ্বিতীয় ফাইলের সাথে প্রতিস্থাপন করুন, আপনি "e #" ব্যবহার করে প্রথমটিতে ফিরে আসতে পারেন
dkretz

33

:find অন্য বিকল্প।

আমি আমার প্রকল্পের মূল থেকে ভিএম খুলি এবং pathসেখানে সেট করি।

তারপরে, আমি গাছের যে কোনও জায়গায় থাকা ফাইলগুলি এটি ব্যবহার করে খুলতে পারি:

:find **/filena< tab >

ট্যাব বিভিন্ন ম্যাচের মাধ্যমে স্বয়ংক্রিয়ভাবে পূর্ণ হবে। ( **এটিকে পথ ধরে পুনরাবৃত্তভাবে অনুসন্ধান করতে বলে)।


:findওয়ার্কিং ডিরেক্টরির সাথে সম্পর্কিত পাথটি পাওয়ার জন্য আমি কার্যকর খুঁজে পাই না । প্রশ্ন দেখতে পাবেন এবং এখানে উত্তর @romainl: stackoverflow.com/questions/28224168/... । কার্যকরী ডিরেক্টরিটির সাথে সম্পর্কিত পাথ সহজতর করতে আমি আরও আকর্ষণীয় @ স্ট্রেজারের উত্তর পেয়েছি।
ziiweb

25

আপনি ব্যবহার করে বর্তমান পথে কোনও ফাইল সন্ধান করতে পারেন **:

:tabe **/header.h

একাধিক ম্যাচ হলে বিভিন্ন সম্পূর্ণতা দেখতে ট্যাব হিট করুন।


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

1
চমৎকার উত্তর. :tabe **/*der.hআপনি যদি ফাইলটির পুরো নামটি মনে না রাখেন তবে এমন কিছু ব্যবহার করুন।
ziiweb

16

CtrlP প্লাগ-ইন ব্যবহার বিবেচনা করুন ।

এটি জানুস ডিস্ট্রিবিউটের অন্তর্ভুক্ত ।

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


1
আসলে আমি জানুস বিতরণের অংশ হিসাবে এটি ব্যবহার করি।
আলেক্সি

মূল সিটিআরএলপি রেপো নিষ্ক্রিয়, তবে একটি সক্রিয় কাঁটাচামচ আছে
jpyams 21'18

12

যতক্ষণ না আমি কিছু মিস করছি,: ই ফাইলনামটি আমার কাছে সবচেয়ে দ্রুততম উপায়।

আপনি ফাইলের নামটিও স্বতঃপূরণ করতে ট্যাব ব্যবহার করতে পারেন।


পছন্দ করুন এটি এখনও একটি শর্টকাট, যেমন এই প্রশ্নের শিরোনামটি বোঝায়, তবে আমি মনে করি না যে এটি প্রশ্নকারী কী খুঁজছেন।
স্টারগার

আমার জন্য ট্যাব স্বতঃপূরণ কাজ করে না: ই। এছাড়াও আপনি সবসময় ফাইলের নাম অনুসন্ধান করতে চান না যা কোনও কিছু দিয়ে শুরু হয়, বরং কোনও ফাইলনামের মধ্যম শব্দের জন্য।
অ্যান্ড্রি দ্রোজডিয়ুক


9

আমি আমার .vimrc ফাইলে বেশ কয়েকটি শর্টকাট ব্যবহার করি (নীচের নিচে সঠিক সিনট্যাক্স)।

তারা 90% ক্ষেত্রে, আমি বর্তমানে যে ফাইলটি সম্পাদনা করছি তার একই ডিরেক্টরিতে বা যে সম্পাদিত ফাইলটির স্তরক্রমের খুব কাছাকাছি রয়েছে এমন একটি ডিরেক্টরিতে অন্য একটি ফাইল খুলতে চাইছি তার উপর ভিত্তি করে।

কমান্ডগুলি যা করে তা এখানে:

,cd : আপনি যে ফাইলটি সম্পাদনা করছেন তার বর্তমান ডিরেক্টরিটিকে ডিরেক্টরিতে পরিবর্তন করুন।

,e: ইতিমধ্যে পূরণ করা বর্তমান ওয়ার্কিং ডিরেক্টরি সহ একটি ফাইল খোলে যাতে আপনাকে কেবল ফাইলের নামটি নির্দিষ্ট করতে হবে ।

এটিকে আপনার .vimrc- এ রাখুন:

map ,e :e <C-R>=expand("%:p:h") . "/" <CR>

map ,cd :cd %:p:h <CR>

এখানে ইভেন্টগুলির ক্রম রয়েছে:


  1. আপনি "/ home / prog" তে টেস্ট.জভা নামে একটি ফাইল সম্পাদনা করছেন
  2. ,cd -> বর্তমান ওয়ার্কিং ডিরেক্টরি এখন "/ হোম / প্রোগ" হয়
  3. ,e -> ": e / home / prog" এ প্রসারিত হয় যাতে আপনি কেবল ফাইলের নামটি পূরণ করতে পারেন, পরীক্ষা করুন।

  1. ,e -> ": ই / হোম" এ প্রসারিত
  2. tab -> / বাড়ির উপ-ডিরেক্টরি মাধ্যমে চক্র
  3. enter-> cdআপনি যে ডিরেক্টরিটি বলতে চান / হোম / অগ্রগতিতে চান
  4. ,e -> ": ই / হোম / প্রগ" এ প্রসারিত

8

কমান্ড-টিও রয়েছে যা আমি গুচ্ছের সেরা বলে মনে করি (এবং আমি সেগুলি সব চেষ্টা করেছি)। এটি ইনস্টল করতে এটি একটি সামান্য ঝামেলা তবে এটি ইনস্টল হয়ে গেলে এটি ব্যবহার করার স্বপ্ন।

https://wincent.com/products/command-t/


1
আপনিও চেষ্টা করতে পারেন ctrlp.vim ( github.com/kien/ctrlp.vim )। এটি মূলত কমান্ড-টির মতো তবে খাঁটি ভিমস্ক্রিপ্টে লিখিত। (আইএমএইচও এটি ব্যবহার করাও সহজ)
তারিখটি

6

ট্যাব ব্যবহার করুন, ভিএম এস্কেপ মোডে ফাইল পাথগুলি ইনপুট দেওয়ার সময় তারা কাজ করে!


4

যদি আপনি ট্যাগ পেয়ে থাকেন (এবং আপনার উচিত), আপনি কমান্ড লাইন থেকে ক্লাস বা পদ্ধতি বা সি ফাংশনটির নাম দিয়ে, "vim -t DBPlaylist" সহ এবং ": ট্যাগ শুলিস্টের সাথে ভিমেতে ফাইল খুলতে পারেন" "।


4

আপনি যদি কোনও সাধারণ ডিরেক্টরিতে ফাইল সম্পাদনা করেন তবে আপনি :cdসেই ডিরেক্টরিতে করতে পারেন তবে :eকেবল ফাইলের নামেই ব্যবহার করুন।

উদাহরণস্বরূপ, পরিবর্তে:

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:sp /big/long/path/that/takes/a/while/to/type/or/tab/complete/other_thingy.c
:vs /big/long/path/that/takes/a/while/to/type/or/tab/complete/one_more_thingy.java

আপনি করতে পারেন:

:cd /big/long/path/that/takes/a/while/to/type/or/tab/complete/
:e thingy.rb
:sp other_thingy.c
:vs one_more_thingy.java

অথবা, আপনার যদি ইতিমধ্যে পছন্দসই ডিরেক্টরিতে কোনও ফাইল খোলা থাকে, আপনি %বর্তমান ফাইল নামটির জন্য শর্টহ্যান্ড ব্যবহার করতে পারেন , এবং এটি :hসংশোধক ( :help :_%:) দিয়ে বর্তমান ডিরেক্টরিতে ছাঁটাই করতে পারেন :

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:cd %:h
:sp other_thingy.c
:vs one_more_thingy.java

এবং, অন্যরা যেমন বলেছে, আপনি প্রাক্তন-লাইনে ফাইলের নামগুলি ট্যাব-সম্পূর্ণ করতে পারেন (আরও :help cmdline-completionদেখুন)।


4

এটি ঠিক আপনি যা খুঁজছেন তা নয় , তবে এটি অনেক ক্ষেত্রে ভাল (যদিও সমস্ত নয়)।

আপনি যদি ভিআইএম খোলেন এবং বাফারে কোনও ফাইলের নাম রয়েছে, আপনি সেই ফাইলের নাম এবং টাইপটিতে কার্সারটি রাখতে পারেন gf। এটি একই বাফারে কারসারের অধীনে ফাইলটি খোলে। এটা যেমন হয়

:e CTRL+r CTRL+w


1
আমি জিএফ টিপলাম এবং এখন আমি নতুন ফাইলটি খুললাম যা কার্সারের অধীনে রয়েছে। এখন আসল ফাইলে কীভাবে ফিরে আসবেন। !!
vrbilgi

@ user430294: এটি অন্য একটি বাফারে খোলা আছে। ব্যবহার করুন:b oldname
নাথান ফেলম্যান

@vrbilgi, পূর্বে সম্পাদিত ফাইলটিতে ফিরে যেতে Ctrl + o ব্যবহার করুন। আপনি যে ফাইল থেকে ফিরে এসেছেন তার কাছে আবার এগিয়ে যেতে Ctrl + i ব্যবহার করুন।
Беров

3

আমি তিনটি প্লাগইন জানি যা ফাইলগুলি খোলার অনুমতি দেয়, স্বতঃ-সমাপ্তিকে সমর্থন করে এবং খোলার জন্য ফাইল (গুলি) এর পুরো পথের নাম প্রবেশ করার প্রয়োজন নেই (যতক্ষণ না ফাইলগুলি &pathভিআইএম অপশন থেকে ডিরেক্টরিগুলির একটির অধীনে থাকে ) :

ইদানীং, আমি একটি অনুরূপ বৈশিষ্ট্য সহ অন্য একটি প্লাগইন দেখেছি, তবে নামটি মনে নেই।

শীঘ্রই, সন্ধান করুন সম্ভবত স্বতঃ-সমাপ্তি সমর্থন করে - এই বিষয়গুলির প্যাচগুলি আজকাল ভিএম_দেব মেলিং-তালিকায় প্রচারিত হচ্ছে।


1
  • আপনি ব্যবহার করতে পারেন (সেট ওয়াইল্ডেনু)
  • আপনি স্বয়ংক্রিয়রূপে ফাইলের নামগুলিতে ট্যাব ব্যবহার করতে পারেন
  • আপনি ম্যাচিংও ব্যবহার করতে পারেন, উদাহরণস্বরূপ: ই p*.datবা এর মতো কিছু (পুরানো 'ডসের মতো)
  • আপনি এটিও করতে পারেন: নিশ্চিত ই ব্রাউজ করুন (গ্রাফিকাল উইন্ডোর জন্য)

  • তবে আপনি সম্ভবত কোন ভিএম সংস্করণটি ব্যবহার করছেন এবং ইমাসে that জিনিসটি কীভাবে কাজ করে তাও উল্লেখ করা উচিত। হতে পারে আমরা আপনাকে একটি সঠিক ভিএম বিকল্প খুঁজে পেতে পারি।


1

ফুজিফিন্ডারের কথা উল্লেখ করা হয়েছে, তবে আমি ফাজি ফিন্ডার টেক্সটমেট প্লাগইনের মতো টেক্সটমেটকে পছন্দ করি যা সমস্ত সাবডিরকে অন্তর্ভুক্ত করার জন্য আচরণকে প্রসারিত করে।

আপনি fuzzyfinder.vim এর ২.১ version সংস্করণ ব্যবহার করছেন তা নিশ্চিত করুন - উচ্চতর সংস্করণগুলি প্লাগইনটি ভেঙে দেয়।


1

এক্সবিউরেন্ট সিটি্যাগগুলির সাহায্যে আপনি ফাইলের তথ্য সহ ট্যাগ ফাইল তৈরি করতে পারেন:

ctags --extra=+f -R *

তারপরে, ভিআইএম এর মাধ্যমে ফাইলটি খুলুন

:tag filename

আপনি <tab>স্বয়ংক্রিয়রূপে ফাইলের নামটিও ব্যবহার করতে পারেন ।


1

জিভিআইএম-তে, ফাইলটি খোলা / পড়া / লেখার ডায়ালগ ব্যবহার করে ব্রাউজ করা যায়;

:browse {command}

{আদেশ} - খুলুন / পড়ুন / লিখুন

খোলা - খোলে ফাইল পড়া - আপনার স্বাক্ষরে ফাইল লেখার - SaveAs ডায়ালগ


0

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

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

:args app/**
:args config/**
:args test/**
etc...

(এর অর্থ হল আমার বেশিরভাগ স্কোর ফাইল খোলা থাকবে, তবে এখনও পর্যন্ত এটি ঠিক আছে বলে মনে হচ্ছে))

এর পরে, আমি বাফার মোডে ফজিফাইন্ডার ব্যবহার করতে পারি এবং এটি টেক্সটমেটের command-oশর্টকাটের মতো কিছুটা কাজ করবে ...

:FuzzyFinderBuffer

তুমি নিশ্চিত? আমার .vimrc এ আমার কিছু কনফিগার আছে, "g: fuf_abbrevMap" সন্ধান করুন। আমি অবশ্যই ডকুমেন্টেশনে একটি উদাহরণ খুঁজে পেয়েছি। আমি যখন শর্টকাট টাইপ করি, তখন আমি "ওয়েব:" এর মতো একটি সংক্ষিপ্তসার টাইপ করি এবং এটি আমার পছন্দের ফোল্ডারের মধ্যে সমস্ত ফাইল অনুসন্ধান করবে। আমার সমস্যাটি হ'ল কোনও কারণে এটি ফাইলগুলি আর খোলে না, আমি তার পরিবর্তে স্ট্যাটাস বারে [নতুন ডিরেক্টরি] দেখতে পাচ্ছি। তবে আমার একই সমস্যা আছে: ও, ফুফের সাথে সম্পর্কিত নয় বলে মনে হচ্ছে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.