ভিমে কীভাবে অ্যারো কী অক্ষম করবেন?


24

আমি হোম সারিটিতে থাকার জন্য তীর কীগুলি ব্যবহার করার চেয়ে hjkl ব্যবহার করে নিজেকে আরও বেশি শিখতে চাই। এবং হ্যাঁ, আমি খুব সচেতন যে একজনকে প্রধান নেভিগেশন কী হিসাবে ব্যবহার করা উচিত নয়। তবুও আমার অভ্যাসগুলি বেশ শক্তিশালী এবং আমি বুঝতে পারি না যে হাতের তীর কীগুলিতে চলাচল করেছে এবং আমি এটি প্রকাশ করতে চাই না।

এই অভ্যাসটি ভেঙে দেওয়ার জন্য: আমি কীভাবে তীর কীগুলি অক্ষম করতে পারি যাতে আমি hjkl বা অন্য কোনও নেভিগেশন পদ্ধতি ব্যবহার করতে বাধ্য হই?

বোনাস হিসাবে, এটি কোনও Dont't use this!বাধ্যতামূলক নয় এমন কোনও বার্তা দেখানো থাকলে এটি সহায়ক হবে । যদি তারা কাজ না করে তবে আমার অভ্যাস সম্পর্কে পুনর্বিবেচনা করা আমার পক্ষে যথেষ্ট বিভ্রান্তিকর হবে।


4
এটি করার কোনও অর্থ নেই; এইচজেকেএল তীরের মতো চুষছে।
রোমেনেল

6
আমি মনে করি @রোমেনাল নির্দেশ করতে পারে যে ভিএম এর শক্তিশালী গতিগুলি (যেমন wপরবর্তী শব্দটির }জন্য, পরবর্তী অনুচ্ছেদের nজন্য, পরবর্তী অনুসন্ধান ফলাফলের ম্যাচের fzজন্য z, বর্তমান লাইনে পরবর্তী ঘটনা ইত্যাদির জন্য) ইত্যাদি ব্যবহারের দিকে মনোনিবেশ করা আরও গুরুত্বপূর্ণ ) একক অক্ষর দ্বারা দানাদারভাবে। আমি স্পষ্টভাবে এই সঙ্গে একমত। তবে, এইচজেকেএল অবশ্যই তীর কীগুলির চেয়ে আরও ভাল যে আপনাকে বাড়ির সারি থেকে আপনার হাত সরাতে হবে না। আমি প্রায়শই এমন কিছু টাইপ করব jAযা এর চেয়ে অনেক দ্রুত <Down>Aএবং কোনও গতিতে আসলেই প্রহারযোগ্য নয়।
wchargin

4
@ রোমেনেল: আমি মনে করি আপনার সাথে এই নিয়ে আগে আলোচনা হয়েছিল। নন-ভিমারগুলি তীরের জন্য ব্যবহৃত হয়, এবং এইচজেকেএল-তে ব্যবহৃত হয় না। আদর্শভাবে আপনি কোনটিই ব্যবহার করতে চান না; তবে ব্লক করা তীরগুলি (এবং এইচজেকেএল নয়) লোকেরা বিরতি দেবে এবং তারা কী করছে তা প্রতিবিম্বিত করবে (এখনও এইচজেকেএলকে বিকল্প হিসাবে খোলা রেখে দেওয়া যদি এটি সর্বোত্তম বিকল্প হয়, বা ক্ষেত্রে ব্যবহারকারী কীভাবে এটি করবেন তাতে স্টাম্পড থাকে) আরও শক্তিশালী গতি।)। অর্থাৎ এটি এইচজেকেএল শেখার বিষয়ে নয়, এটি অন্যান্য সম্পাদকদের কাছে শিখানো স্বয়ংক্রিয়তাটি ব্লক করার বিষয়ে।
আমাদান

1
@ কারপেটসমোকার এইচজেকিএল কীগুলির অবশ্যই একটি উল্টো দিক যা বাড়ির সারিটি ছাড়তে হবে না। তীর কীগুলির জন্য হাতটিকে কীবোর্ড জুড়ে চলে যেতে হবে।
k0pernikus

1
@ কার্পেটস্মোকার এটি আমার কাছে অবশ্যই ভাল লাগছে। ;)
k0pernikus

উত্তর:


24

