ট্যাবউইথের সাথে মেসেস ভান্ডেল "ফাইল টাইপ প্লাগইন ইনডেন্ট অন"


9

আমি গতকাল ভন্ডল ইনস্টল করেছি এবং যেহেতু আমি করেছি, আমার ভিআইএমআরসিটিতে আমি যে ট্যাবভিথটি কনফিগার করেছি তা উপেক্ষা করা হবে এবং 2 এর পরিবর্তে 4 এ ফিরে যেতে হবে।

আমি জানতে পেরেছি যে ভান্ডেল অনুচ্ছেদের পরে নিম্নলিখিত লাইনটি এটি সৃষ্টি করছে:

filetype plugin indent on

আমার ইন্ডেন্টেশনটি এভাবে সেট আপ করা হয়েছে:

set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround  " Round indent to multiple of 'shiftwidth'
set smartindent " Do smart indenting when starting a new line
set autoindent  " Copy indent from current line, over to the new line

" Set the tab width
let s:tabwidth=2
exec 'set tabstop='    .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth

আপনি আমার সম্পূর্ণ ভিএমআরসি এখানে পরীক্ষা করতে পারেন ।

আমি পাইথন স্ক্রিপ্ট ব্যবহার করে ইনডেন্টেশন সমস্যাটি পরীক্ষা করেছি (যেখানে প্রকৃতপক্ষে ইন্ডেন্টেশন গুরুত্বপূর্ণ)।

আমি ইতিমধ্যে পরিবর্তন চেষ্টা filetype plugin indent onকরতে filetype plugin onকিন্তু যে কিছু পরিবর্তন করবেন না। কেবল এই লাইনটি মন্তব্য করা সাহায্য করে।
এখন, ভান্ডেল ইনস্টল গাইড বলছেন, এই লাইনটি প্রয়োজন।

আমি কীভাবে এই ইনডেন্ট ইস্যুটি ঠিক করব? আমি কি কেবল ফাইল টাইপ লাইন বাদ দিতে পারি বা এটি ভিএমআরসি-তে রাখা সত্যিই বাধ্যতামূলক?

সমাধান:

@ ক্রিশ্চিয়ান ব্র্যাব্যান্ড এবং @romainl এর জন্য ধন্যবাদ আমি এখন একটি সমাধান পেয়েছি যা একটি একক ভিআইএমআরসি ফাইলে থাকতে পারে:

filetype plugin indent on

[...]

set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround  " Round indent to multiple of 'shiftwidth'
set autoindent  " Copy indent from current line, over to the new line

" Set the tab width
let s:tabwidth=2
au Filetype * let &l:tabstop = s:tabwidth
au Filetype * let &l:shiftwidth = s:tabwidth
au Filetype * let &l:softtabstop = s:tabwidth

যদিও এটি আপনার প্রশ্নের উত্তর দেয় না, আমি ভন্ডলের পরিবর্তে ভিএম-প্লাগ দিয়ে চেষ্টা করেছি এবং এটি পুরোপুরি কাজ করেছে ...
nobe4


আপনি শিফটউইথ এবং সফটটাবস্টপ সেটিংটি পুনরায় সেট করতে নতুন অপশনসেট অটোকম্যান্ডটিও ব্যবহার করতে পারেন
ক্রিশ্চিয়ান ব্রাবাঁট

উত্তর:


10

আগেরটা আগে; নীচের লাইনটি ভান্ডল বা প্লাগইন পরিচালনার সাথে একেবারেই করার নেই :

filetype plugin indent on

এই আদেশটি তিনটি কাজ করে:

  • ফাইল টাইপ সনাক্তকরণ সক্ষম করে,
  • ফাইল টাইপ-নির্দিষ্ট স্ক্রিপ্টস (ftplugins) সক্ষম করে,
  • ফাইল টাইপ-নির্দিষ্ট ইনডেন্ট স্ক্রিপ্ট সক্ষম করে।

সেই লাইনটি এখানে রয়েছে কারণ কিছু প্লাগইন পরিচালকদের নিশ্চিত করতে হবে যে তাদের যাদু করার আগে ফাইল টাইপ সনাক্তকরণ অক্ষম করা আছে এবং প্রোগ্রামিংয়ের জন্য ভিম ব্যবহার করা ftplugins এবং সঠিক ইন্ডেন্টেশন ছাড়াই আরও শক্ত করে চুষতে পারে। এটি আমার মতামত যে তাদের কেবলমাত্র ফাইল টাইপ সনাক্তকরণটি অভ্যন্তরীণভাবে তবে ভালভাবে মোকাবেলা করা উচিত ...

