ভিমে, আমি সম্পাদনা মোডটি ছেড়ে দিলে কেরেটটি পিছনে সরে যাওয়া আটকাবেন?


9

ভিমে, যদি আমি কিছু না করে এডিট মোডটি প্রবেশ করে ছেড়ে চলে যাই তবে ক্যারেটটি একটি অক্ষর বামদিকে শেষ করে। এবং যদি আমি সংযোজন মোডটি প্রবেশ করি এবং ছেড়ে চলে যাই, ক্যারেটটি সামনে এবং তারপরে পিছনে চলে যায়।

এই ক্ষেত্রে কেরেটটি একা রেখে ভিএমকে কনফিগার করার কোনও উপায়?

আদর্শভাবে আমি কেবল সর্বদা সংযোজন মোডে প্রবেশ করতে চাই, তবে যখন আমি মোডে প্রবেশ করি বা প্রস্থান করি তখন ক্যারেটটি সরিয়ে না নিয়ে।

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


1
এই প্রশ্নের উত্তর ভাল। আমি কেবল এটিই উল্লেখ করতে চাই যে যদি তারা তাদের ধারণাগুলিতে সঠিক হয় যে আপনি আমি সম্পাদনা মোডে যেতে ব্যবহার করেন তবে তারপরেই এটি পিছনের দিকে সরে যাওয়ার কারণ causing আপনি যদি 'এ' (এ না) ব্যবহার করেন তবে এটি আপনার প্রত্যাশা অনুযায়ী কাজ করবে।
জহনি

@ জোহনি আমার মনে হয় না এটি হবে। আমি সাধারণত "সাধারণ" মোডে থাকি, ফাইল এবং স্টাফের চারপাশে ঘুরে। যখন আমার কোনও সম্পাদনা করা দরকার, আমি প্রথমে ক্যারেটটি অবস্থান করি, তারপরে "একটি" টিপুন এবং তারপরে দেখতে পাবেন যে আমি এটিকে ভুলভাবে স্থাপন করেছি, কারণ এটি ডানদিকে চলে যায় moves আমি আমার সম্পাদনার সময়কালের 99% আধুনিক সম্পাদকগুলিতে ব্যয় করে দিয়েছি, "ক" টিপানোর আগে আমি বামদিকে একটি চর স্থাপন করার কোনও সম্ভাবনা আমার মনে নেই। যে কারণে আমি ম্যাক্রো বা অন্য কিছু আশা করছিলাম was
রোমানস্টে

এটি অভ্যাসের প্রশ্ন। এটি সত্যই বিরক্তিকর, তবে কেবল প্রথম বছরগুলি। আপনি শেষ পর্যন্ত টিপুন শিখবেন iবা aএটা আমার মনে হয় ছাড়া, এবং এমনকি হতে পারে s, S, ci", ইত্যাদি সীমাবদ্ধ পরিবর্তে iএবং a
লুক হার্মিটে

1
আমি আপনার হতাশা বুঝতে পারি কিন্তু। পরিবর্তে আপনি কী করছেন তা ভেবে দেখার চেষ্টা করুন। নিজেকে জিজ্ঞাসা করুন এটি করার আরও ভাল উপায় আছে কিনা (ভিমকে নিয়মিত টেক্সটিকিটার হিসাবে ব্যবহার করার চেয়ে, এটি)। আমি ভিমের সাথে খুঁজে পেয়েছি সবসময় আরও ভাল উপায়, কাজ করার ভিম উপায়। আমরা সহায়তা করতে পারি তবে সমস্যার মধ্যে পড়ার সময় আপনি কী করছেন তা আমাদের জানতে হবে। আপনি যখন কোনও কিছু মুছতে চান তখন উদাহরণস্বরূপ আপনি কি সম্পাদনা মোডে যান? না, অক্ষর মুছে ফেলার জন্য 'এক্স' রয়েছে। একটি চরিত্র প্রতিস্থাপন করতে চান, তারপরে 'আর' আছে। আপনি কী অর্জন করতে চান তা ভেবে দেখুন।
জননি

