ভিম গ্লোবাল প্রতিস্থাপন সমস্ত ম্যাচকে একটি লাইনে সাবস্টিটেট করে না


12

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

আমি পুরো ফাইলটিতে অপারেটিং gবা gcপরামিতিগুলি ব্যবহার করি %

এই ফাইলটিতে:

hello hello
hello
hello hello hello
hello

তাহলে আমি কি %s/hello/goodbye/gআমি পেতে

goodbye hello
goodbye
goodbye hello hello
goodbye

আমার .vimrcঅনুসন্ধান / প্রতিস্থাপন সম্পর্কে আমার যা কিছু রয়েছে তা হ'ল

set hlsearch
set ignorecase
set incsearch

3
দয়া করে আমাদেরকে একটি সত্যিকারের বিশ্বের উদাহরণ দিন এবং আমাদের আপনার দেখান vimrc
রোমেনেল

2
আপনি যদি এর মতো :echo &gd২ য় gপতাকা যুক্ত করেন তবে আউটপুট কী হবে এবং %s/hello/goodbye/ggআপনি gপতাকাটি পুরোপুরি সরিয়ে ফেললে কী হবে? আউটপুট যদি :echo &gdহয় 1, যোগ করার চেষ্টা set nogdefaultআপনার শেষে vimrc
user9433424

1
ফাইন! আমি জানি না কেন তবে ডিফল্টরূপে এটি 0 তে সেট করা হয়েছিল তাই আপনারা set nogdefaultযেমন বলেছিলেন তেমন যোগ করেছিলাম এবং এটি এখন কাজ করে। ধন্যবাদ!
নিকোলাস স্কটিটো ডি পার্তো

উত্তর:


12

হতে পারে আপনি বা একটি প্লাগইন বিকল্পটি সক্ষম করে দিয়েছিলেন 'gdefault'gআপনি যখন বিকল্প প্রতিস্থাপন করেন তখন এই বিকল্পটি স্বয়ংক্রিয়ভাবে পতাকাটি যুক্ত করে ।

সুতরাং, যখন আপনি সক্ষম হওয়ার gসময় ম্যানুয়ালি পতাকাটি যুক্ত করবেন তখন মনে 'gdefault'হচ্ছে আপনার কাছে 2 টি gপতাকা রয়েছে যা কোনওটির মতোই প্রভাব ফেলেনি। অতএব, ভিম প্রতিটি লাইনে প্যাটার্নের প্রথম ঘটনাকে প্রতিস্থাপন করে।

ডিফল্টরূপে, এই অপশনটি নিষ্ক্রিয় করা হয়েছে, কিন্তু নিশ্চিত তা না হয়, আপনি আপনার শেষে যোগ করতে পারিনি করতে vimrc: set nogdefault

বিকল্পভাবে, আপনি যদি সন্দেহ করেন যে কোনও প্লাগইন বিকল্পটি সক্ষম করেছে, আপনি এটি দিয়ে এটি ট্র্যাক করতে পারেন: verb set gd?

অথবা আপনি বিকল্পটিতে অভ্যস্ত হতে পারেন যার অর্থ এই যে আপনি যখন কোনও প্যাটার্নের সমস্ত উপস্থিতি প্রতিস্থাপন করতে চান তখন আপনি gপতাকাটি জুড়বেন না (কারণ gdefaultএটি ইতিমধ্যে এটি ঘটেছে), এবং যখন আপনি কেবল প্যাটার্নের প্রথম স্তরটিই প্রতিস্থাপন করতে চান একটি লাইনে, আপনি gপতাকাটি জুড়ুন (কারণ ২ টি gপতাকা কোনওটির মতো নয়)।

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