উত্সব পাঠ্য 2: চাহিদা অনুসারে শ্বেত স্থানটি ট্রিম করুন


101

আমি জানি যে সাব্লাইম টেক্সট 2 সংরক্ষণের পরে ফাইলগুলির পিছনে থাকা সাদা স্থানটিকে মুছতে পারে।

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

আমি জানতে চাই যে কোনও ফাইলের চাহিদা অনুযায়ী সাদা জায়গার ছাঁটাই কার্যকর করার জন্য কোনও আদেশ আছে কিনা "Activate trimming on save > Save file > Deactivate trimming"

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


4
এটি সরাসরি আপনার প্রশ্নের উত্তর দেয় না, তবে আপনি যদি গিট সংস্করণ নিয়ন্ত্রণের জন্য ব্যবহার করেন তবে এটি সাহায্য করতে পারে: $ mv .git/hooks/pre-commit.sample .git/hooks/pre-commitযা আমি এই ব্লগ থেকে পেয়েছি ।
পল ফিওরাভন্তি

97
সহযোদ্ধার গুগলদের জন্য: অ-অনডমেন্ড উপায় হ'ল এই সেটিংটি যুক্ত করা:"trim_trailing_white_space_on_save": true
ন্যাট গ্লেন

4
@ নেট গ্লেনের মন্তব্যের বর্ধন হিসাবে, নোট করুন যে মার্কডাউন থেকে হোয়াইটস্পেস ট্রিমিং করা আপনাকে সমস্যার মধ্যে ফেলতে পারে, বিশেষত যদি আপনি অন্য কারও ইচ্ছাকৃত সাদা স্থান ছাঁটাই করে এবং লক্ষ্য না করে প্রতিশ্রুতিবদ্ধ হন। আপনি Markdown.sublime-settingsদুর্ঘটনাগুলি সংরক্ষণ এবং প্রতিরোধের জন্য গ্লোবাল ট্রিমটি সম্পাদনা ও অক্ষম করতে পারেন ।
tehfoo

গুরুত্বপূর্ণ: যদি ces} বন্ধনীগুলির মধ্যে 1 টিরও বেশি লাইন থাকে তবে উপরের লাইনে আপনি একটি ',' রেখেছেন তা নিশ্চিত করুন বা সংরক্ষণ করার চেষ্টা করার সময় আপনি একটি ত্রুটি পাবেন।
slindsey3000

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

উত্তর:


70

সাবধানতা: এই প্লাগইনটি ব্যবহার করে সাব্লাইম পাঠ্যকে উল্লেখযোগ্যভাবে ধীর করা যায়

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

ট্রেলিং স্পেসগুলি হাইলাইট করুন এবং এটিকে একটি ফ্ল্যাশে মুছুন।

এসটি 2 ফাইল সংরক্ষণের পরে স্থানের স্থানগুলি স্বয়ংক্রিয়ভাবে মোছার একটি উপায় সরবরাহ করে। আপনার সেটিংসের উপর নির্ভর করে কেবল তাদের হাইলাইট করা এবং / অথবা তাদের হাতে মুছে ফেলা আরও সহজ হতে পারে। এই প্লাগইন ঠিক যে সরবরাহ করে!

ব্যবহার: "সম্পাদনা / ট্রেলিং স্পেস / মুছুন" ক্লিক করুন।

একটি কী বাঁধাই যুক্ত করতে, "পছন্দসমূহ / কী বাইন্ডিংস - ব্যবহারকারী" খুলুন এবং যুক্ত করুন:

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }

4
হ্যাঁ, আমি এই উত্তরটি সবচেয়ে পছন্দ করি ... আপগ্রেড নিরাপদ + কেবলমাত্র কাজ করে - ধন্যবাদ
রব

4
আমি লক্ষ্য করেছি যে এই প্লাগইনটি ইনস্টল করার পরে শব্দগুলি সন্ধানের জন্য সিআরটিএল + এফ বৈশিষ্ট্যটি ধীর হয়ে যায় তাই আমি এটি সরিয়ে দিয়েছি, একই অবস্থা আপনার সাথে ঘটে কিনা আপনি কি আমাকে বলতে পারবেন ?.
ডেনিসবট

