ฉันจะได้รับเป็นกลุ่มเพื่อเก็บประวัติยกเลิกได้อย่างไร


36

หากฉันกำลังแก้ไขสองไฟล์ด้วย vim การเปลี่ยนเป็นไฟล์อื่น (: bnext,: bprev) ดูเหมือนว่าจะเลิกทำประวัติเลิกทำจากไฟล์ที่เปิด - กดปุ่มรายงาน 'u' ที่การเปลี่ยนแปลงที่เก่าที่สุด "

ตัวอย่างเช่น:

  1. vim testfile1 testfile2
  2. เพิ่มบางสิ่งลงใน testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. EEP! ไม่สามารถเลิกทำ!

มีวิธีใดบ้างที่จะเก็บประวัตินี้ไว้สำหรับบัฟเฟอร์ที่มองไม่เห็น?


สิ่งนี้ควรอยู่ใน superuser หรือ stackoverflow แทนหรือไม่
Ressu

@Ressu - จุดดีเราจะบอกได้อย่างไร คำถาม Meta โพสต์: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr

ขึ้นอยู่กับผลลัพธ์ของคำถามเมตานั้นฉันมีแนวโน้มที่จะลบ
Jeremy Kerr

คำตอบ:


42

เวอร์ชันใหม่ล่าสุดของกลุ่ม (7.3) มีการเลิกทำแบบถาวรเพื่อให้คุณสามารถเปลี่ยนแปลงปิดกลุ่มได้อย่างสมบูรณ์ (แม้จะปิดเครื่องและรีสตาร์ท) รีสตาร์ทกลุ่มและเลิกทำ ใน.vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
โปรดทราบว่าคุณต้องสร้างไดเรกทอรีก่อนเป็นกลุ่มจะไม่ทำโดยอัตโนมัติ เลิกทำการบันทึกไฟล์โดยใช้พา ธ ของระบบไฟล์ (ในเวลาเดียวกันเมื่อบันทึกไฟล์) ถ้าคุณอยู่ใน/home/peterนั้นการแก้ไขจะสร้างไฟล์.bashrc /home/peter/.vimundo/%home%peter%.bashrc
Lekensteyn


1

คุณสามารถใช้Viewports
"vim -o testfile1 testfile2" - เปิดไฟล์ในหน้าต่างที่แยกออก
": sp filename" - แยกแล้วเปิด "filename"
": vsp filename" - แยกแนวตั้งและเปิด "ชื่อไฟล์"
"Ctrl + w + arrow" - เปลี่ยนวิวพอร์ต


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