মহৎ পাঠ 3, স্পেসগুলি ট্যাবে রূপান্তর করুন


192

আমি জানি এটি সম্পর্কে অনেকগুলি পোস্ট রয়েছে তবে আমি এটি কাজ করতে পারিনি।
আমি কোডিংয়ের জন্য ট্যাব ব্যবহার করি। সর্বদা ফাঁকা স্থানগুলিকে ট্যাবে রূপান্তর করার জন্য কি কোনও উপায় আছে? আই ওপেন এবং সেভ ফাইলগুলিতে? কেউ ধারণা পেয়েছেন?

// সম্পাদনা:
আমার ইচ্ছাটি এটি স্বয়ংক্রিয়ভাবে করা ! -> খুলুন, সংরক্ষণ করুন বা ফ্লাইতে
কীভাবে কেউ কীভাবে জানেন?


আমি চেষ্টা এই :

import sublime, sublime_plugin, os

class ExpandTabsOnSave(sublime_plugin.EventListener):
  # Run ST's 'expand_tabs' command when saving a file
  def on_pre_save(self, view):
    if view.settings().get('expand_tabs_on_save') == 1:
      view.window().run_command('expand_tabs')

এবং এখানে আমার ব্যবহারকারীর সেটিংস:

{
    "auto_complete_selector": "source - comment, meta.tag - punctuation.definition.tag.begin",
    "auto_indent": true,
    "detect_indentation": true,
    "draw_white_space": "all",
    "ensure_newline_at_eof_on_save": true,
    "expand_tabs_on_save": true,
    "font_face": "SourceCodePro-Regular",
    "font_size": 10,
    "format_on_save": true,
    "ignored_packages":
    [
        "Vintage"
    ],
    "indent_to_bracket": true,
    "open_files_in_new_window": false,
    "smart_indent": true,
    "tab_size": 4,
    "translate_tabs_to_spaces": false,
    "trim_automatic_white_space": true,
    "trim_trailing_white_space_on_save": true,
    "use_tab_stops": false,
    "word_wrap": false
}

আপনার পোস্ট করা প্লাগইনটি আসলে আমার জন্য এসটি 3 এ ঠিকঠাক কাজ করছে, 3059 বিল্ড করছে you আপনি কি কনসোলটি খুলতে পারবেন Ctrl + ~এবং দেখুন যে এটি আপনাকে কোনও প্লাগইন ত্রুটি দিচ্ছে কিনা? এবং যদি আপনার প্যাকেজ নিয়ন্ত্রণ ইনস্টল করা থাকে তবে আপনি কি ExpandTabsOnSaveইনস্টলড প্লাগইন হিসাবে তালিকাভুক্ত কিনা তা দেখতে পাচ্ছেন ?
অ্যাঙ্গারসন