যাইহোক, আপনার সমস্যা অত্যধিক-অধিকারী ftplugins দ্বারা সৃষ্ট হয় যা তাদের সাথে আপনার ইনডেন্টেশন সেটিংস ওভাররাইড করে। পাইথন ftplugin সর্বাধিক সাধারণ অপরাধী কারণ এটি খুব আগেই সিদ্ধান্ত নেওয়া হয়েছিল যে এটি পিইপি 8 প্রয়োগ করতে হবে।

এর সহজ উপায় হ'ল সম্পূর্ণরূপে ফ্টপ্লাগিনগুলি স্রোস এড়ানো to

filetype indent on

তবে তারা সাধারণত দরকারী জিনিস নিয়ে আসে যাতে পদ্ধতিটি সত্যই সুপারিশ করা হয় না।

সবচেয়ে পরিষ্কার সমাধান হ'ল filetypeলাইনটিকে তার "অনুকূল" অবস্থায় রেখে দেওয়া:

filetype plugin indent on

এবং তাদের নিজের দ্বারা ওভাররাইডগুলি ওভাররাইড করুন after/ftplugin/python.vim:

setlocal noexpandtab
setlocal shiftround
setlocal autoindent

let s:tabwidth=2
let &l:tabstop = s:tabwidth
let &l:shiftwidth = s:tabwidth
let &l:softtabstop = s:tabwidth

মন্তব্য:

  • আমি অপসারণ করেছি smartindentকারণ ফাইল টাইপ-নির্দিষ্ট ইনডেন্ট স্ক্রিপ্টগুলি দিয়ে আরম্ভ করা এত স্মার্ট নয়।
  • অপ্রয়োজনীয় কনটেন্টেশন এড়াতে আমি আপনার :executeআদেশগুলি ক্লিনার কমান্ডগুলির সাথে প্রতিস্থাপন করেছি :let

1
আপনি যদি shiftwidthশূন্য এবং softtabstop-1 এ সেট করেন তবে এটি ট্যাবস্টপ সেটিংটি অনুসরণ করবে।
খ্রিস্টান ব্র্যাব্যান্ড ২t

আপনার ব্যাখ্যা জন্য ধন্যবাদ। আমি আমার vimrc এ আমার বেশিরভাগ সেটিংস বজায় রাখতে চাই কারণ আমি সেগুলি একাধিক কম্পিউটারে সিঙ্ক করতে চাই। আমি আমার vimrc আপনার সমাধান ব্যবহার করা হয় এবং ব্যবহার করা FAQ লিংক @ChristianBrabandt আমার প্রশ্ন নীচের পোস্ট করে এবং এটি কাজ করে। আমার সমাধানটি অন্তর্ভুক্ত করতে আমি আমার প্রশ্নটি সম্পাদনা করব।
wullxz

4

ইন্ডেন্টেশন সমস্যাটি এফটিপ্লুগিন থেকে আসে, যা /usr/share/vim/vim-version-/ftplugin/-filetype-.vimআপনার .vimrcফাইলটিতে যা আছে তা ওভাররাইড করে একটি .vim ফাইল লোড করে । নীচের কমান্ডটি ভিএম-এর মাধ্যমে চালিয়ে আপনি এই ফাইলটি কোথায় তা খুঁজে পেতে পারেন :verbose set tabstop?। আউটপুট আপনাকে সেই ফাইলটিতে নির্দেশ করবে যা আপনার কনফিগারেশনকে ওভাররাইড করছে।

আমার ক্ষেত্রে আমার পাইথন ইন্ডেন্টেশন কনফিগারেশনটিতে সমস্যা ছিল।

এটি সমাধানের একটি সহজ উপায় নিম্নলিখিত কাজগুলি করা:

আপনার বাড়ির ফোল্ডারে একটি .vim ফোল্ডার তৈরি করুন (যদি তা না থাকে)

cd ~/.vim
mkdir -p after/ftplugin/
cd ~/.vim/after/ftplugin/
vim python.vim

নিম্নলিখিত যুক্ত করুন:

setlocal noexpandtab shiftwidth=4 softtabstop=4 tabstop=4

কমান্ডে আপনি যা চান তা পরিবর্তন করুন। আমার দেখতে দেখতে দেখতে ভাল লাগে কারণ আমি সাদা জায়গার পরিবর্তে ট্যাব নিয়ে কাজ করি।

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