ভিমে ইয়ামল সম্পাদনা করার সময় ভুল ইনডেন্টেশন


91

ওয়াইএএমএল ফাইলগুলিতে কোনও ফ্যাশন প্রতীক নিয়ে ভিম সঠিকভাবে প্রতিক্রিয়া দেখায় না বলে ফর্ম্যাটটি ভঙ্গ করে।

উদাহরণস্বরূপ আমার একটি ব্লক রয়েছে যা দেখতে এটির মতো হওয়া উচিত:

  handlers:
        - name: restart exim4
          service: name=exim4 state=restarted

যখন আমি টাইপিং শেষ করি restart exim4এবং টাইপ করি তখন service:আমার চূড়ান্ত serviceলাইনটি ভিন্ডেন্ড করে :

  handlers:
        - name: restart exim4
        service: name=exim4 state=restarted

সুতরাং স্পষ্টতই ভিম বাক্যগুলি কলাম-অনুসারে সারিবদ্ধ করার চেষ্টা করে তবে ওয়াইএএমএলে এটি প্রয়োজনীয় নয়। আমি দুটি মান সহ একটি অ্যারে তৈরি করতে চাই।

কীভাবে ঠিক করব?

উত্তর:


25

এই প্লাগইনটি ইনস্টল করুন:

https://github.com/chase/vim-ansible-yaml

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


আমি এই প্লাগইনটি দেখেছি - এটি ফাইলের একটি নির্দিষ্ট নাম এবং / অথবা একটি নির্দিষ্ট ফোল্ডারে থাকার প্রত্যাশা করে। উত্তরযোগ্য প্লেবুকগুলি কেবলমাত্র আমি সম্পাদিত ফাইল নয়। এজন্য আমি এটি ইনস্টল করার চেষ্টাও করি নি। ধন্যবাদ, আমি 'উত্তরসূচক' টাইপ করতে yML সেট করব।
গ্লিয়ুন

4
বাহ, একটি বড় পার্থক্য করে, আমি মনে করি নিয়মিত yamlবাক্য গঠন ঠিক করার
মতোও

সত্য, আপনি যদি এই পথে যান তবে আপনাকে # vim:ft=ansible:আপনার সমস্ত অ-জবাবদিহি ফাইল রাখতে হবে।
এলিজাহ লিন

163

আমি যখন কোলনের পরে গাড়ীর ফেরার পথে আঘাত করি তখন ডিফল্ট হিসাবে দুর্দান্ত 2-স্পেস ওয়াইএএমএল পেতে, আমি এটি আমার সাথে যুক্ত করেছি .vimrc:

autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab

এটি ওপি-র প্রত্যাশিত ফলাফলের জন্য ড্যাশ সহ দুর্দান্ত অভিনয় করে।


4
ধন্যবাদ, এটা কাজ করে।
গায়ান ওয়েরাকুট্টি

4
এটি ~ / vim / ftplugin / yaml.vim এ রাখার বিষয়ে বিবেচনা করুন এবং ভবিষ্যতের পাঠযোগ্যতার জন্য দীর্ঘ নামগুলির সাথে সংক্ষিপ্ত নামগুলি প্রতিস্থাপন করুন।
এক্সিক

4
@ লেভিউনেকার হ্যাঁ ঠিক কমা এগুলিকে আলাদা করুনautocmd FileType yaml,yml setlocal ...
ট্রে স্টাউট

4
এটি কাজ করার জন্য, আমার filetype plugin indent onপ্রথমটি করতে হবে । এছাড়াও একটি সুন্দর স্পর্শ আছে তার syntax onআগে থাকা।
এলিয়াহ লেন

4
এটি উপরে আমার মন্তব্যের যোগফল -> gist.github.com/dragonken/c29123e597c6fdf022284cf36d245b64
লিন

20

আপনি :কীটি টাইপ করলে আপনি পুনরায় পাঠানো অক্ষম করতে পারেন :

:set indentkeys-=<:>

