আমি অনেকগুলি বিকাশকারীকে এই কমান্ডটি vi এর বিকল্প সেট করতে ব্যবহার করে দেখেছি। আমি এর আসল ব্যবহার কখনই বুঝতে পারি না?
বাশ কমান্ডগুলি ব্যবহার করার সময়, ভিআই তে স্যুইচিংয়ে কী সহায়তা দেয়?
আমি অনেকগুলি বিকাশকারীকে এই কমান্ডটি vi এর বিকল্প সেট করতে ব্যবহার করে দেখেছি। আমি এর আসল ব্যবহার কখনই বুঝতে পারি না?
বাশ কমান্ডগুলি ব্যবহার করার সময়, ভিআই তে স্যুইচিংয়ে কী সহায়তা দেয়?
উত্তর:
আপনার রিডলাইন সম্পাদনাটি ইমাস (ডিফল্ট) বা vi ( set -o vi
) এ সেট করে আপনি শেল এবং পছন্দসই 1 এর সম্পাদকের বাইরে আপনার সম্পাদনা কমান্ডগুলি অবশ্যই মানক করে তোলেন ।
সুতরাং, আপনি যদি শেলের মধ্যে একটি কমান্ড সম্পাদনা করতে চান তবে আপনি একই কমান্ড 2 ব্যবহার করতে পারেন যা আপনি যদি আপনার পাঠ্য সম্পাদকে থাকতেন। এর অর্থ কেবল একটি কমান্ড সিনট্যাক্স মনে রাখা এবং (যদি এটি যথেষ্ট সুবিধা না হয়) সম্ভবত আপনার পরিবেশ উভয় পরিবেশে দ্রুত এবং কম ত্রুটিযুক্ত প্রবণতা আপনার সম্পাদনা করবে ...
আপনি নিজের শেল ইতিহাস থেকে কোনও কমান্ড টেনে Escapeকমান্ড মোডে প্রবেশ করার জন্য এবং তারপরে হিট করে ভিআই-মোডে এই সম্পর্কটিকে আরও উত্তোলন করতে পারবেন v, যা আপনার $ সম্পাদনাটিকে আরও জটিল সম্পাদনার জন্য ভারসাম্যপূর্ণ ভিএম এর পূর্ণ ক্ষমতা সহ খোলা হবে। একবার আপনি নিজের সন্তুষ্টির জন্য আদেশটি সম্পাদনা শেষ করে দিয়েছিলেন :wqএবং কমান্ডটি আপনার শেলের মধ্যে আবার কার্যকর হবে।
১. অবশ্যই ধরে নেওয়া যাক আপনি আপনার সম্পাদক হিসাবে ইমাস বা ভাই / এম ব্যবহার করেন।
২ বা আরও সঠিকভাবে এর একটি উপসেট ...
set -o vi
যা বেশিরভাগ লোকেরা জানেন না। এটি বিশেষত সত্য যদি আপনি একই যুক্তিটি একাধিকবার বিভিন্ন যুক্তি (একাধিক কমান্ড লাইন কমান্ড হিসাবে) প্রদান করতে চান।
set -o vi
। এর ডিফল্ট সেটিংসের অধীনে set -o EMACS
, সিএক্স, সি একটি ইমাস উইন্ডো (বা $EDITOR
সেট করা থাকলে) আনবে যেখানে আপনি কমান্ডটি চালনার আগে সম্পাদনা করতে পারবেন।
আপনি অ্যান্ড্রয়েডের জন্য কানেক্টবোটের মতো কোনও মোবাইল এসএসএইচ ক্লায়েন্ট ব্যবহার করছেন তবে ভিআই মোড একটি বিশাল ব্যবহারযোগ্যতার উন্নতি।
এটি সংশোধক কীগুলির উপর নির্ভরতা হ্রাস করার কারণে।
স্মার্টফোন বা ট্যাবলেটে ভার্চুয়াল কীবোর্ডের সাহায্যে উইম ব্যবহার করা অনেক সহজ ... অ্যান্ড্রয়েড ইউআইতে অন্তর্নিহিত নেটিভ সম্পাদনা পদ্ধতি সহ অন্য যে কোনও কিছুর সাথে। হাস্যকরভাবে, এসএমএইচ অধিবেশনে ভিমের সাথে সি উত্সগুলি সম্পাদনা করা সহজ, বলা, সেই উদ্দেশ্যে প্ল্যাটফর্মের নিজস্ব সম্পাদনা উইজেটের সাথে একটি তাত্ক্ষণিক বার্তা।
শেল vi মোড একটি অনুরূপ সুবিধা নিয়ে আসে।
এটি আপনাকে 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
Alt+B
এস বা একটি ব্যবহার করতে পারেন Ctrl+Alt+]
.
, সুতরাং এটি আমার কাছে শক্ত উদাহরণ হিসাবে মনে হয় না।
Up
, Ctrl+Alt+]
, .
, Right
, t
, Enter
= 8. Vi মোড: Up
, F
, .
, a
, t
, Enter
= 7. :)
Esc
সেখানেও রয়েছে, এটি একটি মৃত উত্তাপ।
আমি সরাসরি সুবিধা আছে কিনা তা নিশ্চিত নই। আমি vi
20 বছরেরও বেশি সময় ধরে ব্যবহারকারী হয়েছি । আমি screen
আরও দীর্ঘতর ব্যবহারকারী এবং অন্যান্য প্রোগ্রামগুলির vi
কী ব্যবহার করি a আমার পক্ষে বাশগুলিতে "vi" মোড সেট করা পছন্দ করা স্বাভাবিক। তবে আমি আমার চাকরিতে শত শত সার্ভারগুলিতেও কাজ করি, বেশিরভাগটি ডিফল্ট "emacs" মোডে সেট থাকে। সুতরাং আমি উভয় মোড ব্যবহার করা প্রয়োজন। তবে এটি সত্যিই কেবল পছন্দের বিষয়।
ssh
। অবশ্যই, আমি যখন স্থানীয়ভাবে এমন কোনও মেশিন ব্যবহার করি যাতে আমার .bashrc
স্টাফ না থাকে তখন তা কার্যকর হয় না ।
প্রধান সুবিধাটি হ'ল আপনার কমান্ড লাইনের মডেল সম্পাদনা। আপনি যদি ভিমের সাথে পরিচিত হন এবং এর দর্শন পছন্দ করেন তবে অবশ্যই উপকারিতা সুস্পষ্ট হওয়া উচিত। আপনি যদি এটির সাথে অভিজ্ঞ হন, তবে আপনার আঙুলের পেশী মেমরি আপনাকে বাজ গতিতে আপনার বাশ কমান্ডগুলি সম্পাদনা করবে।
নোট : আপনি যদি মডেল সম্পাদনা পছন্দ করেন না তবে আপনার (ডিফল্ট) ইম্যাক্স-মোডের সুবিধা নেওয়া শিখতে হবে। এখানে কিছু ছিমছাম কীবোর্ড শর্টকাট আছে যে কোনো প্রক্রিয়া কাজ করবে readline
মতো bash
।
যদি আপনি অভ্যস্ত হয়ে যান vi
, তাই আপনি এটি শেল সম্পাদক হিসাবে vi মোডে সেট করেন। এটাই সুস্পষ্ট কারণ। অন্যান্য অন্যতম bash
কিছু অপারেটিং সিস্টেমের (বেশিরভাগই Aix, সোলারিস মত ইউনিক্স) ডিফল্টরূপে পাওয়া যায় না, তাই শেল ইতিহাস বৈশিষ্ট্যটি উপলব্ধ নয়, তাই উপায় আপনাকে শেল সম্পাদক সেটিং দ্বারা অতীত কমান্ড পেতে vi
এবং Esc, Ctrl+ + Kবা Ctrl+L
এটি আপনাকে ভিআইএম এর শর্টকাটগুলি ব্যবহার করে কমান্ড লাইনটি সহজেই নেভিগেট এবং সম্পাদনা করতে দেয়, উদাহরণস্বরূপ দ্রুত একটি শব্দের ডানে চলে যান, একটি শব্দ মুছুন।
ডিফল্ট শর্টকাট অনুসারে, আপনি যখন লাইনের শেষে যাওয়ার প্রয়োজন, আপনার প্রয়োজন Ctrl+ + e, সঙ্গে যেহেতু set -o vi
, আপনি শুধু আঘাত $
মত তেজ হবে।
সম্ভবত পার্টিতে দেরি হয়ে গেছে, তবে আমার জন্য vi মোড ব্যবহার করা ইন্টারেক্টিভ স্ক্রিপগুলি তৈরি করার সময় আরও বেশি .. উদাহরণস্বরূপ
for i in `ls | grep -v gz`
do
echo $i
gzip $i
done
যা বেশ জটিল হতে পারে তার একটি খুব সাধারণ উদাহরণ .. ব্যবহার ESCkvকরে আপনাকে একটি ভিআই সেশনে রাখে যেখানে আপনি স্ক্রিপ্টটি সংশোধন করতে পারবেন, এবং তারপরে :wq
এটি চলে।
vi
মোডে ব্যাশ ব্যবহারের এটি একটি ভাল উদাহরণ হতে পারে তবে এটি ব্যাশ কোডের একটি খারাপ উদাহরণ। (1) ls
ইনপুট হিসাবে অন্য কোনও প্রকারের প্রক্রিয়াকরণে আউটপুট ব্যবহার করা একটি খারাপ ধারণা। (২) $(…)
কমান্ড প্রতিস্থাপনের জন্য `…`
সিনট্যাক্সকে সিনট্যাক্সের চেয়ে ব্যাপকভাবে পাঠযোগ্য বলে মনে করা হয় । (3) আপনার কাছে সর্বদা শেল ভেরিয়েবলগুলি উদ্ধৃত করা উচিত যদি না আপনি যদি না চান তবে আপনার পক্ষে সঠিক কারণ নেই এবং আপনি নিশ্চিত যে আপনি কী করছেন তা আপনি নিশ্চিত ।