@ জোহনি আপনি আমি যে বিষয়ে কথা বলছি তা বুঝতে পেরেছি তবে এটি আমার কাছে বোঝার জন্য খুব বেশি পরিমাণে পুনর্বিবেচনার প্রয়োজন। আমি আমার সম্পাদনার সময়টির 99% ভিজ্যুয়াল স্টুডিওতে ব্যয় করি এবং আমি এটি পছন্দ করি। আমি কেবল জানি আমি এটি পুনরায় প্রকাশ করব না, তাই সময় নষ্ট করার কোনও দরকার নেই।
রোমানস্টে

উত্তর:


9

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

আপনি সন্নিবেশ মোডটি ছেড়ে যাওয়ার পরে কার্সরটি একটি চরিত্রটিকে সরিয়ে নিয়ে যাওয়ার প্রয়োজন হয় না, তবে কেবল কোনও চরিত্রের দিকে চলে যায়। চলাফেরার একমাত্র নিরাপদ দিক বাম দিকে (বা পিছনে)। সুতরাং, আপনার সন্নিবেশ মোডে প্রবেশের একাধিক উপায় রয়েছে:

  • "একটি" কার্সার দিয়ে সন্নিবেশ মোডে প্রবেশ করে "" কার্সারটি যে অক্ষরটি ছিল তার মধ্যে এবং পরের অক্ষরটি ডান দিকে।
  • "আমি" কার্সারটি দিয়ে কার্সারটি প্রবেশ করানোর মোডে প্রবেশ করে "কার্সারটি যে অক্ষরে ছিল এবং পূর্বের অক্ষরটি বাম দিকে ছিল"।

কিছু লোক তাদের পছন্দ না হওয়া এই "আন্দোলন" দমনের জন্য প্রচেষ্টা চালিয়েছে, তবে এটি অনিবার্যভাবে প্লাগইন এবং ভবিষ্যতে চালাতে চায় এমন অন্যান্য ভিম স্ক্রিপ্টগুলিতে হস্তক্ষেপ করে।

আমার পরামর্শটি হ'ল উপযুক্ত পরিস্থিতিতে "ক" এবং "আই" (এবং "এ" এবং "আমি") কমান্ড ব্যবহার করার অভ্যাস করুন।

"O" এবং "O" কমান্ডগুলি শিখতেও দরকারী। দেখা:

:help a
:help i
:help A
:help I
:help o
:help O

সম্পাদনা করুন: আপনি যদি এখনও এই আচরণটি পরিবর্তনের জন্য দৃ determined়সংকল্পবদ্ধ হন তবে এই টিপটিটি ব্যবহার করে দেখুন: কার্সারটির একটি অক্ষরকে বাম দিকে সরানো থেকে আটকাতে বাধা দিন


1
আপনি কী বলছেন তা আমি বুঝতে পেরেছি, তবে "আমি" / "ইসি" / "আই" / "ইস্ক" কার্টের প্রকৃত সামগ্রিক নেট চলাচলের কারণ হয়ে থাকে। আমি সত্যিই মনে করি ভিআইএম কেবল আমার পক্ষে নয়।
রোমানস্টে

2
@ ক্রোমাকিনস: আমি মনে করি আপনার aপরিবর্তে ব্যবহার করা উচিত i
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

1
@ ডেনিস একমত হয়েছেন, "ক" কিছুটা ভাল কারণ এটি ক্যারেটটিকে প্রথম চরের আগে এবং শেষ সারির পরে একটি লাইনে থাকতে দেয় - যা "আমি" নির্বিচারে অস্বীকার করে। তবে আমি চেষ্টা করেছিলাম; যা হয় তা হ'ল আমি "ক" টিপানোর আগে সবসময় ক্যারেটটি স্থানান্তর করি - তাই আমাকে তত্ক্ষণাত ক্যারেটের একটি অবস্থান বাম দিকে সরিয়ে নিতে হবে। প্রতি একক সময়. এটি ক্লান্তিকর হয়ে উঠেছে তাই আমি "i" এ চলেছি।
রোমানস্টে