উন্মাদ এক, ইনস্টল করা আছে বলে মনে হচ্ছে (তালিকা প্যাকেজগুলির নীচে তালিকাভুক্ত) এবং কনসোলে আমি কোনও ত্রুটি খুঁজে পাচ্ছি না :-(
ক্রিস

print("debug")প্লাগইনটি সেভ করছে কি না সেদিকে চালিত হচ্ছে কিনা তা দেখার জন্য যোগ করতে বা অনুরূপ করার চেষ্টা করুন।
অ্যাঙ্গারসন

ওম, এটির কাজ! উইন্ডোজ মেশিনে ভুল ডিরেক্টরি ছিল, প্যাকেজগুলি ব্যবহারকারী /.../ এ তালিকাভুক্ত হয়েছে অ্যাপডেটা / রোমিং / সাব্লাইম টেক্সট 3 / প্যাকেজগুলি অনেক ধন্যবাদ!
ক্রিস

কমান্ড চালানোর আগে আপনি সেই দৃশ্যটি উইন্ডোটির সক্রিয় দর্শন হিসাবে সেট করেছেন তা নিশ্চিত হন। খুব সম্ভবত নাও হতে পারে, তবে আপনি এটি পোস্ট করার সাথে সাথে আপনি এটি সংরক্ষণ করার চেষ্টা করছেন তার চেয়ে আলাদা পৃষ্ঠার ট্যাবগুলি প্রসারিত করা সম্ভব। এমনকি ফোকাস ভিউ দিয়েও, আমি মনে করি এটির একটি ভুল ফাইলটিতে সংরক্ষণ করার সম্ভাবনা রয়েছে তবে কমপক্ষে আপনি ঝুঁকি হ্রাস করতে পারেন।
স্কুরোদা

উত্তর:


377

আপনার সাব্লাইম পাঠ্য উইন্ডোর নীচে ডানদিকে কোণায়, আপনি একটি ইন্ডেন্টেশন সূচক দেখতে পাবেন যা দেখতে অনেকটা দেখতে:

ইনডেন্টেশন বিকল্প মেনু

এটি ক্লিক করা আপনার ইনডেন্টেশন পছন্দগুলি সামঞ্জস্য করার বিকল্পগুলির সাথে একটি মেনু খুলবে এবং আরও গুরুত্বপূর্ণ Convert Indentation to Tabs/Spaces,।

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

একই মেনু নীচে তালিকাভুক্ত করা হয় View -> Indentation


42
হ্যা আমি জানি. আমার ইচ্ছা এই স্বয়ংক্রিয়ভাবে করা ... কোন ধারণা?
ক্রিস

2
@ chris ツ আহ। এটিকে আরও স্পষ্টভাবে সুস্পষ্ট করার জন্য আপনি কি আপনার প্রশ্নটির পুনরায় ফর্ম্যাট করতে পারেন? আমি আপনার অর্থটি মিস করেছি, তাই অন্যরাও সম্ভবত এটি করতে পারে।
অ্যাঞ্জারসন

আমার নীচে সেই স্ট্যাটাস বার নেই - আমি এটি কীভাবে পাব?
ভূ

1
আর এই সমগ্র ফাইলে নেই এবং করতে না শুধুমাত্র একটি নির্বাচন সম্পন্ন করা হবে।
not2qubit

খুব সুন্দর. আমি সমস্ত নির্বাচন করতে 'কমান্ড-এ' করেছি, 'কমান্ড- [' আন-ইনডেন্ট করতে, তারপরে ফাইলটি ঠিক করার জন্য 'সম্পাদনা> লাইন> রিইন্ডেন্ট'। আমি নিশ্চিত এটি একটি ম্যাক্রো মধ্যে নির্মিত যেতে পারে।
ব্রুকস ডুবুইস

130

সাব্লাইম উইন্ডোর নীচে, আপনি আপনার ট্যাব / স্থান সেটিংস উপস্থাপনকারী কিছু দেখতে পাবেন।

তারপরে আপনি গুচ্ছ বিকল্পগুলির একটি ড্রপডাউন পাবেন। আপনার পছন্দের বিকল্পগুলি হ'ল:

  • স্থানগুলিতে স্থান পরিবর্তন করুন
  • ইন্ডেন্টেশনটিকে ট্যাবগুলিতে রূপান্তর করুন

সম্পূর্ণ নথিতে আপনার কাঙ্ক্ষিত সেটিংটি প্রয়োগ করুন।

আশাকরি এটা সাহায্য করবে.


2
আমি চাই যে আমি যে ফাইলগুলি খোলি সেগুলির জন্য এটি লোড এবং স্বয়ংক্রিয়ভাবে ... মানে: ইনডেন্টেশন স্পেসগুলি ট্যাবগুলিতে রূপান্তর। এটি স্বয়ংক্রিয়ভাবে চালানো হবে :-)
ফিলিপ ওভারটোনসিংগার রিডলো

