Vi-set vi ব্যবহারের সুবিধা


55

আমি অনেকগুলি বিকাশকারীকে এই কমান্ডটি vi এর বিকল্প সেট করতে ব্যবহার করে দেখেছি। আমি এর আসল ব্যবহার কখনই বুঝতে পারি না?

বাশ কমান্ডগুলি ব্যবহার করার সময়, ভিআই তে স্যুইচিংয়ে কী সহায়তা দেয়?

উত্তর:


58

আপনার রিডলাইন সম্পাদনাটি ইমাস (ডিফল্ট) বা vi ( set -o vi) এ সেট করে আপনি শেল এবং পছন্দসই 1 এর সম্পাদকের বাইরে আপনার সম্পাদনা কমান্ডগুলি অবশ্যই মানক করে তোলেন ।

সুতরাং, আপনি যদি শেলের মধ্যে একটি কমান্ড সম্পাদনা করতে চান তবে আপনি একই কমান্ড 2 ব্যবহার করতে পারেন যা আপনি যদি আপনার পাঠ্য সম্পাদকে থাকতেন। এর অর্থ কেবল একটি কমান্ড সিনট্যাক্স মনে রাখা এবং (যদি এটি যথেষ্ট সুবিধা না হয়) সম্ভবত আপনার পরিবেশ উভয় পরিবেশে দ্রুত এবং কম ত্রুটিযুক্ত প্রবণতা আপনার সম্পাদনা করবে ...

আপনি নিজের শেল ইতিহাস থেকে কোনও কমান্ড টেনে Escapeকমান্ড মোডে প্রবেশ করার জন্য এবং তারপরে হিট করে ভিআই-মোডে এই সম্পর্কটিকে আরও উত্তোলন করতে পারবেন v, যা আপনার $ সম্পাদনাটিকে আরও জটিল সম্পাদনার জন্য ভারসাম্যপূর্ণ ভিএম এর পূর্ণ ক্ষমতা সহ খোলা হবে। একবার আপনি নিজের সন্তুষ্টির জন্য আদেশটি সম্পাদনা শেষ করে দিয়েছিলেন :wqএবং কমান্ডটি আপনার শেলের মধ্যে আবার কার্যকর হবে।


১. অবশ্যই ধরে নেওয়া যাক আপনি আপনার সম্পাদক হিসাবে ইমাস বা ভাই / এম ব্যবহার করেন।
২ বা আরও সঠিকভাবে এর একটি উপসেট ...


1
আমি পবিত্র কচুকাটি পেয়েছি:) ....
সত্যম

3
Esc-v কৌশলটি এমন একটি অন্যতম সেরা বৈশিষ্ট্য set -o viযা বেশিরভাগ লোকেরা জানেন না। এটি বিশেষত সত্য যদি আপনি একই যুক্তিটি একাধিকবার বিভিন্ন যুক্তি (একাধিক কমান্ড লাইন কমান্ড হিসাবে) প্রদান করতে চান।
মাইকেল গোল্ডস্টেইন

2
Esc-v কৌশলটি আসলে কোনও সুবিধার জন্য নির্দিষ্ট নয় set -o vi। এর ডিফল্ট সেটিংসের অধীনে set -o EMACS, সিএক্স, সি একটি ইমাস উইন্ডো (বা $EDITORসেট করা থাকলে) আনবে যেখানে আপনি কমান্ডটি চালনার আগে সম্পাদনা করতে পারবেন।
জন গওয়ার্স

8

আপনি অ্যান্ড্রয়েডের জন্য কানেক্টবোটের মতো কোনও মোবাইল এসএসএইচ ক্লায়েন্ট ব্যবহার করছেন তবে ভিআই মোড একটি বিশাল ব্যবহারযোগ্যতার উন্নতি।

এটি সংশোধক কীগুলির উপর নির্ভরতা হ্রাস করার কারণে।

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

শেল vi মোড একটি অনুরূপ সুবিধা নিয়ে আসে।