@ হ্যাপটাইট আপনি কি আমাকে এমন একটির ত্রুটিযুক্ত বাস্তবায়নের দিকে লক্ষ্য করতে পারেন যা আন্দোলনকে দমন করে? ভবিষ্যতে আমার প্লাগিন বা অন্যান্য স্ক্রিপ্ট ব্যবহার করতে চাওয়ার সম্ভাবনাগুলি মূলত শূন্য।
রোমানস্টে

1
@ ক্রমিন, এটি উভয় উপায়ে কাজ করে না (তা করে না)। রিম্যাপিং <esc>প্রকৃতপক্ষে বেশিরভাগ প্লাগইনকে <esc>সঠিকভাবে কাজ করতে বাধা দেবে, তবে আপনি যখন অন্য স্ট্যান্ডার্ড বৈশিষ্ট্যগুলি একই মোডে স্বাভাবিক মোডে ফিরে আসবেন তখন ব্যবহার করবেন তখন তা আপনাকে বিরক্ত করতে থাকবে <esc>। উড়ে যাওয়ার জন্য সঠিক কীটি ব্যবহার করা শিখার সমাধানটি দীর্ঘমেয়াদে স্কেল করে / কাজ করে।
লুক হার্মিটে

1

আমি মনে করি ক্যারেটের দ্বারা আপনি আপনার কার্সারটি বোঝাচ্ছেন এবং আপনি যদি "i" ব্যবহার করেন তবে এটি আপনার কর্সারটি যেখানে সরাসরি প্রবেশ করিয়ে দিবে, "এ" (যা আমি বিশ্বাস করি আপনি সন্ধান করছেন) কার্সারটি একটি অক্ষরকে ডানে নিয়ে যায়। এছাড়াও, শিফট-আই (আই) লাইনের শুরুতে যাবে এবং শিফট-এ (এ) সমস্ত লাইনের শেষ প্রান্তে যাবে।

আমি যদি আপনার প্রশ্নটি ভুল বুঝে থাকে তবে আমি ক্ষমা চাই।


1

যেহেতু রিম্যাপিংকে <ESC>'ঝুঁকিপূর্ণ' হিসাবে বিবেচনা করা হয় আমি এড়াতে চাওয়ার পন্থাগুলি এড়ানো একটির সাথে কেবল মিশ্রিত করি এবং নিম্নলিখিতটি আমার মধ্যে রয়েছে .vimrc:

 inoremap ii <ESC>l

দ্রষ্টব্য: লাইনটির শেষে কোনও স্থানের অক্ষর নেই তা নিশ্চিত করুন।

সরল, তবে "আমার পক্ষে ভাল কাজ করে" হিসাবে সম্পূর্ণরূপে শংসাপত্র হিসাবে হুবহু আমার হাতে অন্যথায় টাইপ করতে হবে।

আমি ব্যবহার করি aবা iআমি এখনও কেরেটটি আচরণের পিছনে ফিরে আসি এবং এটি বার বার আমার থেকে বেরিয়ে আসে কারণ আমি পরের জিনিসটি টাইপ করতে চাইছি এটি হ'ল d$একটি লাইনের শেষে মুছে ফেলা ইত্যাদি etc.


আশ্চর্যজনক সহজ সমাধান। সেরা আমি পেরিয়ে এসেছি।
টাইলার কলিয়ার

1

এখানে আমার সমাধান:

au InsertLeave * call cursor([getpos('.')[1], getpos('.')[2]+1])

এটা মজার. এই একই প্রশ্নটি তিনটি সাইটেই রয়েছে: এসও, এসইউ, ইউনিক্স + লিনাক্স।


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