"সেট" কমান্ডটি কি কেবলমাত্র সক্রিয় বাফারকে প্রভাবিত করে?


14

আমার ভিমে দুটি বাফার রয়েছে:

:ls
  1 %a   ".vimrc"                       line 1
  2 #h   "script.sh"                    line 1
Press ENTER or type command to continue

উপরে যেমন দেখা যাচ্ছে, আমি প্রথম বাফারে আছি। এখন যদি আমি :set softtabstop=16কমান্ডটি কার্যকর করি তবে আমি আশা করব এটি উভয় বাফারকে প্রভাবিত করবে। যাইহোক, এটি কেস নয় - যদিও stsপ্রথম বাফারের মানটি সত্যই পরিবর্তিত হয়েছে এবং Tabকী চারটি ট্যাব অক্ষর ( ts=4) সন্নিবেশ করিয়েছে , তারপরে দ্বিতীয় বাফারের জন্য stsমানটি এখনও রয়েছে 4:

:ls
  1 #h + ".vimrc"                       line 1
  2 %a + "script.sh"                    line 1
  softtabstop=4
Press ENTER or type command to continue

কেন যে এত? আমি ভেবেছিলাম যা setসমস্ত বাফারকে setlocalপ্রভাবিত করে এবং কেবলমাত্র সক্রিয় বাফারকে প্রভাবিত করে ..

উত্তর:


25

বিকল্পগুলি বিশ্বব্যাপী , উইন্ডো-স্থানীয় বা বাফার-স্থানীয় হতে পারে

যখন আপনি :setএকটি বিশ্বব্যাপী বিকল্প, নতুন মানটি গ্লোবাল

আপনি যখন :setlocalএকটি বিশ্বব্যাপী বিকল্প, নতুন মান স্থানীয় হয়

আপনি যখন :setএকটি স্থানীয় বিকল্প, নতুন মান স্থানীয়

softtabstopএকটি হচ্ছে বাফার-স্থানীয় বিকল্প, এর মান পরিবর্তন শুধুমাত্র বর্তমান বাফার প্রভাবিত করে।

কোনও বিকল্পের "সুযোগ" এখানে নির্দেশিত রয়েছে :help option:

'softtabstop' 'sts'    number    (default 0)
                       local to buffer
                       {not in Vi}
Number of spaces that a <Tab> counts[...]

:help local-options, :help :setlocal, এবং :help global-localআরো বিস্তারিত জানার যে সব ব্যাখ্যা।


3
এছাড়াও আছে একটি :setglobal
সাতো ক্যাটসুর

3
এছাড়াও, কিছু বিকল্প বিশ্বব্যাপী, আপনি সেগুলি কীভাবে সেট করেন তা নির্বিশেষে। যেমন 'encoding'
অ্যান্টনি

বাফার আইডি এবং কিছু vimscriptফাংশন কল সহ বিকল্প মান দ্বারা স্থানীয় ফাংশন সেট করার কোনও উপায় আছে কি ?
সেন্ট অ্যান্টারিও

এটি setbufvarঅর্জন করতে ব্যবহার করা যেতে পারে যা একটি ফাংশন আছে । প্রথমে খুঁজে পাইনি।
সেন্ট অ্যান্টারিও

2

একজন বিশেষজ্ঞ, @ মার্টিন নয়, পড়ার মাধ্যমে :help setআপনাকে stsপ্রতিটি বাফারের স্থানীয় মান "আনসেট" করতে হবে যে বাফারটি কোনও নতুন বৈশ্বিক মান তুলবে । setlocal sts= (বা বুলিয়ান পতাকা জন্য, setlocal flag<)। কিন্ডা উপলব্ধি করে, স্থানীয় সেটিংস খোলায় বর্তমান বৈশ্বিক মানগুলির সূচনা হয়, অন্যথায় না বলা পর্যন্ত স্থানীয় মান রাখুন keep যদি কোন স্থানীয় সেটিং খেলার মধ্যে, এটা করা উচিত নয় কোনো নতুন বৈশ্বিক মান কুড়ান।

আবার, বিশেষজ্ঞ না হয়ে, আমি একটি অনুমানকে ঝুঁকি দিয়েছিলাম যে দ্বিতীয় বাফারটির পরে একটি স্পষ্ট স্থানীয় সেটিংস ছিল set50/50 বেশী যে আমার বোঝার ভুল, যেমন আমি এখনও কি মধ্যে পার্থক্য উপর অস্পষ্ট আছি setএবং setglobalহয়

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