1
আমি আপনাকে শুনেছি। আমি ট্যাবগুলিকে প্রাধান্য দিচ্ছি তবে কেন আমি স্পেস দিয়ে প্রচুর কোড লেখা হয় তা বুঝতে পারি। স্পেস সহ, IDE এর মধ্যে কোনও অসঙ্গতি থাকবে না - একটি স্থান হল একটি স্থান। ট্যাবগুলি IDE এর মধ্যে চলক সংখ্যক ফাঁকা স্থান নিতে পারে এবং কোডটিকে অদ্ভুত দেখায়।
এরিয়ার 21

হ্যালো @ গ্রীন - এটি সম্পর্কে কি কাজ করে না? আসুন এটি করা যাক ...
এরিয়ার

80

আপনি ইতিমধ্যে জেনে থাকতে পারেন, আপনি এখানে আপনার ইনডেনশন সেটিংস কাস্টমাইজ করতে পারেন Preferences.sublime-settings, উদাহরণস্বরূপ:

"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false

এটি আপনার সম্পাদককে 4 টি প্রশস্ত প্রশস্ত প্রশস্ত ট্যাবগুলি ব্যবহার করার জন্য সেট করবে এবং আপনি যে কোনও ফাইল সম্পাদনা করছেন তার সূক্ষ্মতার সাথে মেলে তুলতে সাবলাইমের কারণ হয়ে যায় default এই সেটিংসের সাহায্যে ফাইলটি পুনরায় প্রবেশের ফলে ট্যাবগুলির সাথে কোনও স্থান ফাঁকা হয়ে যাবে।

কোনও ফাইল খোলার সময় যতক্ষণে স্বয়ংক্রিয়ভাবে পুনরায় ইন্ডেন্টিং করা যায়, ততটা সহজ নয় (তবে সম্ভবত হোয়াইটস্পেস ফাইলের বিচ্ছিন্নতার কারণে ধ্বংসাত্মক ক্ষয়ক্ষতি বদলানোর কারণে এটি দুর্দান্ত ধারণা নয়)। কর্মের আরও ভাল কোর্স হতে পারে: আপনি পুনরায় ইনডেনশনের জন্য একটি শর্টকাট মানচিত্র করতে পারেন এবং ঠিক করতে পারেন যখন আপনি একটি নতুন ফাইল খোলেন যা ফিক্সিংয়ের প্রয়োজন।


13

আপনি এই সমস্যাটি সমাধান করার জন্য কমান্ড প্যালেটটি ব্যবহার করতে পারেন।

পদক্ষেপ 1: Ctrl + Shift + P(কমান্ড প্যালেট সক্রিয় করতে)

পদক্ষেপ 2: "ইন্ডেন্টেশন" টাইপ করুন, নির্বাচন করুন "Indentation: Convert to Tabs"


1
চমৎকার। ধন্যবাদ.
আরজে

সব থেকে ভালো সমাধান. ধন্যবাদ!
ম্যাথু কে

7

আমার ক্ষেত্রে, এই লাইনটি সমস্যার সমাধান করেছে:

"translate_tabs_to_spaces": false

4

এখানে একটি সমাধান রয়েছে যা আপনি যখনই কোনও ফাইল খুলবেন তখন স্বয়ংক্রিয়ভাবে ট্যাবগুলিতে রূপান্তরিত হবে।

এই ফাইলটি তৈরি করুন .../Packages/User/on_file_load.py:

import sublime
import sublime_plugin

class OnFileLoadEventListener(sublime_plugin.EventListener):

    def on_load_async(self, view):
        view.run_command("unexpand_tabs")

বিঃদ্রঃ. এটি ফাইলটি খোলার পরে এটি সংরক্ষণ না করা অবস্থায় নিয়ে যায়, এমনকি যদি কোনও স্পেস-টু-ট্যাব রূপান্তর না ঘটে ... সম্ভবত কেউ কেউ এর সমাধানের জন্য সাহায্য করতে পারে ...


আমি মনে করি আপনি বোঝাতে চেয়েছিলেন .../Packages/User/on_file_load.py, তা নয়.php
প্রণব নূতালাপাতি

@ প্রণব নুতলাপতি তা ধরার জন্য ধন্যবাদ।
TheStoryCoder

