তীর কীগুলি ছাড়াই সন্নিবেশ মোডে একটি অক্ষর ভিম মুভ কার্সার


9

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

একটি ব্যতিক্রম রয়েছে যেখানে এটি আসলে আরও বিঘ্নিত: আমি clang completeস্নিপেটগুলি ব্যবহার করি এবং super tabএটি দুর্দান্ত। আমি যতবার প্যারামিটারগুলি পূরণ করার পরে একটি ফাংশন অটো সম্পন্ন করি তা বাদ দিয়ে আমি কার্সারটি রেখে দিয়েছি )যাতে চালিয়ে যাওয়ার জন্য আমাকে কার্সরটির একটি অক্ষর ডানদিকে নিয়ে যেতে হবে। আপনি কল্পনা করতে পারেন যে এটি প্রায়শই ঘটে থাকে

আমার কাছে কেবলমাত্র বিকল্পগুলি (যতদূর আমি জানি) হ'ল: Esclaবা , এবং আমি সেগুলির একটিতেও সন্তুষ্ট নই। প্রথমটি আমাকে কেবল একটি সাধারণ 1 টি অক্ষরের কার্সার সরানোর জন্য 3 টি চাপায়, দ্বিতীয়টি আমাকে আমার হাতটি তীর কীগুলিতে সরিয়ে নিয়েছে। তৃতীয় বিকল্পটি ম্যাপ করা CTRL-Lবা স্মেথ করা হবে

তাহলে এটি করার সর্বোত্তম উপায় কী?


//snippets (clang complete + supertab):
foo($`param1`, $`param2`)

//after completion:
foo(var1, var2|)
              ^ ^
              | |
     I am here  |
                 Need to be here

| কার্সার অবস্থান নির্দেশ করে


অনুরূপ সমস্যার সাথে, )ফাংশনে অন্তত একটি যুক্তি থাকলে এটি প্রতিধ্বনি বন্ধ না করার জন্য আমি সম্পূর্ণ স্ক্রিপ্টে হ্যাকিং শেষ করেছি । তাই আমি এটি হাত দ্বারা টাইপ। এখন অনেক বেশি দরকারী।
দিমিত্রি ফ্র্যাঙ্ক

আপনি টাইপ করলে কী হয় )আমি বাজি ধরতে পারি এটি আসলে serোকানো বাদ দিয়ে যায়। (আমি এই প্লাগইনটি ব্যবহার করি না)
এফডিনফ

@ এফডিনোফ না, এটি কেবল অন্যটি সন্নিবেশ )
করিয়েছে

1
@ বলভ হতাশাজনক। আপনি যে কোডটি অটো-জোড়া থেকে এটি করে সেটি বের করতে সক্ষম হতে পারেন । আমার কোনও ধারণা নেই প্লাগইনগুলি যদি তারা দ্বন্দ্ব করতে পারে তবে। অন্য বিকল্পটি হল <C-O>l1 মোড মোড কমান্ডের জন্য সাধারণ মোডে প্রস্থান করার জন্য।
এফডিনফ

উত্তর:


5

যদি এটি বন্ধ হয়ে যাওয়া বন্ধনী হয় তবে অস্তিত্ব )ছাড়তে ম্যাপ)

inoremap <expr> )  strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : ")"

থেকে নেওয়া: http://vim.wikia.com/wiki/ স্বয়ংক্রিয়_অ্যাপেন্ড_ক্লোজিং_চারারস


পুরানো উত্তর

:h i_CTRL-O একটি কমান্ড কার্যকর করুন, সন্নিবেশ মোডে ফিরে যান।

Ctrl-ol আপনাকে একটি চরিত্র ডানদিকে নিয়ে যাবে তারপর আপনাকে সন্নিবেশ মোডে ফিরিয়ে আনবে।

বিকল্পভাবে কিছু বন্ধনী প্লাগইন আপনাকে কেবল বন্ধক বন্ধনী টাইপ করতে দেয় )এবং তারা বিদ্যমানটিকে ওভাররাইড করে।


1
)লাইনের শেষ চরিত্রটি হলে এটি কাজ করে না (এবং কোডটি লেখার সাথে সাথে এটি প্রায়ই ঘটে)। CTRL-O aতবে কাজ করে। সুতরাং আমি অনুমান করি যে আমরা একটি কী সংরক্ষণ করেছি। :)
বলভ

সত্যটি del )কেবলমাত্র দুটি অক্ষর এবং সর্বদা আপনাকে বন্ধ করার প্রথম বন্ধনীর পরে রাখবে।
ব্রেট ওয়াই

')' এড়িয়ে যাওয়া কোনও
কবজির

1

সন্নিবেশ মোডে ব্যবহৃত নিয়ন্ত্রণ কীগুলি সন্ধান করতে নিম্নলিখিত টাইপ করুন।

:help insert-index

ctrl-b ব্যবহার করা হয় না, তবে আপনি অন্য কিছু কী ত্যাগ করতে চাইতে পারেন।

imap <c-b> <right>

এটি কার্সারটি ডান এক চরে সরানোর জন্য কাজ করে। অথবা কিছু ডাবল চর মানচিত্র।

imap jj <right>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.