আমি আশা করছি আমার ফোনের কীবোর্ডে vi মোড আছে। আপনি উল্লেখ করেছেন যে এটি ইতিমধ্যে বিদ্যমান ছিল। আমি কীভাবে আমার ফোনে ভাই মোড পাব?
meh

6

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

একটি উদাহরণ এটি আরও পরিষ্কার করে তুলতে সহায়তা করবে:

তুমি টাইপ কর cp tmp/some_other_long_directory/file1.xt /tmp2/some_other_xtra_long_dir/

তবে আপনি একটি ত্রুটি পান - আপনার টাইপ করা উচিত ছিল file1.txtনাfile1.xt

ছাড়া এই অপশনটি সেট, আপনি আপ-তীর টিপুন এবং তারপর বাম তীর টিপুন এবং এটি জন্য ... 35 বার পুনরাবৃত্তি না হওয়া পর্যন্ত আপনাকে পেতে দেওয়া .xtএবং তারপর আপনি অতিরিক্ত টাইপ t। মোট কীস্ট্রোক: 37

সঙ্গে এই অপশনটি আপনি (উদাহরণস্বরূপ) প্রেস একবার তীর তা সেট, তারপর কমান্ড মোডে, 0 জন্য Escape লাইনের শুরু পর্যন্ত যেতে এবং তারপর /xt[return]পেতে xtএবং তারপর আপনি টাইপ করতে পারেন iসন্নিবেশ মোডের জন্য এবং হারিয়ে যাওয়া টি টাইপ করুন। এটি কিছু দিক থেকে অত্যন্ত জটিল মনে হতে পারে তবে আপনি যদি ভিআইএম ব্যবহারকারী হন তবে এই কমান্ডটি ইতিমধ্যে খুব সুপরিচিত। মোট কীস্ট্রোক: 9


1
আপনি ইমাস মোডেও কয়েকটি Alt+Bএস বা একটি ব্যবহার করতে পারেন Ctrl+Alt+] ., সুতরাং এটি আমার কাছে শক্ত উদাহরণ হিসাবে মনে হয় না।
মাইকেল 0

2
হিসাবে আমরা golfing করছি দেখে: এ গিয়ে Emacs মোড: Up, Ctrl+Alt+], ., Right, t, Enter= 8. Vi মোড: Up, F, ., a, t, Enter= 7. :)
Mikel

@ মাইকেল আপনি ভুলে গেছেন যে ভিআই মোডটি সন্নিবেশ মোডে শুরু হয় তাই আপনার Escসেখানেও রয়েছে, এটি একটি মৃত উত্তাপ।
ড্রাগন 788

5

আমি সরাসরি সুবিধা আছে কিনা তা নিশ্চিত নই। আমি vi20 বছরেরও বেশি সময় ধরে ব্যবহারকারী হয়েছি । আমি screenআরও দীর্ঘতর ব্যবহারকারী এবং অন্যান্য প্রোগ্রামগুলির viকী ব্যবহার করি a আমার পক্ষে বাশগুলিতে "vi" মোড সেট করা পছন্দ করা স্বাভাবিক। তবে আমি আমার চাকরিতে শত শত সার্ভারগুলিতেও কাজ করি, বেশিরভাগটি ডিফল্ট "emacs" মোডে সেট থাকে। সুতরাং আমি উভয় মোড ব্যবহার করা প্রয়োজন। তবে এটি সত্যিই কেবল পছন্দের বিষয়।


আমার জন্য অনুরূপ পরিস্থিতি - আমি ভিআইএম প্রচুর ব্যবহার করি তবে লাইন স্যুইচিং যুক্ত করার চেয়ে ডিফল্ট ইমাস-এর মতো রিডলাইন কীগুলিতে (যা vi সাবসেটের মতোই সুবিধাজনক হতে পারে) দক্ষ হয়ে ওঠার পক্ষে কম কাজ খুঁজে পেয়েছি always প্রতিটি নতুন সিস্টেমে ভিআই মোডে আমি আসি।
jw013

