VIM แสดงความคิดเห็นกับสิ่งที่ฉันวาง


14

ฉันได้รับสิ่งนี้เมื่อพยายามคัดลอกแก่นสารนี้ใน vim: https://gist.github.com/w0ng/3278077

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสังเกตเห็นพฤติกรรมเดียวกันทุกที่: หากฉันวางสิ่งที่มีความคิดเห็นทุกอย่างที่ตามความคิดเห็นนั้นจะถูกวางความคิดเห็น

อาจจะมีบางอย่างเกี่ยวข้องกับความจริงที่ว่าถ้าฉันเขียนความคิดเห็นในโหมดแทรกและกด Enter บรรทัดต่อไปนี้จะผนวกความคิดเห็นโดยอัตโนมัติ

ฉันจะกำจัดพฤติกรรมนี้ได้อย่างไร

คำตอบ:


26

เข้าสู่โหมดวางก่อนที่จะวาง:

:set paste

หากต้องการเปลี่ยนกลับเป็นโหมด "ปกติ":

:set nopaste

6
หรือ: set paste! เพื่อสลับ :)
valbaca

@valbaca คุณสามารถใช้ backticks เพื่อสร้างcode blocksความคิดเห็น
Izkata

ฉันต้องการคำสั่งเหล่านั้นในทางตรงกันข้าม!

11

นอกจากpasteตัวเลือกที่กล่าวถึงโดย Matคุณสามารถเข้าถึงคลิปบอร์ด X จาก VIM ได้โดยตรง:

  • "*p เพื่อแทรกการเลือก X11
  • "+p เพื่อแทรกคลิปบอร์ด X11

คุณต้องมี VIM เวอร์ชั่นที่รองรับ X11 (ใน Debian และอนุพันธ์ที่คุณต้องติดตั้งvim-gtkหรือvim-gnomeแพ็คเกจ)

สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสารประกอบ ( :help x11-selection)


6

นี่คือสิ่งที่เกิดขึ้น มีตัวเลือกการจัดรูปแบบเป็นกลุ่มที่ใส่เครื่องหมายบรรทัดใหม่โดยอัตโนมัติเมื่อคุณอยู่ในบรรทัดความคิดเห็น โดยปกติแล้วตัวเลือกเหล่านี้บางตัวจะเปิดใช้งานตามค่าเริ่มต้น ตัวอย่างเช่น,

# a comment<CR>
# 

อย่างที่คุณเห็นบรรทัดใหม่จะถูกเติมไว้ล่วงหน้าโดยอัตโนมัติพร้อมกับอักขระความคิดเห็น คุณสามารถปิดการใช้งานส่วนใหญ่ของตัวเลือกเหล่านี้โดยการลบcและจากการตั้งค่าr formatoptionsดู:h fo-tableข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้

:set formatoptions-=cr

Vim ไม่มีทางที่จะแยกความแตกต่างระหว่างข้อความที่วางด้วยกลไกการวางของเทอร์มินัลอีมูเลเตอร์และข้อความที่คุณพิมพ์ การตั้งค่าตัวเลือกการวาง ( set paste) บอกให้ Vim คาดว่าจะได้รับข้อความที่วางและปิดใช้งานตัวเลือกการจัดรูปแบบใด ๆ ที่ไม่พึงประสงค์


3

สิ่งที่ฉันชอบคือใช้putคำสั่ง

  • :put* วางจากการเลือกที่บรรทัดปัจจุบัน
  • :put+ วางจากบัฟเฟอร์ที่บรรทัดปัจจุบัน

"*p/ "+pเป็นสิ่งที่ดี แต่:pu[t]มีข้อดี:

  • มันมักจะวาง linewise
  • คุณสามารถเพิ่มพารามิเตอร์เพิ่มเติมเพื่อควบคุมตำแหน่งที่จะแทรก:
    • :$put+ วางหลังจากบรรทัดสุดท้าย
    • :0put+ วางที่จุดเริ่มต้นของไฟล์

1

ตามคำตอบด้านข้างหากคุณมีไฟล์ใด ๆ ที่มีสิ่งนี้อยู่ในนั้นคุณสามารถกำจัดมันได้โดยการเข้าสู่โหมดบล็อกแนวตั้ง

ctrl+ vจากนั้นใช้ปุ่มลูกศร / hjkl เพื่อนำทางส่วนต่าง ๆ ที่คุณต้องการลบจากนั้นก็กดปุ่มd

บางครั้งฉันพบสิ่งนี้เร็วกว่าเลิกเลิกตั้งค่าโหมดการวางการวางและการยกเลิกโหมดการวาง

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