ভিমে একক চরিত্র sertোকান?


25

ভিমে (7.2) এ, rএকটি একক অক্ষরকে অন্যের সাথে প্রতিস্থাপন করার জন্য একটি সাধারণ মোড কমান্ড রয়েছে । উদাহরণস্বরূপ, টাইপিং কর্সারের rXঅধীনে একটি অক্ষরটি প্রতিস্থাপন করবে Xএবং তারপরে আপনাকে স্বাভাবিক মোডে ফিরিয়ে দেবে।

একটি একক অক্ষর sertোকানো এবং তারপরে স্বাভাবিক মোডে ফিরে আসার জন্য কি কোনও নরমাল-মোড কমান্ড রয়েছে?


1
সম্ভাব্য ক্রস সাইট ডুপ্লিকেট: stackoverflow.com/questions/1557893/...
সিরো Santilli新疆改造中心996ICU六四事件

ব্যাপক সমাধানের জন্য vim.wikia.com/wiki/Insert_a_single_character দেখুন ।
ম্যাক্সিম সুস্লাভ

উত্তর:


6

মেলবারস্লান সঠিক যে এই বৈশিষ্ট্যটি স্থানীয়ভাবে বিদ্যমান নেই, তবে একটি ব্যবহারকারী-সংজ্ঞায়িত কমান্ড তৈরি করা আসলে এটি তৈরির উপায় নয়। আমি কয়েক মিনিটের জন্য টিঙ্কার করেছিলাম এবং এটি দিয়ে এসেছি:

:nmap <silent> ,s "=nr2char(getchar())<cr>P

এই ক্ষেত্রে "এক্সপ্রেশন" রেজিস্টার একটি রেজিস্টার থেকে পাঠ্য "লাগানো" জড়িত কিছু Vim কৌশল ব্যবহার করে। রেজিস্টারটিতে প্লাগ করা থাকা এক্সপ্রেশনটি " nr2char(getchar())" যা একক অক্ষরের স্ট্রিংটি ফিরিয়ে দেবে।

আমি ম্যাপিংটি এইভাবে তৈরি করার কারণটি হ'ল ম্যাপিংয়ের মাধ্যমে "মাঝপথে" ব্যবহারকারীর ইনপুট পাওয়া জটিল এবং এটি অনিচ্ছাকৃত আচরণ করতে পারে; এমনকি এই ম্যাপিংটি ব্যবহারকারীর কোনও অক্ষর টাইপ করার অপেক্ষায় স্থিতি অঞ্চলে কার্সারটি নামিয়ে ফেলবে।


7

নীচের মন্তব্যে আমাদের এই ভয়ঙ্কর উত্তর দেওয়ার জন্য জনিকে ধন্যবাদ:

":nmap <C-i> i_<Esc>r"

এটি একটি একক অক্ষর সন্নিবেশ করতে নিয়ন্ত্রণ + i এর মানচিত্র তৈরি করে এবং এটি খুব সংক্ষেপে করে।

আপনার ভিএমআরসি ফাইলে এটির মতো দেখাবে:

nnoremap <C-i> i_<Esc>r

স্থান ব্যবহারের জন্য আমি আমার ম্যাপিংটি পরিবর্তন করেছি এবং আপনি আপনার পছন্দসই কীতে পরিবর্তন করতে পারেন:

nnoremap <Space> i_<Esc>r

1
এটি সবচেয়ে সংক্ষিপ্ত এবং সহজ উত্তর simple
ডিলান্থেপিগুয়ে

4

আমি যতদূর জানি, ভিআই সম্পাদকের কোনও বিস্তৃত বিতরণ অবতারে এ জাতীয় কোনও কার্যকারিতা নেই তবে, ভিমে কাস্টম কমান্ডগুলি তৈরি করার সুবিধা রয়েছে। এটি আগে এখানে আলোচনা করা হয়েছে: এই থ্রেডে

আপনি যা করতে চান তা করতে আপনি নিজের কাস্টম কমান্ডটি তৈরি করতে সক্ষম হতে পারেন।


3
একটি একক অক্ষর সন্নিবেশ করানোর জন্য Ctrl-I মানচিত্রের কমান্ডটি এখানে রয়েছে: ": nmap <Ci> i_ <esc> r"
জনি

0

এটি করার একটি সহজ উপায় হ'ল কাট xএবং পুট pকমান্ডগুলি ব্যবহার করা। *আপনি যে চরিত্রটি sertোকাতে চান তা বলুন । এটি ব্যবহার করে sertোকান i * Esc। তারপরে হিট x। যে চরিত্রটি কাটা হবে। এখন, আপনি pএকক অক্ষর রাখতে হিট করতে পারেন । আপনি যে চরিত্র 300 বার সন্নিবেশ করতে প্রয়োজন হয়, আপনি টাইপ করতে পারেন: 300p

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