1
আমি কয়েকশ সার্ভারে কাজ করি না, তবে ইনগ করার সময় আমি আমার ব্যাশ সেটআপটি বিভিন্ন কম্পিউটারের মধ্যে একই রাখার জন্য sshrc ব্যবহার করিssh । অবশ্যই, আমি যখন স্থানীয়ভাবে এমন কোনও মেশিন ব্যবহার করি যাতে আমার .bashrcস্টাফ না থাকে তখন তা কার্যকর হয় না ।
কাইল স্ট্র্যান্ড

4

প্রধান সুবিধাটি হ'ল আপনার কমান্ড লাইনের মডেল সম্পাদনা। আপনি যদি ভিমের সাথে পরিচিত হন এবং এর দর্শন পছন্দ করেন তবে অবশ্যই উপকারিতা সুস্পষ্ট হওয়া উচিত। আপনি যদি এটির সাথে অভিজ্ঞ হন, তবে আপনার আঙুলের পেশী মেমরি আপনাকে বাজ গতিতে আপনার বাশ কমান্ডগুলি সম্পাদনা করবে।

নোট : আপনি যদি মডেল সম্পাদনা পছন্দ করেন না তবে আপনার (ডিফল্ট) ইম্যাক্স-মোডের সুবিধা নেওয়া শিখতে হবে। এখানে কিছু ছিমছাম কীবোর্ড শর্টকাট আছে যে কোনো প্রক্রিয়া কাজ করবে readlineমতো bash


1

যদি আপনি অভ্যস্ত হয়ে যান vi, তাই আপনি এটি শেল সম্পাদক হিসাবে vi মোডে সেট করেন। এটাই সুস্পষ্ট কারণ। অন্যান্য অন্যতম bashকিছু অপারেটিং সিস্টেমের (বেশিরভাগই Aix, সোলারিস মত ইউনিক্স) ডিফল্টরূপে পাওয়া যায় না, তাই শেল ইতিহাস বৈশিষ্ট্যটি উপলব্ধ নয়, তাই উপায় আপনাকে শেল সম্পাদক সেটিং দ্বারা অতীত কমান্ড পেতে viএবং Esc, Ctrl+ + Kবা Ctrl+L


1

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

ডিফল্ট শর্টকাট অনুসারে, আপনি যখন লাইনের শেষে যাওয়ার প্রয়োজন, আপনার প্রয়োজন Ctrl+ + e, সঙ্গে যেহেতু set -o vi, আপনি শুধু আঘাত $মত তেজ হবে।


1

সম্ভবত পার্টিতে দেরি হয়ে গেছে, তবে আমার জন্য vi মোড ব্যবহার করা ইন্টারেক্টিভ স্ক্রিপগুলি তৈরি করার সময় আরও বেশি .. উদাহরণস্বরূপ

for i in `ls | grep -v gz`
do
    echo $i
    gzip $i
done

যা বেশ জটিল হতে পারে তার একটি খুব সাধারণ উদাহরণ .. ব্যবহার ESCkvকরে আপনাকে একটি ভিআই সেশনে রাখে যেখানে আপনি স্ক্রিপ্টটি সংশোধন করতে পারবেন, এবং তারপরে :wqএটি চলে।


1
viমোডে ব্যাশ ব্যবহারের এটি একটি ভাল উদাহরণ হতে পারে তবে এটি ব্যাশ কোডের একটি খারাপ উদাহরণ। (1) lsইনপুট হিসাবে অন্য কোনও প্রকারের প্রক্রিয়াকরণে আউটপুট ব্যবহার করা একটি খারাপ ধারণা। (২) $(…)কমান্ড প্রতিস্থাপনের জন্য `…`সিনট্যাক্সকে সিনট্যাক্সের চেয়ে ব্যাপকভাবে পাঠযোগ্য বলে মনে করা হয় । (3) আপনার কাছে সর্বদা শেল ভেরিয়েবলগুলি উদ্ধৃত করা উচিত যদি না আপনি যদি না চান তবে আপনার পক্ষে সঠিক কারণ নেই এবং আপনি নিশ্চিত যে আপনি কী করছেন তা আপনি নিশ্চিত
জি ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.