เรียนผู้ใช้ปลั๊กอินนี้! ขออภัย ฉันไม่ดูแลมันอีกต่อไปแล้ว! หากมีใครสนใจที่จะดูแลรักษามัน โปรดติดต่อฉัน แล้วฉันจะเพิ่มคุณเป็นผู้มีส่วนร่วม
บันทึกอัตโนมัติ - บันทึกการเปลี่ยนแปลงลงดิสก์โดยอัตโนมัติโดยไม่ต้องใช้ :w
(หรือการเชื่อมโยงใดๆ กับมัน) ทุกครั้งที่มีการแก้ไขบัฟเฟอร์หรือตามเหตุการณ์ที่คุณต้องการ
แรงบันดาลใจจากฟีเจอร์เดียวกันในโปรแกรมแก้ไขข้อความ RubyMine
ตามค่าเริ่มต้น การบันทึกอัตโนมัติจะบันทึกทุกครั้งที่มีการเปลี่ยนแปลงบางอย่างในโหมดปกติ และเมื่อผู้ใช้ออกจากโหมดแทรก การกำหนดค่านี้เป็นการผสมผสานระหว่าง "บันทึกบ่อยที่สุดเท่าที่จะทำได้" และ "พยายามหลีกเลี่ยงการทำลายปลั๊กอินอื่น ๆ ที่ขึ้นอยู่กับเหตุการณ์การเขียนไฟล์"
ใช้ vundle หรือดาวน์โหลดเวอร์ชันแพ็คเกจจาก vim.org
บันทึกอัตโนมัติถูกปิดใช้งานตามค่าเริ่มต้น ให้รัน :AutoSaveToggle
เพื่อเปิด/ปิดใช้งาน
หากคุณต้องการเปิดใช้งานปลั๊กอินเมื่อเริ่มต้นให้ใช้ตัวเลือก g:auto_save
" .vimrc
let g: auto_save = 1 " enable AutoSave on Vim startup
นอกจากนี้ยังสามารถแทนที่ค่า g:auto_save
ส่วนกลางทีละรายการต่อบัฟเฟอร์หรือหน้าต่างได้ ตัวอย่างเช่น หากคุณเปิดใช้งานการบันทึกอัตโนมัติทั่วโลก คุณสามารถเลือกไม่ใช้ไฟล์บางไฟล์ได้ และในทางกลับกัน ให้เลือกไฟล์บางไฟล์เมื่อคุณปิดใช้งานการบันทึกอัตโนมัติทั่วโลก
let g: auto_save = 0
augroup ft_markdown
au !
au FileType markdown let b: auto_save = 1
augroup END
บันทึกอัตโนมัติจะแสดงบนบรรทัดสถานะของการบันทึกอัตโนมัติแต่ละรายการตามค่าเริ่มต้น:
(AutoSave) saved at 08:40:55
คุณสามารถปิดเสียงจอแสดงผลได้ด้วยตัวเลือก g:auto_save_silent
:
" .vimrc
let g: auto_save_silent = 1 " do not display the auto-save notification
เหตุการณ์ที่การบันทึกอัตโนมัติจะดำเนินการบันทึกสามารถปรับได้โดยใช้ตัวเลือก g:auto_save_events
การใช้ InsertLeave
และ TextChanged
เท่านั้น เป็นค่าเริ่มต้น จะบันทึกทุกการเปลี่ยนแปลงในโหมดปกติและทุกครั้งที่คุณออกจากโหมดแทรก
" .vimrc
let g: auto_save_events = [ " InsertLeave " , " TextChanged " ]
กิจกรรมอื่น ๆ ที่คุณอาจต้องการใช้:
TextChangedI
จะบันทึกหลังจากมีการเปลี่ยนแปลงข้อความในบัฟเฟอร์ปัจจุบันในโหมดแทรกCursorHold
จะบันทึกทุกจำนวนมิลลิวินาทีตามที่กำหนดไว้ในตัวเลือก updatetime
ในโหมดปกติCursorHoldI
จะทำสิ่งเดียวกันในโหมดแทรกCompleteDone
จะทริกเกอร์การบันทึกหลังจากเหตุการณ์เสร็จสิ้นทุกครั้ง คำสั่งเหล่านี้บางคำสั่งอาจไม่พร้อมใช้งาน ขึ้นอยู่กับการติดตั้ง Vim ของคุณ ดูภาพรวมคำสั่งอัตโนมัติสำหรับรายการทั้งหมด ( :h autocommand-events
)
คำเตือน! แนะนำให้ใช้ความระมัดระวังกับตัวเลือก updatetime
เนื่องจากจะทำให้เกิดปัญหาเมื่อตั้งค่าน้อยเกินไป 200 ดูเหมือนจะเล็กเกินไปที่จะทำงานกับปลั๊กอินอื่นบางตัวแล้ว ใช้ 1,000 สำหรับการตั้งค่าแบบอนุรักษ์นิยมมากขึ้น
หากคุณต้องการ hook บันทึกอัตโนมัติ (เช่น การสร้างแท็กหลังการบันทึก หรือยกเลิกการบันทึกก่อนหน้านี้) ให้ใช้ตัวเลือก g:auto_save_postsave_hook
หรือ g:auto_save_presave_hook
:
" .vimrc
" This will run :TagsGenerate after each save
let g: auto_save_postsave_hook = ' TagsGenerate '
" This will run AbortIfNotGitDirectory function before each save
let g: auto_save_presave_hook = ' call AbortIfNotGitDirectory() '
" Example hook from vim-auto-save-git-hook plugin
function ! AbortIfNotGitDirectory ()
if ...
let g: auto_save_abort = 0
else
let g: auto_save_abort = 1
endif
endfunction
โดยค่าเริ่มต้นจะมีการเขียนเฉพาะบัฟเฟอร์ปัจจุบันเท่านั้น (เช่น :w
) คุณสามารถเลือกให้บัฟเฟอร์ทั้งหมดเขียนลงในบันทึกอัตโนมัติโดยใช้ตัวเลือก g:auto_save_write_all_buffers
(เช่น :wa
)
" .vimrc
let g: auto_save_write_all_buffers = 1 " write all open buffers as if you would use :wa
doc/auto-save.txt
เป็นเวอร์ชันที่แปลงแล้วของ README.md
อย่าแก้ไขโดยตรง ให้ติดตั้ง md2vim และรันสคริปต์ update_doc_from_readme.sh
แทน
การพัฒนาเกิดขึ้นใน repo 907th/vim-auto-save กรุณารายงานข้อบกพร่องและ / หรือข้อเสนอแนะที่นั่น ยินดีต้อนรับการมีส่วนร่วมใด ๆ !
เผยแพร่ภายใต้ใบอนุญาต MIT (ดู LICENSE.txt)
ลิขสิทธิ์ (c) 2013-2021 Aleksei Chernenkov