Coder Social home page Coder Social logo

詢問 space 和 tab 轉換工具 about ama HOT 6 OPEN

puff-tw avatar puff-tw commented on June 12, 2024
詢問 space 和 tab 轉換工具

from ama.

Comments (6)

ascendbruce avatar ascendbruce commented on June 12, 2024 2

ruby 方面可以試試看 rubocop

裝好以後,開一個只抓 indent 相關的 rubocop config file

AllCops:
  DisabledByDefault: true

Layout/IndentationWidth:
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
  Enabled: true
  Width: 2

Layout/Tab:
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
  Enabled: true

在 command line 執行

rubocop --auto-correct

command line 的參數說明在 http://rubocop.readthedocs.io/en/latest/basic_usage/

但是你的 project 原本的 style 不固定的話,他可能會更正太多東西,所以你可能還要微調其他幾個參數例如

  • Layout/CaseIndentation
  • Layout/AccessModifierIndentation
  • Layout/CommentIndentation
  • ...

總之如果不滿意自動更正的結果,到 http://rubocop.readthedocs.io/en/latest/cops/#layout 找所有的 indent, space 相關的參數並調整 config

from ama.

yutin1987 avatar yutin1987 commented on June 12, 2024 2

如果只是 js 我會建議你使用 eslint -fix ,所有的 code style 一次解決

https://eslint.org/docs/user-guide/command-line-interface

from ama.

aryung avatar aryung commented on June 12, 2024 1

https://stackoverflow.com/questions/11094383/how-can-i-convert-tabs-to-spaces-in-every-file-of-a-directory

可以用 linux 的 find 和 sed 組合來解決 ?

from ama.

puff-tw avatar puff-tw commented on June 12, 2024

@aryung 我懂你的意思,就是單純使用正規表示法的 pattern 來取代。
你可以看我上面的測試附件,不固定的 space,那麼我 pattern 就要寫的更彈性才能符合需求。

from ama.

aryung avatar aryung commented on June 12, 2024

@puff-tw 測試文件可以補一下你想要變成的結果嗎?

from ama.

puff-tw avatar puff-tw commented on June 12, 2024

@aryung

請參考最上面的結果附件

規則

  • 1個 tab 視為 2個 space
  • 2個space 視為 2個 space
  • 不足2個space 視而不見
  • 只限每行開頭的縮排,碰到文字後面有space、tab 不可以取代

範例

1個space 1個tab 變2個space
2個space 1個tab 變4個space
3個space 1個tab 變4個space
4個space 1個tab 變6個space
5個space 1個tab 變6個space
1個tab 1個space 變2個space
1個tab 2個space 變4個space
1個tab 3個space 變4個space
1個tab 4個space 變6個space
1個tab 5個space 變6個space

from ama.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.