হ্যা অবশ্যই. সমস্যা নেই.
প্রণব নূতালাপাতি

on_loadপরিবর্তে চেষ্টা করুন on_load_async
পেড্রো গেস

3

সংরক্ষণের স্থানগুলিকে স্বয়ংক্রিয়ভাবে ট্যাবগুলিতে রূপান্তর করতে , নীচের পাইথন স্ক্রিপ্টটিকে "ne SUBLIME_HOME $ \ প্যাকেজস \" এর মধ্যে "UnexpandTabsOnSave" নামে একটি নতুন নির্মিত সাবফোল্ডারে যুক্ত করুন:

import sublime, sublime_plugin, os

class ConvertSpacesToTabsOnSave( sublime_plugin.EventListener ):
  # Run Sublime's 'unexpand_tabs' command when saving any file
  def on_pre_save( self, view ):
    view.window().run_command( 'unexpand_tabs' )

প্রাথমিক সম্পদের জন্য আপনাকে ধন্যবাদ।


0

আপনি সমস্ত প্রকল্প ফাইলের ফাঁকে ফাঁকে ট্যাবগুলি এর দ্বারা প্রতিস্থাপন করতে পারেন:

  1. একটি প্রতিস্থাপন করছেন Ctrl+Shif+F
  2. রেজেক্স অনুসন্ধান সেট করুন ^\A(.*)$
  3. ডিরেক্টরি সেট করুন Your dir
  4. দ্বারা পরিবর্তীত \1

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

  5. এর ফলে সমস্ত প্রকল্পের ফাইলগুলি তাদের বাফারটিকে নোংরা হিসাবে চিহ্নিত করে খোলা হবে। এটির সাহায্যে, আপনি এখন সাদা স্থান অনুসরণ করে সমস্ত ফাইল ছাঁটাই করতে এবং প্রতিটি ফাইলের শেষে একটি নতুন লাইন নিশ্চিত করতে, এই পরবর্তী সাবলাইম পাঠ্য সেটিংসগুলি optionচ্ছিকভাবে সক্ষম করতে পারবেন।

    আপনি মেনুতে Preferences -> Settingsগিয়ে এই সেটিংসটিকে আপনার সেটিংস ফাইলে যুক্ত করে সক্ষম করতে পারেন :

    1. "ensure_newline_at_eof_on_save": true,
    2. "trim_trailing_white_space_on_save": true,
  6. মেনুতে View -> Show Console (Ctrl+`)গিয়ে কমান্ডটি চালিয়ে সাব্লাইম টেক্সট কনসোলটি খুলুন : import threading; threading.Thread( args=(set(),), target=lambda counterset: [ (view.run_command( "expand_tabs", {"set_translate_tabs": True} ), print( "Processing {:>5} view of {:>5}, view id {} {}".format( len( counterset ) + 1, len( window.views() ), view.id(), ( "Finished converting!" if len( counterset ) > len( window.views() ) - 2 else "" ) ) ), counterset.add( len( counterset ) ) ) for view in window.views() ] ).start()
  7. এখন, মেনুতে গিয়ে সমস্ত পরিবর্তিত ফাইল সংরক্ষণ করুন File -> Save All

0

আপনার যদি ম্যাকটি কেবল সহায়তা বিকল্প ব্যবহার করে (সাধারণত ম্যাকের মেনু বারের সর্বশেষ বিকল্প) তবে টাইপ করুন: "ট্যাব ইন্ডেন্টেশন" এবং একটি ট্যাব ইন্ডেন্টেশনের প্রস্থ চয়ন করুন

তবে সাধারণত, আপনি এই পথটি অনুসরণ করতে পারেন: দেখুন -> ইনডেন্টেশন



-1

এটি সংরক্ষণে স্বয়ংক্রিয়ভাবে কীভাবে করবেন তা এখানে: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save

দুর্ভাগ্যক্রমে প্যাকেজটি প্যাকেজ ম্যানেজার থেকে ইনস্টল করার সময় কাজ করছে না।


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