আপনি হার্ডমোড প্লাগইন ইনস্টল করতে পারেন এবং আপনার .vimrcপুট ইন করতে পারেন

let g:HardMode_level = 'wannabe'
let g:HardMode_hardmodeMsg = 'Don''t use this!'
autocmd VimEnter,BufNewFile,BufReadPost * silent! call HardMode()

আপনি একটি প্লাগইন ব্যবহার করতে না চান, ব্যবহার (, যা একটি ভাল পছন্দ হতে পারে হিসাবে আপনি সবকিছু নিজেকে কাস্টমাইজ করতে পেতে!) nnoremap, vnoremapএবং inoremapউপর <Left>, <Right>, <Up>, <Down>, <PageUp>এবং <PageDown>, উদাহরণস্বরূপ:

nnoremap <Left> :echo "No left for you!"<CR>
vnoremap <Left> :<C-u>echo "No left for you!"<CR>
inoremap <Left> <C-o>:echo "No left for you!"<CR>

1
এছাড়াও আছে <nop>যদি আপনি কীম্যাপ পুরাপুরি অক্ষম করতে চান: nnoremap h <nop>
অক্ষয়

25

আপনি বা অন্য কেউ এই বিষয়টি পড়ার ক্ষেত্রে, পাঠ্য সতর্কতা ছাড়াই মূল আন্দোলনগুলি অক্ষম করতে চান

noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>

কমান্ডগুলি কেবল সাধারণ মোডে মূল চলন অক্ষম করে। তারা এখনও সন্নিবেশ মোডে কাজ করে। আপনি যদি ইনোরম্যাপ ব্যবহার করেন তবে তীর চলনটি সন্নিবেশ মোড থেকেও সরানো হবে।

এই ব্যাপক জনপ্রিয় নোকরেচার, নরেনম্যাপ, ইনোরমেপ ইত্যাদির মধ্যে পার্থক্য নিয়ে আলোচনা করে: ভিমে রিম্যাপিং

রিম্যাপিং সহ সাধারণ ধারণাটি এরকম হয়:

Choice-of-mode-to-remap <remap this command> <to this action/command instead>

সুতরাং প্রদত্ত অন্যান্য উদাহরণে আপনি আপনার বাম কমান্ডটিকে একটি পাঠ্য প্রম্পটে পুনর্নির্মাণ করেছেন যা ঘটনাক্রমে প্রকৃত কার্সারটি সরানোর ক্রিয়াটি সরিয়ে দেয়। আমি উপরে যে উদাহরণটি দিয়েছি তা কেবল ক্রিয়াকলাপের কিছুই না করে বরং কিছু করা যায়। ভিম কার্যকারিতা প্রতিস্থাপনের পরিবর্তে এটি অপসারণের বিষয়টি বিবেচনা করুন।


2

.vimrcকমান্ড, সন্নিবেশ, সাধারণ এবং ভিজ্যুয়াল মোডে তীর কীগুলি অক্ষম করতে আপনি এটিতে এটি যুক্ত করতে পারেন :

" Remove newbie crutches in Command Mode
cnoremap <Down> <Nop>
cnoremap <Left> <Nop>
cnoremap <Right> <Nop>
cnoremap <Up> <Nop>

" Remove newbie crutches in Insert Mode
inoremap <Down> <Nop>
inoremap <Left> <Nop>
inoremap <Right> <Nop>
inoremap <Up> <Nop>

" Remove newbie crutches in Normal Mode
nnoremap <Down> <Nop>
nnoremap <Left> <Nop>
nnoremap <Right> <Nop>
nnoremap <Up> <Nop>

" Remove newbie crutches in Visual Mode
vnoremap <Down> <Nop>
vnoremap <Left> <Nop>
vnoremap <Right> <Nop>
vnoremap <Up> <Nop>

দ্রষ্টব্য::help map-overview ম্যাপিংয়ের বিভিন্ন ধরণের বিষয়ে আরও বিশদ জানতে চেকআউট


1
আপনি noremap ... ...(সাধারণ, ভিজ্যুয়াল, নির্বাচন করুন এবং অপারেটর-মুলতুবি মোডের জন্য) এবং noremap! ... ...(সন্নিবেশ এবং কমান্ড-লাইন মোডের জন্য ) প্রয়োজনীয় কমান্ডের সংখ্যা হ্রাস করতে পারেন ।
জর্জেন ক্রিমার

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