กำลังบันทึกมาโครเป็นกลุ่ม


166

ไม่มีใครรู้วิธีการบันทึก / นำมาใช้ซ้ำที่บันทึกไว้ในเครื่องมือแก้ไข vim อย่างเหมาะสมหรือไม่

คำตอบ:


216

ใช้qตามด้วยตัวอักษรเพื่อบันทึกแมโคร นี่จะเป็นการลงทะเบียนหนึ่งในการคัดลอก / วางเพื่อให้คุณสามารถวางตามปกติด้วยคำสั่ง"xpหรือ"xPในโหมดปกติ

หากต้องการบันทึกคุณจะเปิด. vimrc และวางเนื้อหาจากนั้นการลงทะเบียนจะอยู่ในครั้งต่อไปที่คุณเริ่มเป็นกลุ่ม
รูปแบบคล้าย:

let @q = 'macro contents'

ระวังคำพูดด้วย พวกเขาจะต้องหลบหนีอย่างถูกต้อง

ดังนั้นในการบันทึกแมโครคุณสามารถทำได้:

  • จากโหมดปกติ: qq
  • ป้อนคำสั่งอะไรก็ได้
  • จากโหมดปกติ: q
  • เปิด. vimrc
  • "qpเพื่อแทรกมาโครในlet @q = '...'บรรทัดของคุณ

3
นอกจากนี้หากคุณต้องการแทรกตัวอักษรพิเศษ (เช่น escape ในกรณีของฉัน) ใช้CTRL-V <ESC>ในโหมดแทรกเพื่อแทรกตัวอักษรที่ถูกต้อง ตัวอักษร<ESC>ไม่ทำงาน
adam_0

5
"โปรดทราบว่าวิธีการข้างต้นที่ใช้: let จะไม่ทำงานอย่างที่คาดไว้สำหรับมาโครที่คุณลงท้ายด้วยอักขระ <CR> หรือ <NL> (การขึ้นบรรทัดใหม่หรือขึ้นบรรทัดใหม่)" vim.wikia.com/wiki/Macros#Saving_a_macro
เปาโล

2
จำเป็นต้องใช้เครื่องหมายคำพูด (รอบเนื้อหาแมโคร) หรือไม่
user2472071

15
Ctrl+r Ctrl+r registerNameปัจจัยการผลิตลงทะเบียนเนื้อหาโดยไม่ต้องแปลความหมายของพวกเขา - "qpดีกว่า +1 สำหรับวิธีการแบบกลุ่มอย่างไรก็ตาม
LAFK พูดว่า Reinstate Monica

@ adam_0 คุณช่วยอธิบายเรื่องนี้ได้ไหม? อาจรวมถึงตัวอย่างหรือไม่ ฉันไม่สามารถหาวิธีฝังอักขระพิเศษได้คือ esc ฉันได้ลองทุกครั้งที่ใส่การหลบหนีเพื่อไม่เกิดประโยชน์ "รหัสหลัก" จบลงด้วยการทำลายแมโครและลำดับทั้งหมดจะถูกพิมพ์
GH05T

21

สำหรับการแก้ปัญหามีประสิทธิภาพมากขึ้นคุณสามารถชำระเงินMarvim

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

หากคุณนำมาโครจำนวนมากมาใช้ซ้ำจะมีประโยชน์มาก


6
เพียงแค่ต้องการที่สองและพูดว่ามันง่ายแค่ไหนในการตั้งค่า marvim- คัดลอกไฟล์เดียวไปยัง / plugin ของคุณจากนั้นใช้ F3 เพื่อบันทึกแมโครและ F2 เพื่อเรียกใช้
เรนกราบไหว้

18

เขียนมาโครของคุณภายใน ~ / .vimrc เพื่อกำหนดมาโครที่เปิดตัวโดย CTRL + O ตามตัวอย่างให้เพิ่มบรรทัดต่อไปนี้ใน ~ / .vimrc ของคุณ:

map <C-O> MACROTEXT

เมื่อคุณบันทึกแมโครด้วยการพิมพ์qaคุณสามารถดึงข้อความแมโครของคุณโดยการพิมพ์"ap


ใช้ "ap หรือเทียบเท่าใช้งานไม่ได้ แต่คุณสามารถได้รับข้อมูลเดียวกันโดย: reg
DShook

"ap จะอ้างถึงมาโครที่บันทึกในการaลงทะเบียน
Tyler Fowle

11

:mkexrc(หรือ:mkvimrc) คำสั่งที่สามารถใช้ในการบันทึกทั้งหมดในปัจจุบัน:mapและ:setการตั้งค่าไปยังแฟ้ม ดู:help mkexrcรายละเอียดที่


4

คุณสามารถทำสิ่งนี้กับคุณได้ ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

หมายเหตุ: \<this silly example>คุณต้องใช้คำพูดสองเพื่อให้สามารถใช้ปุ่มพิเศษเช่นใน

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