จะหยุด Gedit, Gvim, Vim, Nano จากการเพิ่มอักขระขึ้นบรรทัดใหม่ได้อย่างไร


42

บางครั้งฉันต้องการให้บรรทัดสุดท้ายของไฟล์ข้อความเป็นสตริงข้อความธรรมดาที่ไม่มีอักขระบรรทัดใหม่ต่อท้าย: ... เช่น เพื่อต่อไฟล์อื่นเข้าด้วยกัน

บรรณาธิการหลายโดยอัตโนมัติแก้ไขข้อความของฉันโดยการเพิ่มอักขระ newline แม้ว่าฉันไม่ได้กดEnter

Remains unmodified: Emacs, SciTE, Kate, Bluefish, Notepad (ไวน์)

Newline is added: Gedit, Gvim, Vim, Nano

ฉันต้องการทราบว่ามีวิธีการปรับแต่ง Gedit, Gvim และ Vim เพื่อบันทึกสิ่งที่ฉันได้พิมพ์หรือไม่และแม้แต่นาโนก็อาจมีประโยชน์

ขณะนี้ฉันใช้ Gedit และฉันเล่นน้ำใน Gvim / Vim .. ดังนั้นมันจะมีประโยชน์ที่จะรู้วิธี "สลับ" เปิด / ปิดเหล่านี้ ...

ปล . เมื่อเปิดไฟล์เดียวกันอีกครั้งใน Gedit, Gvim และ Vim การวางตำแหน่งสิ้นสุดไฟล์ของเคอร์เซอร์จะอยู่ที่ท้ายข้อความในขณะที่มันควรจะปรากฏในบรรทัดถัดไป (ว่าง) นี่เป็นสิ่งที่ทำให้เข้าใจผิด (แต่เป็นเพราะสิ่งที่ฉันคุ้นเคย)

ฉันใช้เลขฐานสิบหกเพื่อตรวจสอบข้อสังเกตข้างต้น

คำตอบ:


49

สำหรับgEdit ดูเหมือนจะไม่มีวิธีการปิดการใช้งานการแทรกขึ้นบรรทัดใหม่ในตอนท้ายดูคำตอบนี้ติดตั้ง gEdit

สำหรับกลุ่ม ติดตั้งเป็นกลุ่ม (และgVim ติดตั้งเป็นกลุ่ม ) คุณสามารถ - :set binaryโดยการดำเนินการตัวเลือกต่อไปนี้: การตั้งค่าเป็นไบนารีจะบันทึกไฟล์ตามที่เป็นและไม่แทรกขึ้นบรรทัดใหม่ที่ท้ายเอกสาร (ยกเว้นว่ามีอยู่หนึ่งไฟล์ซึ่งจะถูกเก็บไว้) :set nobinaryตลอดเวลาที่คุณสามารถเปลี่ยนตัวเลือกนี้ด้วย

นาโน ติดตั้งนาโนง่ายกว่านิดหน่อย คุณสามารถเปิด nano ด้วยการ-Lตั้งค่าสถานะ (หรือ--nonewlinesถ้าคุณเป็นประเภทภาพมากขึ้น) วิธีนี้จะปิดการใช้งานการเพิ่มบรรทัดใหม่โดยอัตโนมัติไปยังจุดสิ้นสุดของไฟล์ (ตราบใดที่ไม่มีการป้อนจริง) เป็นการดีที่คุณสามารถตั้งค่านามแฝงนี้ใน~/.bashrc: alias nano="nano -L"ซึ่งจะเปิดตัวนาโนโดยไม่มีการตั้งค่าสถานะบรรทัดใหม่!

เนื่องจากฉันไม่รู้ว่าคุณกำลังทำอะไรอยู่ฉันจะชี้ให้คุณทำไมจึงควรลงท้ายด้วยไฟล์ขึ้นบรรทัดใหม่ ซึ่งอาจอธิบายว่าทำไมพวกเขาถึงอยู่ที่นั่น ในระยะสั้นบางแอปพลิเคชันจะล้มเหลวหากไม่พบแอปEOLโดยตรงEOF


1
ขอบคุณ Marco คำตอบที่ยอดเยี่ยม ... "ทำไมควร ... " เป็นคอลเลกชันที่น่าสนใจของ "whys" ... ฉันเอง "newline aware" (นั่นคือเหตุผลที่ฉันสังเกตเห็น :) แต่มันเป็น อ้างอิงที่ดีสำหรับทุกคน (รวมตัวเอง) ... แต่ฉันไม่ต้องการที่จะรู้ว่าฉันจะเพิ่มหรือไม่เพิ่มมัน ... อาจจะมีเป็นปลั๊กอินสำหรับ Gedit ปิดบัง ...
Peter.O

3
ดูเหมือนว่าสำหรับ Gvim / Vim จะต้องมีการตั้งค่าสองตัวเลือก ... ตาม: ช่วยWhen writing a file and this option ('eol') is off and the 'binary' option is on, no EOL will be written for the last line in the file.
eol

1
Gedit (Launchpad)ทราบถึงปัญหานี้และนำไปใช้ใน "สิ่งที่ปรารถนา" .... (ฉันต้องการ แต่ฉันจะไม่กลั้นเรื่องนี้เลย! ถ้าสารสกัดนี้มีความหมายอะไร: "... (มัน ) ค่อนข้างจะสับสนผู้ใช้ "
Peter.O

2
สำหรับนาโนคุณสามารถใส่set nonewlines~ / .nanorc (หรือ / ฯลฯ / nanorc) เพื่อใช้-Lโหมดโดยค่าเริ่มต้น
mwfearnley

ใช้ editorconfig (editorconfig, org) - ปลั๊กอินสำหรับ vim และ gedit ระบุตัวเลือกที่ต้องการในไฟล์. editorconfig ของคุณ
ddbug

16

สำหรับ gEdit:

หากคุณใช้ Ubuntu 12.04 ขึ้นไปคุณสามารถตั้งค่าการทำงานได้แล้ว

ผ่านส่วนต่อประสานกราฟิกกับผู้ใช้:

  1. เรียกใช้ dconf Editor ( dconf-editor)
  2. ไปorg→การgnome→การgedit→การpreferences→การeditor
    (หรือเพียงแค่ค้นหาensure-trailing-newline)
  3. ยกเลิกการเลือกensure-trailing-newlineถ้าคุณไม่ต้องการเพิ่มการขึ้นบรรทัดใหม่โดยอัตโนมัติ

บนบรรทัดคำสั่ง:

  1. เปิดเทอร์มินัล ( ctrl+ alt+ T)
  2. ป้อนคำสั่งต่อไปนี้

    gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
    

    และคุณทำเสร็จแล้ว

บุคคลอ้างอิง บั๊ก Launchpad


1
ขอบคุณ นั่นเป็นเรื่องดีที่จะรู้ ฉันได้ลองแล้วมันใช้งานได้ ... (+1)
Peter.O

แล้ว pluma editor ล่ะ? (ไม่เห็น "
sure

0

หากคุณต้องการเขียนไฟล์บรรทัดเดียว echo อาจเป็นวิธีที่ง่ายที่สุด:

echo -n "the contents of my file" > myfile
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.