หยุด Visual Studio จากการผสมส่วนท้ายบรรทัดในไฟล์


124

เมื่อเปิดไฟล์ตามข้อความใน Visual Studio 2010 จากนั้นจะเขียนการแก้ไขของฉันด้วย CRLF แทนรูปแบบการสิ้นสุดบรรทัดของไฟล์ต้นฉบับ ฉันจะหยุด VS ไม่ให้ทำสิ่งนี้ได้อย่างไร ตัวแก้ไขที่เหมาะสมเพียงครึ่งเดียวควรมีความสามารถนี้

สิ่งที่แย่กว่านั้นคือตั้งแต่ VS เขียนไฟล์ด้วยบางส่วนใน CRLF จากนั้น (เมื่อเปิดไฟล์อีกครั้ง) จะแสดงกล่องโต้ตอบเพื่อขอให้ฉันแปลงไฟล์สิ้นสุดบรรทัด


ลองใช้ Add-in นี้: Strip'em
ทำให้

8
คุณอาจต้องการโหวตให้: visualstudio.uservoice.com/forums/121579-visual-studio/…
Jon Watte

1
@JonWatte กำลังอยู่ระหว่างการตรวจสอบ ณ วันที่ 28 เมษายน 2016
Chris Marisic

2
วันนี้ฉันย้ายออกจาก. NET รู้สึกเบื่อหน่ายกับ MS ที่ดูเหมือนจะเปลี่ยนโฟกัสทุกฤดูกาลและละเลยปัญหาง่ายๆเช่นนี้ ดีใจที่เห็นพวกเขาแก้ไขได้ในที่สุด
Brett Ryan

คำตอบ:


84

บนเมนูไฟล์ให้เลือกตัวเลือกการบันทึกขั้นสูงคุณสามารถควบคุมได้ที่นั่น

แก้ไข: นี่คือเอกสารคุณควรเปิดไฟล์ก่อน


5
ฉันไม่มีรายการเมนูนี้ในการติดตั้งขั้นสูงสุด VS2010 ของฉัน
Palantir

6
ฉันมีการตั้งค่านี้ใน VS2010 Ultimate อย่างไรก็ตามตัวเลือกนี้ไม่ใช่ตัวเลือกถาวรทั่วโลกและใช้ได้กับเซสชันตัวแก้ไขปัจจุบันเท่านั้น สิ่งที่ฉันต้องการคือให้ VS เคารพต่อบรรทัด - ท้ายไฟล์ที่เปิดอยู่ในปัจจุบันเมื่อแก้ไขไฟล์
Brett Ryan

2
ไฟล์ + บันทึกเป็นคลิกที่ลูกศรบนปุ่มบันทึก สิ่งเดียวกัน แต่เฉพาะกับไฟล์
Hans Passant

13
สำหรับผู้ที่ไม่เห็นคำสั่งในFileเมนูคุณอาจต้องไปTools, Customize, Commandsแท็บMenu Bar: File, Add Command..., File, Advanced Save Options..., ,Ok Closeตอนนี้คุณควรมีตัวเลือก
davidg

92
วิธีนี้ไม่ได้ช่วยแก้ปัญหาได้จริงเพราะคุณต้องเลือกตัวเลือกนั้นทุกครั้งที่คุณประหยัด นอกจากนี้ยังหมายความว่าคุณต้องเลือกตัวเลือกการสิ้นสุดบรรทัดทุกครั้งที่คุณบันทึก พฤติกรรมที่เหมาะสมซึ่งโปรแกรมแก้ไขข้อความอื่น ๆ รองรับคือการตรวจจับรูปแบบเมื่อโหลดและบันทึกในรูปแบบนั้นเมื่อบันทึก ไม่มีทางที่จะทำให้ VS2010 ทำ AFAICT ได้และนั่นก็น่าเสียดาย
Jon Watte

70

ใน Visual Studio 2015 (สิ่งนี้ยังคงถือเป็นค่าเดิมในปี 2019) ตรวจสอบการตั้งค่า:

เครื่องมือ> ตัวเลือก> สิ่งแวดล้อม> เอกสาร> ตรวจสอบการสิ้นสุดบรรทัดที่สอดคล้องกันเมื่อโหลด

VS2015 จะแจ้งให้คุณแปลงส่วนท้ายบรรทัดเมื่อคุณเปิดไฟล์ที่ไม่สอดคล้องกันดังนั้นสิ่งที่คุณต้องทำคือเปิดไฟล์เลือกตัวเลือกที่ต้องการจากพรอมต์และบันทึกอีกครั้ง


4
ขณะนี้อาจจะเป็นประโยชน์ในขณะนี้ทราบว่าคำถามที่ถูกแท็กภาพสตูดิโอ 2010
dakab

4
ปัญหาเกี่ยวกับตัวเลือกนี้คือไม่ได้บอกคุณว่าส่วนท้ายบรรทัดใดที่พบบ่อยที่สุดในเอกสารดังนั้นฉันต้องเปิดเอกสารใน Notepad ++ ก่อนจากนั้นเลือกตัวเลือกที่ถูกต้องเท่านั้น นอกจากนี้เป็นปัญหาการประหยัดไม่ใช่ปัญหาการโหลด
Strategy Thinker

3
ปัญหาที่ฉันพบคือฉันกำลังเปิดไฟล์โดยมีการลงท้าย LF จากนั้นทุกบรรทัดที่ฉันแก้ไขหรือเพิ่มจะบันทึกด้วยตอนจบ CR LF เมื่อฉันเปิดไฟล์อีกครั้งมันจะถามฉันว่าฉันต้องการเปลี่ยนจุดสิ้นสุดบรรทัดที่ไม่สอดคล้องกันเป็นอย่างไรและฉันจะเลือก LF จากนั้นกระบวนการจะทำซ้ำ นี่คือวิธีที่ฉันแก้ไข: stackoverflow.com/a/47318778/2701911
FragmentalStew

วิธีนี้ไม่สามารถแก้ไขปัญหาในการคัดลอกวางข้อความที่มีการลงท้ายบรรทัดผสม คุณต้องเปิดไฟล์อีกครั้งเพื่อเรียกใช้การตรวจสอบ
Andry

22

ด้วย VS2010 + มีทางออกปลั๊กอิน: สาย Endings Unifier

เมื่อติดตั้งปลั๊กอินแล้วคุณสามารถคลิกขวาที่ไฟล์และโฟลเดอร์ในตัวสำรวจโซลูชันและเรียกใช้รายการเมนู Unify Line Endings in this file

การกำหนดค่าสำหรับสิ่งนี้สามารถใช้ได้ผ่านทาง

Tools -> Options -> Line Endings Unifier

รายการนามสกุลไฟล์เริ่มต้นที่รวมอยู่ค่อนข้างแคบ:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt;

อาจต้องการใช้สิ่งต่างๆเช่น:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config

11
นี่เป็นปลั๊กอินจริง ๆและไม่ได้ติดตั้งโดยค่าเริ่มต้น
null

1
@null ขอบคุณที่ชี้ให้เห็นว่านี่คือสิ่งที่ฉันกำลังมองหา ฉันอัปเดตคำตอบเพื่อให้สะท้อนสิ่งเหล่านี้ได้ดีขึ้น
Chris Marisic

13

ดูhttp://editorconfig.orgและhttps://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2017

  1. หากไม่มีอยู่ให้เพิ่มไฟล์ใหม่ชื่อ. editorconfig สำหรับโปรเจ็กต์ของคุณ

  2. จัดการการกำหนดค่าตัวแก้ไขเพื่อใช้พฤติกรรมที่คุณต้องการ

ฉันชอบเว้นวรรคมากกว่าแท็บและ CRLF สำหรับไฟล์โค้ดทั้งหมด
นี่คือ. editorconfig ของฉัน

# http://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.tmpl.html]
indent_size = 4

[*.scss]
indent_size = 2 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.