แก้ไข Sublime Text 2 end ลงท้าย?


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

1
ใช่. หลังจากบันทึกไฟล์มันก็ใช้ได้สำหรับฉันเช่นกัน
Pierre Guilbert

คำตอบ:


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

@acrespo คุณแน่ใจหรือไม่ว่าไฟล์การตั้งค่าอื่นไม่ได้ถูกเขียนทับ? ประเสริฐมีจำนวนมาก :) - หากคุณระบุหนึ่งในประเภทของการสิ้นสุดบรรทัดในการตั้งค่าเฉพาะไวยากรณ์ของคุณมันจะแทนที่การตั้งค่าของผู้ใช้ซึ่งจะแทนที่การตั้งค่าทั่วโลก
Leigh

10
การตั้งค่า "default_line_ending": "unix" ทำงานได้ดีกับไฟล์ใหม่ .. แต่ไม่ได้อยู่ในไฟล์ (เก่ากว่า) ที่มีอยู่ ไม่มีใครรู้วิธีการเปลี่ยนพฤติกรรมที่?
หมอผี

11
สิ่งนี้สามารถทำได้ด้วยตนเองเท่านั้นซึ่งจะมีประโยชน์มากหากเป็นแบบอัตโนมัติ คุณสามารถเปลี่ยนสิ่งนี้ตามที่เห็นในภาพด้านบน View-> Line Endings-> Unix @soothsayer
A Star

5
@soothsayer สำหรับไฟล์ที่มีอยู่เลือกข้อความทั้งหมดแล้วview-> ->line endings unixจากนั้นบันทึกเอกสาร
AGS

9

EditorConfig โครงการ ( Github ลิงค์ ) เป็นอีกหนึ่งโซลูชั่นที่ทำงานได้มาก คล้ายกับไฟล์ประเภท sftp-config.json และ. sublime-project / workspace เมื่อคุณตั้งค่าไฟล์. editorconfig ทั้งในโฟลเดอร์โครงการหรือในโฟลเดอร์หลักทุกครั้งที่คุณบันทึกไฟล์ภายในโครงสร้างไดเรกทอรีนั้นปลั๊กอินจะ ใช้การตั้งค่าในไฟล์ dot โดยอัตโนมัติและทำสิ่งต่าง ๆ ให้คุณโดยอัตโนมัติ ซึ่งบางส่วนกำลังบันทึกจุดสิ้นสุดบรรทัดสไตล์ Unix เพิ่มบรรทัดใหม่ท้ายไฟล์ลบช่องว่างออกและปรับการตั้งค่าแท็บ / พื้นที่เยื้องของคุณ


ตัวอย่างรวดเร็ว

ติดตั้งปลั๊กอิน EditorConfig ใน Sublime โดยใช้ Package Control จากนั้นวางไฟล์ที่มีชื่อ  .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

ขอบคุณนี่เป็นปัญหาของฉันฉันได้ติดตั้งปลั๊กอินนี้แล้วและมันกำลังทำการตั้งค่าผิดจากไฟล์. config
Luke Robertson

1

ไปยัง chnage จบบรรทัดจาก LF ถึง CRLF:

เปิด Sublime และทำตามขั้นตอน: -

1 กด Ctrl + shift + p จากนั้นติดตั้งบรรทัดชื่อแพคเกจรวมตอนจบ

จากนั้นกด Ctrl + shift + p อีกครั้ง

2 ในช่องใส่ข้อความประเภท "Line unify ลงท้าย"

3 กด Enter สองครั้ง

อาจประเสริฐประเสริฐในบางครั้งและเป็นผลจะเปลี่ยนปลายสายจาก LF เป็น CRLF


1

วิธีที่ง่ายที่สุดในการแก้ไขไฟล์ทั้งหมดของโครงการในคราวเดียว (แบบแบทช์) คือผ่านแพ็คเกจUnify Line Endings :

  1. Ctrl+ Shift+ Pประเภทสถาบัน + เลือกติดตั้งแพคเกจ
  2. ประเภทปลายสาย + เลือกสาย Endings Unify
  3. เมื่อติดตั้งแล้วCtrl+ Shift+ P+ ชนิดปลาย + เลือกสาย Endings Unify
  4. หรือ (แทน 3) สำเนา:

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

    ไปยังผู้ใช้ array (บานหน้าต่างด้านขวาหลังจากเปิด[) ในการตั้งค่า -> keybindings + กดCtrl+ +AltL

ตามที่กล่าวไว้ในคำตอบอื่น :

  • อักขระCarriage Return ( CR ) ( 0x0D, \r) [... ] ระบบปฏิบัติการ Macintosh รุ่นแรก (OS-9 และรุ่นก่อนหน้า)

  • อักขระLine Feed ( LF ) ( 0x0A, \n) [... ] ระบบที่ใช้ UNIX (Linux, Mac OSX)

  • ลำดับ End of Line ( EOL ) ( 0x0D 0x0A, \r\n) [... ] (ไม่ใช่ Unix: Windows, Symbian OS)

หากคุณมีnode_modules , buildหรือโฟลเดอร์อื่นที่สร้างขึ้นโดยอัตโนมัติให้ลบออกก่อนที่จะรันแพ็กเกจ

เมื่อคุณเรียกใช้แพคเกจ:

  1. คุณจะถูกถามที่ด้านล่างเพื่อเลือกนามสกุลไฟล์ที่จะค้นหาผ่านรายการที่คั่นด้วยเครื่องหมายจุลภาค (พิมพ์เฉพาะส่วนที่คุณต้องการเพื่อเพิ่มความเร็วในการเปลี่ยนเช่นjs,jsx)
  2. แล้วคุณจะถามว่าสายการป้อนข้อมูลสิ้นสุดกับการใช้งานเช่นถ้าคุณต้องการLF\nประเภท
  3. กดENTERและรอจนกว่าคุณจะเห็นหน้าต่างแจ้งเตือนกับLineEndingsUnify สมบูรณ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.