দয়া করে ~/.vimrcফাইল সম্পাদনা করুন এবং এই লাইনগুলি যুক্ত করুন:

filetype plugin indent on
autocmd FileType yaml setl indentkeys-=<:>

দ্রষ্টব্য: autocmd পরে আসে filetype


আপনি টাইপ করে reindent আরম্ভ করতে পারবেন CTRL-Fমধ্যে ঢোকান মোড, উদাহরণস্বরূপ:

hello: world
    foo: bar<C-F>

10

আপনি এই অটোকম্যান্ডটি ভিমকে যথাযথভাবে ওয়াইএএমএল ফাইলগুলি ইনডেন্ট করতে (এটিতে রেখে দিতে .vimrc) ব্যবহার করতে পারেন :

" Fix auto-indentation for YAML files
augroup yaml_fix
    autocmd!
    autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab indentkeys-=0# indentkeys-=<:>
augroup END

মূলত, ওয়াইএএমএল ফাইলের জন্য এটি ভিমকে নির্দেশ দেয়:

  • ইন্ডেন্টেশন জন্য 2 স্পেস ব্যবহার করুন।
  • ট্যাবগুলির পরিবর্তে স্পেস ব্যবহার করুন।
  • #একটি রেখার শুরুতে কোনও মন্তব্য অক্ষর ( ) বা কোলন সন্নিবেশ করানোর পরে পুনরায় ইনডেন্টিং লাইনগুলি এড়িয়ে যান ।

জিম যোগ করাও সহায়তা করে
ভ্যান ড্যান বার্গ

কি? কোথায়?
মিঃআরজোগ

3

এই ফাইলের জন্য ভিম বিশেষ কনফিগারেশনটি বলতে আপনার YAML এ আপনি একটি মন্তব্য যুক্ত করতে পারেন। উদাহরণ স্বরূপ:

# vim: set shiftwidth=2 tabstop=2 softtabstop=-1 expandtab:
foo:
  bar:
  - a
  - b

তারপরে প্রত্যেকে, যারা এই ফাইলটি একটি ডিফল্ট ভিমে দিয়ে ব্যবহার করেন, তারা ফাইল নির্মাতার কনফিগারেশনটি ভাগ করতে পারেন। এটি বিশেষত সহযোগিতা করার সময় ভাল কাজ করে।


1

এখানে augroupআমি yaml জন্য আছে:

augroup filetype_yaml
    autocmd!
    autocmd BufNewFile,BufReadPost *.{yaml,yml} set filetype=yaml foldmethod=indent
    autocmd FileType yaml |
        setlocal shiftwidth=2 |
        setlocal softtabstop=2 |
        setlocal tabstop=2
augroup END

0

দুর্দান্ত কাজ করতে আমি https://github.com/stephpy/vim-yaml পেয়েছি । এটি একটি ভিএম প্লাগইন যা ইয়ামল ফাইলগুলির ইন্ডেন্টেশন (এবং সিনট্যাক্স হাইলাইটিং) করে। এটি ইনস্টল করা আপনার যে বিশেষ সমস্যা সম্পর্কে জিজ্ঞাসা করেছিল তা সমাধান করে।

আপনাকে প্লাগইন ইনস্টল করতে হবে (গিটহাব রেপোতে ডকো দেখুন) এবং যতক্ষণ না filetype=yamlএটি আপনার ইনডেন্টিং সংশোধন করবে। এটি আপনাকে উভয়কেই সহায়তা করবে

  1. আপনি যে স্নিপেট সরবরাহ করেছেন তা টাইপ করছেন বা
  2. আপনার যদি ইতিমধ্যে কিছু ইয়ামল লেখা থাকে তবে আপনি এটি নির্বাচন করতে পারেন ( Vলাইন ভিত্তিক নির্বাচনের জন্য তারপরে আরও লাইন ব্যবহার jবা kনির্বাচন করতে) তারপরে ভিম বিন্যাসটি ট্রিগার করুন=
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.