Sublime Text 2の行末を修正しますか?


177

これが私のSettings - User設定です:

{
    "auto_indent": true,
    "color_scheme": "Packages/Color Scheme - Default/Twilight.tmTheme",
    "default_line_ending": "LF",
    "detect_indentation": true,
    "font_size": 10.0,
    "ignored_packages":
    [
        "Vintage"
    ],
    "indent_to_bracket": false,
    "smart_indent": true,
    "tab_size": 4,
    "translate_tabs_to_spaces": true,
    "trim_automatic_white_space": true,
    "use_tab_stops": true
}

default_line_endingオプションへのコメントは言う: default_line_endingオプションへのコメント

新しいファイルを作成するとき、ここで終わる行を確認します。

行末チェック

ご覧のとおり、まだWindowsです...アイデアはありますか?


「Unix」をクリックして閉じてから、もう一度開いてみましたか?
Preet Kukreti

@PreetKukretiはい。再び開いた後、それは再び「Windows」です。現在のファイルでのみ機能し、新しいファイルでは機能しません。
mintobit

1
@ an1zhegorodov以前にファイルを保存しましたか?それは私のために働いた...
charlysisto 2013

1
うん。ファイルを保存した後、それも私のために働いた。
Pierre Guilbert 14年

回答:


199

コメントは述べています

// Determines what character(s) are used to terminate each line in new files.
// Valid values are 'system' (whatever the OS uses), 'windows' (CRLF) and
// 'unix' (LF only).

設定しています

"default_line_ending": "LF",

設定する必要があります

"default_line_ending": "unix",


1
私は同じ問題を抱えていますが"default_line_ending": "unix"、正しく設定していますが、なぜ地獄が機能しないのかわかりません!それは私を怒らせる!私は少し調べましたが、どうやら有用な修正はありません。
acrespo 2013年

@acrespo別の設定ファイルで上書きされていませんか?Sublimeにはたくさんあります:)-構文固有の設定で終わる1種類の行を指定した場合、ユーザー設定をオーバーライドし、グローバル設定をオーバーライドします
Leigh

10
"default_line_ending": "unix"を設定すると、新しいファイルでは正常に機能しますが、既存の(古い)ファイルでは機能しません。誰かがその動作を変更する方法を知っていますか?
占い師

11
これは手動でのみ実行できます。これが自動化されている場合は非常に役立ちます。上の画像にあるように、これを変更できます。ビュー
スター

5
@soothsayer、既存のファイルの場合は、すべてのテキストを選択してからview-> line endings-> unix。次に、ドキュメントを保存します。
AGS

9

EditorConfigプロジェクトGithubのリンクは)別の非常に有効なソリューションです。sftp-config.jsonおよび.sublime-project / workspaceの種類のファイルと同様に、プロジェクトフォルダーまたは親フォルダーに.editorconfigファイルを設定すると、そのディレクトリ構造内にファイルを保存するたびに、プラグインはドットファイルの設定を自動的に適用し、いくつかの異なることを自動化します。Unixスタイルの行末の保存、ファイルの終わりの改行の追加、空白の削除、インデントタブ/スペースの設定の調整などがあります。


簡単な例

Editor Controlプラグインをパッケージコントロールを使用してSublimeにインストールします。次に.editorconfig、次の内容で、親ディレクトリ(ホームまたは必要に応じてルートも)に名前が付けられたファイルを配置します  。

[*]
end_of_line = lf

それでおしまい。この設定では、そのディレクトリ構造内にファイルを保存するたびに、Unixスタイルの行末が自動的に適用されます。もっとクールなことができます。不要な末尾の空白を削除するか、各ファイルの末尾に末尾の改行を追加します。詳細については、https//github.com/sindresorhus/editorconfig-sublimeにあるサンプルファイルを参照してください

# editorconfig.org
root = true

[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

このroot = true行は、EditorConfigが.editorconfigディレクトリ構造の上位レベルで他のファイルを検索しないことを意味します。


攻撃性が不十分です。プラグインが必要なのは、crlfを持つファイルにつながり、それぞれに顔をパンチする人々のチェーンを識別するためです。そして、それをlfで保存します。
ArtOfWarfare 2017年

おかげで、これは私の問題でした、私はこのプラグインをインストールし、それは.configファイルから間違った構成を取得していました
Luke Robertson

1

行末をLFからCRLFに変更するには:

Sublimeを開き、次の手順に従います。

1 Ctrl + shift + pを押して、パッケージ名をインストールし、行末を統一します

もう一度Ctrl + shift + pを押します

空白の入力ボックスに「Line unify ending」と入力して2

3 Enterを2回押す

Sublimeがときどきフリーズすることがあり、その結果、行末がLFからCRLFに変更されます


1

プロジェクトのすべてのファイルを一度に変更する最も簡単な方法(バッチ)は、Line Endings Unifyパッケージを使用する方法です。

  1. Ctrl+ Shift+ P型の +は、選択したパッケージをインストールします
  2. line endと入力し、Line Endings Unifyを選択します。
  3. インストールしたら、Ctrl+ Shift+ P+ endと入力し、Line Endings Unifyを選択します。
  4. または(3の代わりに)コピー:

    {
     "keys": ["ctrl+alt+l"],
     "command": "line_endings_unify"
    },
    

    Preferences-> KeyBindingsUser配列(開いた後の右側のペイン[)に+ + +を押します。CtrlAltL

別の答えで述べたように:

  • キャリッジリターン(CR)文字(0x0D\r)[...]初期のMacintoshオペレーティングシステム(OS-9以前)。

  • 改行(LF)文字(0x0A\n)[...] UNIXベースのシステム(Linux、Mac OSX)

  • 行末EOL)シーケンス(0x0D 0x0A\r\n)[...](非UNIX:Windows、Symbian OS)。

あなたが持っている場合はnode_modulesビルドまたはその他の自動生成されたフォルダを、実行する前にそれらを削除し、パッケージを。

パッケージを実行すると:

  1. 下部で、カンマ区切りのリストから検索するファイル拡張子を選択するよう求められます(置換を高速化するために必要なファイル拡張子のみを入力します。例:js,jsx)。
  2. 次に、たとえばLF タイプが必要な場合など、どの入力ラインで終了するかを尋ねられます。\n
  3. を押しENTERLineEndingsUnify Completeの警告ウィンドウが表示されるまで待ちます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.