Ctrl + Shift + T ইতিমধ্যে সাবলাইমে শেষ বদ্ধ ট্যাবটি খুলতে ব্যবহৃত হয়। তাই আমি Ctrl + Alt + T
পাওয়েল

6
সেখানে একটি বিকল্প বলা হয় trailing_spaces_trim_on_save, আপনি সেট করতে পারেন যা trueমধ্যে Preferences > Package Settings > Trailing Spaces > Settings - User। আপনি কীবোর্ড শর্টকাট বাঁধার পরিবর্তে এটি ব্যবহার করতে পারেন, আমি এটি আমার প্রয়োজনের জন্য ভাল বলে মনে করি
dspacejs

4
সতর্কতা: বড় ফাইলগুলির মাধ্যমে স্ক্রোল করা এই প্লাগইনটি ইনস্টল হওয়ার সাথে সাথে উল্লেখযোগ্যভাবে ধীর হয়ে যায়।
কম্পি

70

সাব্লাইম পাঠ্যের মধ্যে আমি অন-চাহিদা সমাধানের জন্য এই পদক্ষেপগুলি ব্যবহার করি:

  1. প্রতিস্থাপন করুন ...
  2. কি সন্ধান করুন: [ \t]+\n
  3. প্রতিস্থাপন: \n
  4. সমস্ত প্রতিস্থাপন

আপনি এর মাধ্যমে ফাইলগুলির একটি বড় সেটের জন্যও এটি করতে পারেন

  1. ফাইলগুলিতে সন্ধান করুন ...
  2. অনুসন্ধান: [ \t]+\n
  3. কোথায়:
  4. প্রতিস্থাপন: \n
  5. প্রতিস্থাপন

5
এই পদ্ধতিটি সর্বশেষটি ব্যতীত সমস্ত লাইনের জন্য কাজ করে।
জোনকম

4
@ জনকম শেষ পংক্তির বিষয়ে সঠিক। সাব্লাইম টেক্সট 3 এ, \tস্পেসগুলির সাথে মেলে না বলে মনে হয়, সুতরাং লিখিত হিসাবে উত্তরটি কেবল অনুসরণকারী ট্যাবগুলি সরিয়ে দেয়। আমি মনে করি আমি পছন্দ করি \s+\nতবে নোট করুন এটি খালি লাইনগুলিও মুছে ফেলে। ভাল হিসাবে আপনি আপনি যোগ করতে পারেন চূড়ান্ত লাইনে হোয়াইটস্পেস সরাতে চান তাহলে \s+\zতাই: (\s+\n|\s+\z)
canhascodez

4
([\t ]+\n|\s+\z)<- খালি লাইনগুলি সরিয়ে দেয় না।
canhascodez

4
সঠিক রেজেক্স হওয়া উচিত [ \t]+$এবং এটিকে কোনও কিছুই দিয়ে প্রতিস্থাপন করা উচিত ।
কোডস্মিত

30

পেছনের শ্বেত স্পেসগুলি অপসারণ করতে আপনি কেবল একটি রেজেক্স ব্যবহার করতে পারেন:

  1. প্রতিস্থাপন করুন ...
  2. কি সন্ধান করুন: [^\S\r\n]+$
  3. এর সাথে প্রতিস্থাপন করুন: খালি ছেড়ে দিন।
  4. 'সমস্ত প্রতিস্থাপন' ক্লিক করুন

[^\S\r\n]+$ হয় রেজেক্স "কমপক্ষে একটি সাদা স্থানের অক্ষরের জন্য (তাই ফাঁকা এবং ট্যাবগুলি কিন্তু নতুন লাইন নয়, দ্বিগুণ প্রত্যাখ্যান ব্যবহার করে) এর পরে লাইনটির শেষে"

নিয়মিত এক্সপ্রেশন সক্ষম করা আবশ্যক: রেগেক্স সক্ষম করুন হ'ল অনুসন্ধান সংলাপ


22

