উত্তর:
remapম্যাপিংগুলি পুনরাবৃত্তভাবে কাজ করে এমন একটি বিকল্প । ডিফল্টরূপে এটি চালু আছে এবং আমি আপনাকে সেভাবেই ছেড়ে দেওয়ার পরামর্শ দিচ্ছি। বাকিগুলি হ'ল ম্যাপিং কমান্ডগুলি নীচে বর্ণিত :
:mapএবং :noremapহয় রিকার্সিভ এবং অ রিকার্সিভ বিভিন্ন ম্যাপিং কম্যান্ডের সংস্করণ। এর অর্থ হ'ল আপনি যদি তা করেন:
:map j gg
:map Q j
:noremap W j
jম্যাপ করা হবে gg। Qহবে আরো ম্যাপ করা যেতে gg, কারণ jরিকার্সিভ ম্যাপিং জন্য সম্প্রসারিত হবে। (এবং না ) তে Wম্যাপ করা হবে কারণ অ-পুনরাবৃত্ত ম্যাপিংয়ের জন্য প্রসারিত হবে না।jggj
এখন মনে রাখবেন যে ভিম একটি মডেল সম্পাদক । এটির একটি সাধারণ মোড রয়েছে, ভিজ্যুয়াল মোড এবং অন্যান্য মোড রয়েছে।
ম্যাপিংয়ের এই সেটগুলির প্রত্যেকটির জন্য, একটি ম্যাপিং রয়েছে যা সাধারণ, ভিজ্যুয়াল, নির্বাচন করুন এবং অপারেটর মোডগুলিতে ( :mapএবং :noremap) কাজ করে, একটি যা সাধারণ মোডে ( :nmapএবং :nnoremap) কাজ করে, একটি ভিজ্যুয়াল মোডে ( :vmapএবং :vnoremap) এবং এ জাতীয়।
এ সম্পর্কে আরও দিকনির্দেশনার জন্য, দেখুন:
:help :map
:help :noremap
:help recursive_mapping
:help :map-modes
noremapকিছু বিপরীত বলে ধরেছিলাম map। আমি এমন কিছু বোঝাতে চাই যা একটি ম্যাপিং সরিয়ে দেয়। উত্তরের জন্য ধন্যবাদ. এটি আমাকে পরিষ্কার করে দিয়েছে
:map, ইত্যাদি সমস্ত মোডে ঠিক কাজ করে না , ঠিক সমস্ত সাধারণ ক্ষেত্রে (বিশেষত, সাধারণ মোড, ভিজ্যুয়াল মোড, নির্বাচন মোড এবং অপারেটর-মুলতুবি মোড)। আপনি সন্নিবেশ, কম্যান্ড-লাইন, বা ল্যাঙ-ARG মোডে কাজ করার জন্য একটি ম্যাপিং চান, আপনি ব্যবহার করতে হবে :map!: ইত্যাদি (সূত্র vimdoc.sourceforge.net/htmldoc/map.html#map-overview )
আমি মনে করি ভিম ডকুমেন্টেশনের এই কমান্ডগুলির নামকরণের পিছনে অর্থটি ব্যাখ্যা করা উচিত ছিল। কেবল তারা আপনাকে কী বলছে তা আপনাকে নামগুলি মনে রাখতে সহায়তা করে না।
mapসমস্ত পুনরাবৃত্তাকার ম্যাপিং কমান্ডগুলির "মূল"। মূল ফর্মটি "সাধারণ", "ভিজ্যুয়াল + নির্বাচন", এবং "অপারেটর-মুলতুবি" মোডগুলিতে প্রয়োগ হয়। ( ভাষাবিজ্ঞানের মতোই আমি "মূল" শব্দটি ব্যবহার করছি ।)
noremapসমস্ত নন-রিকার্সি ম্যাপিং কমান্ডের "মূল"। মূল ফর্মটি একই মোডে প্রযোজ্য map। ( nore"অ-পুনরাবৃত্ত" বোঝার উপসর্গটির কথা চিন্তা করুন ))
(নোট করুন !মত মোড এছাড়াও আছেmap! সন্নিবেশ ও কমান্ড-লাইন প্রয়োগ করতে প্রযোজ্য )
এই প্রসঙ্গে "পুনরাবৃত্ত" বলতে কী বোঝার জন্য নীচে দেখুন।
মোডিংয়ের মতো মোড লেটার প্রস্তুত করা nম্যাপিংয়ের মোডগুলিতে কাজ করে। এটি প্রযোজ্য মোডগুলির তালিকার একটি উপসেট বেছে নিতে পারে (উদাহরণস্বরূপ কেবল "ভিজ্যুয়াল"), বা অন্যান্য মোডগুলি বেছে mapনিতে পারে যা প্রয়োগ হয় না (যেমন "সন্নিবেশ")।
ব্যবহার help map-modesআপনাকে কয়েকটি টেবিল প্রদর্শন করবে যা ম্যাপিংয়ের জন্য কোন মোডগুলি প্রয়োগ করে তা নিয়ন্ত্রণ করতে হবে explain
মোড অক্ষর:
n: শুধুমাত্র সাধারণv: চাক্ষুষ এবং নির্বাচন করুনo: অপারেটর-বিচারাধীনx: কেবলমাত্র ভিজ্যুয়ালs: শুধুমাত্র নির্বাচন করুনi: .োকানc: কমান্ড-লাইনl: সন্নিবেশ, কমান্ড-লাইন, রিজেক্সপ-সন্ধান (এবং অন্যান্য।" পুনরাবৃত্তি " এর অর্থ ম্যাপিং কোনও ফলাফলে প্রসারিত হয়, তারপরে ফলাফলটি অন্য ফলাফলে প্রসারিত করা হয়, ইত্যাদি।
এর মধ্যে একটি সত্য হলে সম্প্রসারণ বন্ধ হয়ে যায়:
সেই সময়ে, ভিমের চূড়ান্ত ফলাফলের ডিফল্ট "অর্থ" প্রয়োগ করা হয় / সম্পাদিত হয়।
" নন-রিকার্সিভ " অর্থ ম্যাপিংটি কেবল একবার প্রসারিত হয় এবং ফলাফলটি প্রয়োগ / সম্পাদিত হয়।
উদাহরণ:
nmap K H
nnoremap H G
nnoremap G gg
উপরের কারণগুলিতে Kপ্রসারিত হবে H, তারপরে Hপ্রসারিত Gএবং বন্ধ হবে। এটি বন্ধ হয়ে যায় কারণ এটি nnoremapপ্রসারিত হয় এবং সঙ্গে সঙ্গে বন্ধ হয়ে যায়। এর অর্থ Gকার্যকর করা হবে (অর্থাত "শেষ লাইনে ঝাঁপ দাও")। একটি এক্সপেনশন চেইনে সর্বাধিক একটি পুনরাবৃত্ত ম্যাপিং প্রয়োগ করা হবে (এটি হবে শেষ বিস্তৃতি হবে)।
এর ম্যাপিং Gকরার ggপ্রযোজ্য বাটনটি চাপলে G, কিন্তু না বাটনটি চাপলে K। এই ম্যাপিংটি পুনরাবৃত্তভাবে ম্যাপ করা হয়েছিল Kকিনা তা নির্বিশেষে টিপতে কোনও প্রভাব ফেলবে Gনা, যেহেতু এটি লাইন 2 লাইনটি প্রসারণের কারণকে Kথামিয়েছে, সুতরাং লাইন 3 ব্যবহার করা হবে না।
mapকেবলমাত্র সাধারণ, চাক্ষুষ, নির্বাচন এবং অপারেটর-মুলতুবি মোডগুলিতে প্রযোজ্য, সমস্ত মোডে নয়।
একটি পার্থক্য হ'ল:
:map না nvo== সাধারণ + (ভিজ্যুয়াল + নির্বাচন) + অপারেটর মুলতুবি:map!না ic == + কম্যান্ড লাইন মোডে সন্নিবেশযেমন help map-modesটেবিলগুলিতে বলা হয়েছে ।
সুতরাং: mapসমস্ত মোডে মানচিত্র দেয় না ।
সমস্ত মোডে মানচিত্র করতে আপনার :mapএবং উভয়ই দরকার :map!।
command modeযেমন এর আরেকটি anotherতিহাসিক নাম normal mode। অধ্যায় 5 vimdoc.sourceforge.net/htmldoc/intro.html#vim-modes-intro )। সংক্ষিপ্ত বিবরণ 'c' 'কমান্ড-লাইন' এর জন্য। অন্য কথায়, ডিফল্টরূপে ইন: map! lhs rhs যাও recursively জন্য RHS থেকে LHS মানচিত্র সন্নিবেশ + কম্যান্ড লাইন মোড। Unless /vimrc এ remapডিফল্ট বিকল্পটি স্পষ্টভাবে অক্ষম না করা হয় set noremap[!]। সেক্ষেত্রে ম্যাপিং পুনরাবৃত্ত হবে না (পরামর্শ দেওয়া হবে না)।
vnoremapএবংvmapভিজ্যুয়াল এবং নির্বাচন মোডে কাজ করুন। শুধুমাত্র ভিজ্যুয়াল মোডে ম্যাপিং করতে,xmapএবং ব্যবহার করুনxnoremap।