ইন্ডেন্টেশন জন্য ট্যাব, প্রান্তিককরণ জন্য ফাঁকা


17

আমি ট্যাবগুলির সাথে ভিম অটো ইনডেন্ট করার চেষ্টা করছি, এবং শ্বেত স্পেসগুলির সাথে প্রান্তিককরণ করার চেষ্টা করছি, তবে আসলে, ট্যাবগুলির সাথে ভিম ইনডেন্ট করুন এবং ট্যাব + সাদা স্পেস দিয়ে প্রান্তিককরণ পূরণ করুন।

ভিম এটি করে:

এখানে চিত্র বর্ণনা লিখুন

(প্রতিটি ব্লক একটি ট্যাব)

{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}

এটি করতে পারে:

{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}

সুতরাং, আমি মনে করি ট্যাব এবং স্পেসগুলির বিষয় সম্পর্কে অনেক প্রশ্ন রয়েছে তবে এগুলির কোনওটিই কেবলমাত্র জাস্ট ওয়ার্কস সমাধান সরবরাহ করে না:

আসলে আমি ব্যবহার করছি:

set ai
set cindent
set cinoptions=(0,:0,u0,U0,g0)

আমি স্মার্ট ট্যাব প্লাগইনটি চেষ্টা করেছি যা ভালভাবে কাজ করছে বলে মনে হচ্ছে তবে আমি চেষ্টা করার পরে gg=Gআমি কিছু অদ্ভুত ত্রুটি পেয়েছি:

Error detected while processing function CtabRedoIndent..<SNR>12_CheckAlign:
line   11:
E108: No such variable: "b:ctab_lastalign"
Press ENTER or type command to continue
Error detected while processing function CtabRedoIndent:
line   10:
E170: Missing :endwhile

এই আলোচনাটি প্রীতিটি পুরানো বলে মনে হচ্ছে, সুতরাং এখন 2015, এর সাথে মোকাবিলা করার কোনও সরকারী সমাধান আছে?



আমার এটির জন্য ম্যাপিং নেই, কেবল একটি ধারণা ... তবে আপনি যখন ট্যাব কী টিপুন তখন আপনি ভিমকে ট্যাবগুলি সন্নিবেশ করানোর জন্য সেট করুন (আপনি যে প্রস্থের পছন্দ পছন্দ করুন), তবে আপনি যদি শিফট টাইপ করেন তবে বাস্তবে স্পেসগুলিতে একটি ট্যাব প্রসারিত করুন what -Tab? এই ধরণের সারিবদ্ধকরণ কি সরল করে তুলবে না?
ওয়াইল্ডকার্ড

(বিশেষ দ্রষ্টব্যঃ উপর একটা চমৎকার আলোচনা করেন "ট্যাব বনাম শূন্যস্থানের" এর "ধর্মীয় যুদ্ধ" ফোরামে কমিক xkcd জীবনোপভোগ করে নাও।)
ওয়াইল্ডকার্ড

উত্তর:


3

এটি সত্যই স্বয়ংক্রিয়ভাবে করা কঠিন। ভিম জানেন না "ইনডেন্টেশন" কী এবং "প্রান্তিককরণ" কী; এবং কিছু লোক সঠিকভাবে ইনডেন্টেশন এবং প্রান্তিককরণ গঠনের বিষয়ে একমত হতে পারে না।

বলা হচ্ছে, স্মার্ট ট্যাব প্লাগইনটি আপনি যা চান তা করতে ডিজাইন করা হয়েছে; আমি দেখতে পেয়েছি যে এটি সি ফাইলগুলির জন্য যুক্তিসঙ্গতভাবে ভাল কাজ করে তবে এর মধ্যে বেশ কয়েকটি ক্যাভেট রয়েছে; উদাহরণস্বরূপ এটি পাইথন ফাইলগুলি ভেঙে ফেলে এবং কখনও কখনও সি ফাইলগুলির জন্য কিছু অপ্রত্যাশিত (আমার জন্য, যাইহোক) কাজ করে।
উত্সটির দিকে তাকালে, আমি এটি 5 মিনিটের মধ্যে কীভাবে কাজ করে তা সত্যিই বুঝতে পারি না এবং এটি কিছু জিনিস ভেঙে দেয়, তার সাথে মিলিয়ে সাবধানে এগিয়ে যাওয়ার জন্য আপনাকে বলা উচিত ...


3

আপনি যে স্মার্ট ট্যাবগুলি উল্লেখ করেছেন সেগুলি যত তাড়াতাড়ি আসে is আমি প্রথমে আপনি যে একই ত্রুটিটি দিয়েছিলাম এবং ছেড়ে দিয়েছি তবে শেষ পর্যন্ত এটি সংশোধন করতে কয়েক মিনিট ব্যয় করেছে। নিম্নলিখিত প্যাচ প্রয়োগ করার চেষ্টা করুন:

--- ctab.vim.orig   2016-08-11 17:05:20.767275274 +0800
+++ ctab.vim    2016-08-11 17:15:20.039286525 +0800
@@ -221,7 +221,7 @@
       if a:line == line('.')
         let b:ctab_lastalign=a:line
       else
-        unlet b:ctab_lastalign
+        unlet! b:ctab_lastalign
       endif
       set ts=50
       set sw=50

পরে আমি দেখতে পেয়েছি যে কেউ স্মার্ট ট্যাব উইকি বিভাগে অনুরূপ সমাধানের পরামর্শ দিয়েছেন । হায় আফসোস, নতুন প্রকাশ হয়নি।


0

ভিমে ইনডেন্টেশনটি নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করে সম্পাদিত হয়

একক ফাইলের ইন্ডেন্টেশন সম্পাদনের জন্য স্ক্রিপ্ট

#!/bin/bash 
#Author: Ankit shah
#Enter file name to indent as argument
file=$1
vim $file -c "normal gg=G" -c "wq"
#Use expand command to turn tabs into spaces. Code uniform across different vim environment
expand -t 4 $file $file 

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