ฉันเปิดไฟล์ในโหมดอ่านอย่างเดียว มีวิธีออกจากโหมดอ่านอย่างเดียวหรือไม่
w
ทุกครั้งที่ฉันต้องการบันทึก heh
ฉันเปิดไฟล์ในโหมดอ่านอย่างเดียว มีวิธีออกจากโหมดอ่านอย่างเดียวหรือไม่
w
ทุกครั้งที่ฉันต้องการบันทึก heh
คำตอบ:
คุณสามารถทำได้:
:set noro
ซึ่งจะยกเลิกการตั้งค่าสถานะอ่านอย่างเดียว แต่หากไฟล์ต้นแบบยังไม่สามารถเขียนได้โดยคุณกลุ่มที่ยังคงไม่สามารถเขียนลงไปได้
:set ro
มากได้อย่างง่ายดาย:
view
แต่ตัดสินใจที่จะแก้ไข
คุณสามารถเรียกใช้chmod
จากภายในกลุ่ม:
:!chmod +w %
!
หมายถึงเรียกใช้คำสั่งเชลล์และ%
เป็นชื่อไฟล์ปัจจุบัน คุณสามารถบังคับให้เขียนไฟล์:
:w!
นอกเหนือจากคำตอบของ Michael Mrozekคุณสามารถเพิ่มบรรทัดลงในของคุณ.vimrc
ที่อนุญาตให้คุณเขียนลงในไฟล์ที่คุณไม่ได้เปิดไว้โดยได้รับอนุญาตจากผู้ดูแล:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
หากไฟล์เป็นแบบอ่านอย่างเดียวคุณต้องป้อน:w!!เท่านั้นคุณจะได้รับแจ้งให้ใส่รหัสผ่านของคุณจากนั้นไฟล์นั้นจะถูกเขียนลงไปสำเร็จ
ในขณะ:set noro
ที่ทำงานมันจะไม่ตรวจสอบว่าไฟล์ถูกเปิดโดยอินสแตนซ์ที่เป็นกลุ่มอื่นหรืออัปเดตไฟล์หากมีการเปลี่ยนแปลงจากภายนอก
เพื่อให้สามารถแก้ไขและตรวจสอบไฟล์ swap (ซึ่งเป็นค่าเริ่มต้นเปิดไฟล์ด้วย vim) เพียงใช้คำสั่งแก้ไข (: ช่วยแก้ไข):
:e
หมายเหตุหากไฟล์ถูกจัดการตั้งแต่นั้น (แม้อยู่ด้านนอกของ vim) มันจะอัพเดตการเปลี่ยนแปลงในบัฟเฟอร์ปัจจุบัน (ซึ่งฉันพบว่าเป็นที่ต้องการตามปกติ)
ที่นี่ฉันไปแม้ว่าจะสายไปหน่อยบางทีคุณอาจแก้ไขข้อสงสัยของคุณอยู่แล้ว) ฉันไม่เห็นความคิดเห็นใด ๆ ในแบบที่ฉันรู้ด้วยเสียงเรียกเข้าดังนั้นฉันจึงเพิ่ม:
เมื่อคุณกำลังแก้ไขไฟล์คุณกด:w
หรือ:wq
และคุณจะเห็นข้อความที่น่ารำคาญ " E45 'อ่านได้อย่างเดียว' ตัวเลือกเป็นชุด (เพิ่ม! เพื่อแทนที่) "
คุณสามารถพิมพ์
:w !sudo tee %
w
เขียนบัฟเฟอร์ !sudo
เรียกเชลล์ด้วย sudo tee
เปลี่ยนเส้นทางเอาต์พุตของvim :w
ไปยังเอาต์พุตด้วย tee, และ%
เป็นชื่อไฟล์ปัจจุบันและนั่นควรทำเคล็ดลับ โปรดทราบว่าการดำเนินการนี้จะแจ้งให้โหลดไฟล์เป็นกลุ่มสำหรับสิ่งที่คุณต้องกด L
!
ในw
คำสั่งจะทำตามที่ไมเคิลระบุไว้