tl; dr: ব্যাকস্পেসটি অন্যান্য বেশিরভাগ প্রোগ্রামের মতো কাজ করতে এটি আপনার ভিআরসিআরকে যুক্ত করুন:
set backspace=indent,eol,start
দীর্ঘ উত্তর
যদিও ডিফল্ট আচরণটি আশ্চর্যজনক হতে পারে, ব্যাকস্পেস "কাজ করছে না" একটি বৈশিষ্ট্য হিসাবে বিবেচনা করা যেতে পারে ; এটি আপনাকে দুর্ঘটনাক্রমে ইনডেন্টেশন অপসারণ এবং বর্তমান লাইনে এবং / অথবা সন্নিবেশের শুরুতে সীমাবদ্ধ করে খুব বেশি পাঠ্য অপসারণ থেকে বাধা দিতে পারে।
:help 'backspace'
আমাদের বলে:
Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode. This is a list of items, separated by commas. Each item allows
a way to backspace over something:
value effect
indent allow backspacing over autoindent
eol allow backspacing over line breaks (join lines)
start allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert.
সুতরাং এই মানগুলি ঠিক কী বোঝায়?
ইনডেন্ট
ভিম অনেকগুলি ফাইল টাইপের জন্য স্বয়ংক্রিয় ইন্ডেন্টেশন যুক্ত করে; ডিফল্টরূপে, আপনাকে এ
থেকে ব্যাকস্পেসের অনুমতি দেওয়া হয় না ; 'স্বতঃসংশ্লিষ্টতা' হিসাবে বিবেচিত যাগুলির নিয়মগুলি কিছুটা সূক্ষ্ম, উদাহরণস্বরূপ, যদি আমরা এটি টাইপ করি (যেখানে the কার্সার হয়):
if :; then
█
ব্যাকস্প্যাকিং কাজ করবে না।
কিন্তু আমরা যদি তারপর একটি কমান্ড যোগ হবে fi
, এবং ফিরে পর্যন্ত যেতে, আমরা হয়
খাঁজ মুছে ফেলার জন্য অনুমোদিত:
if :; then
█:
fi
এটি কারণ প্রথম উদাহরণে, ভিম নির্ধারিত হয়েছিল যে আপনি এন্টার চাপলে এটি 1 স্তরের ইন্ডেন্টেশন যুক্ত করা উচিত; তবে দ্বিতীয় উদাহরণে, ভিম কিছুই স্বয়ংক্রিয়ভাবে চালিত করেনি, এটি কেবল ট্যাব অক্ষর বা কয়েকটি স্পেস।
এছাড়াও দেখুন :help 'autoindent'
eol
এটি সর্বাধিক সুস্পষ্ট হওয়া উচিত, ব্যাকস্পেস টিপে EOL চিহ্নিতকারীগুলি ( \n
বা \r\n
) সরিয়ে দেয় ; যদি অক্ষম থাকে, আপনি কোনও ইওল চিহ্নিতকারী মোছার চেষ্টা করলে ব্যাকস্পেস কিছুই করবে না।
শুরু করার
অর্থ এটি সন্নিবেশ মোড শুরু হওয়ার পরে আপনি কেবল সন্নিবেশ করা পাঠ্য মুছতে পারবেন এবং পূর্বে সন্নিবেশ করা কোনও পাঠ্য আপনি মুছতে পারবেন না।
সুতরাং ডিফল্ট সেটিংস কি?
আমি এটি উইন্ডোতে জিভিআইএম ব্যবহার করে লক্ষ্য করেছি। তবে বেশিরভাগ লিনাক্স সিস্টেমে টার্মিনাল থেকে ভিআইএম ব্যবহার করার সময় ব্যাকস্পেসটি প্রত্যাশা অনুযায়ী কাজ করবে বলে মনে হচ্ছে।
এর কারণ হ'ল অনেকগুলি লিনাক্স ডিস্ট্রো শিপকে প্রাক-তৈরি ভিএমআরসি ফাইলগুলি দিয়ে থাকে যা কিছু সাধারণ বিকল্প নির্ধারণ করে। উদাহরণস্বরূপ আমার আর্ক লিনাক্স সিস্টেমে আমার /usr/share/vim/vimfiles/archlinux.vim
সাথে রয়েছে:
set nocompatible
set backspace=indent,eol,start
" ... and a few more...
আপনি যদি উইন্ডোতে ভিম ইনস্টল করেন তবে ডিফল্টটি হ'ল ডিফল্ট vimrc এবং gvimrc ব্যবহার করা হয় যা ভিম শিপ করে।
তেজ ডিফল্ট জন্য একটি খালি মান backspace
। আর্ক লিনাক্স, ডেবিয়ান, সেন্টস বা $other_distro
ডিফল্ট আলাদা হতে পারে।
স্বাভাবিক অবস্থা
এই প্রশ্নটি সন্নিবেশ মোডে ব্যাকস্পেস সম্পর্কে, তবে আমার স্বাভাবিক মোডে ব্যাকস্পেস সম্পর্কে কিছু সংক্ষিপ্ত মন্তব্য যুক্ত করুন।
সাধারণ মোডে, ব্যাকস্পেসটি কাজ করে h
, এটি কেবল বাম দিকে যায়।
ডিফল্টরূপে, ব্যাকস্পেস পূর্ববর্তী লাইনে যাবে যদি কোনও লাইনের শুরুতে (যেমনটি eol
ছিল backspace
); আপনি পতাকাটির 'whichwrap'
মাধ্যমে বিকল্পের মাধ্যমে এই আচরণটি নিয়ন্ত্রণ করতে পারেন b
(ডিফল্টরূপে সক্ষম)।
আপনি X
কমান্ডটিতে ম্যাপিং করে ব্যাকস্পেস মুছে ফেলতে অক্ষরগুলিও তৈরি করতে পারেন :
nnoremap <BS> X
X
(এবং মুছে ফেলাx
) দিয়ে সম্পন্ন করা হয় তবে প্রায়শই আপনি যা করতে চেয়েছিলেনdb
উদাহরণস্বরূপ শব্দের শুরু হওয়া অবধি মুছে ফেলা বাdaw
পুরো শব্দটি মুছে ফেলা ইত্যাদি আপনার যদি ব্যাকস্পেস উপলভ্য থাকে তবে আপনি এটি ব্যবহার করে ঝুঁকিপূর্ণ প্রয়োজনের চেয়ে অধিক ক্ষেত্রে সাবপটিমাল কী