এখানে একটি দুর্দান্ত সহজ উপায় যা কোনও প্লাগইন বা সেটিংস ব্যবহার করে না এবং বেশিরভাগ পরিস্থিতিতে কাজ করে।

  1. মাল্টি-সিলেক্ট করুন এবং প্রতিটি লাইনের শেষে কার্সারটি সরান
  2. সিটিআরএল-শিফট ধরে রাখুন, বাম টিপুন, ডানদিকে
  3. লাইনের শেষে স্পেস এবং ট্যাবগুলি এখন নির্বাচন করা উচিত। মুছুন বা ব্যাকস্পেস টিপুন

    দ্রষ্টব্য - বিশেষ অক্ষর যেমন (এবং + এছাড়াও কেবল ফাঁকা স্থান নয়, এই বিন্দুতে লাইন শেষে নির্বাচন করা যেতে পারে।

কীভাবে সমস্ত লাইন একাধিক নির্বাচন করবেন:

একটি উপায় হ'ল মধ্যম মাউস কীটি উল্লম্বভাবে নির্বাচন করতে তারপরে এন্ড কীটি হিট করে যদি এটি ছোট নির্বাচন হয়।

হট-কীগুলি সহ:

  1. সিটিআরএল-এ (সমস্ত নির্বাচন করুন)
  2. CTRL-SHIFT-L (নির্বাচিত সমস্ত লাইনে কার্সার রাখুন)
  3. শেষ (লাইনের শেষে যান)

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

  1. (গুলি (রেজেক্স ব্যবহার করে)
  2. সমস্ত খুঁজুন ক্লিক করুন
  3. প্রতিটি লাইনের শেষে একাধিক কার্সার পেতে "শেষ" কী টিপুন

নমুনা পাঠ:

text and number     44  more text and a space  
text and number 44  more text and 2 tabs        
text and number 44  more text and no space or tab

text and number 44  more text after a line feed

4
দ্রষ্টব্য: শেষ অবস্থানে মাল্টি-কার্সার সহ সমস্ত লাইন হাইলাইট করতে আপনি CTRL + A ব্যবহার করতে পারেন তারপরে CTRL + SHIFT + L এর পরে এবং শেষে।
রিচার্ড মার্স্কেল - ড্র্যাকির

4
অন্যান্য ডেটাসেটে এই কৌশলটি ব্যবহার করে আমি দেখতে পেয়েছি যে এটি নিখুঁত নয়। সাব্লাইম টেক্সট বিশেষ চরিত্রগুলি যেমন) এবং + সহচরী স্থানগুলির পাশাপাশি হাইলাইট করবে। সাবধান থাকুন যদি কিছু ডেটা বিশেষ অক্ষরে শেষ হয় characters
শানেমগ্রে

4
এছাড়াও, রেজেক্সে এফওয়াইআই \sকেবল স্থানের অক্ষরের সাথেই মেলে না, কেবল ট্যাবস এবং নতুন লাইনগুলি (যেমন "হোয়াইটস্পেস") কেবল ফাঁকা জায়গা নয়। :)
রিচার্ড মার্স্কেল - ড্র্যাকির

13

আমি এখানে একটি আত্মঘাতীতা পেয়েছি: http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

আপনি প্যাকেজটি পরিবর্তন করতে পারেন

trim_trailing_white_space.py

ডিফল্ট প্যাকেজ ডিরেক্টরিতে অবস্থিত, এইভাবে:

import sublime, sublime_plugin

def trim_trailing_white_space(view):
    trailing_white_space = view.find_all("[\t ]+$")
    trailing_white_space.reverse()
    edit = view.begin_edit()
    for r in trailing_white_space:
        view.erase(edit, r)
    view.end_edit(edit)

class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        trim_trailing_white_space(self.view)

class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("trim_trailing_white_space_on_save") == True:
            trim_trailing_white_space(view)

class EnsureNewlineAtEof(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("ensure_newline_at_eof_on_save") == True:
            if view.size() > 0 and view.substr(view.size() - 1) != '\n':
                edit = view.begin_edit()
                view.insert(edit, view.size(), "\n")
                view.end_edit(edit)

এখন আপনি আপনার কীম্যাপ কনফিগারেশনে কমান্ডটি যুক্ত করতে পারেন:

{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }

আমার জন্য সর্বোত্তম সমাধান, আমি কেবল এটি করার জন্য একটি প্লাগইন যুক্ত করতে চাই না। ধন্যবাদ
puro_nervio

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