2013-06-13 5 views
10

पर पूर्वनिर्धारित पाठ डालें, जब मैं उन्हें डीबग करता हूं तो मैं अक्सर अपनी रूबी फ़ाइलों में binding.pry डालता हूं। जैसे ही मैं विम का उपयोग करता हूं, मैं हर बार इसे पुनः टाइप करने से बचने के लिए इसे स्वचालित करना पसंद करूंगा। मैं यह कैसे कर सकता हूं?कुंजीपटल शॉर्टकट

सही अनुक्रम मैं मैप करने के लिए चाहते हैं:

  1. सम्मिलित नई लाइन।
  2. नव निर्मित लाइन में binding.pry डालें।
  3. सामान्य मोड पर लौटें।

संपादित करें:binding.pry पाठ मैं पेस्ट करना चाहते हैं, एक फ़ाइल नहीं है।

डालने से पहले:

a = 1 
b = 2 

डालने के बाद:

a = 1 
binding.pry 
b = 2 
+0

आप सम्मिलित पाठ "binding.pry" मतलब, या फ़ाइल 'binding.pry' की सामग्री सम्मिलित? – doubleDown

+0

जैसा कि मैंने एक उत्तर के लिए टिप्पणी में लिखा था: यह एक फ़ाइल की सामग्री नहीं है 'binding.pry' टेक्स्ट है। – mrzasa

उत्तर

14

रिकार्ड एक मैक्रो (untested)

qq    " record macro to register q 
o    " insert empty line below cursor 
esc    " exit insert-mode 
:r /path/to/binding.pry " insert content of file 
esc    " cmd-mode 
q    " end recording 

मैक्रो निष्पादित करने के लिए, कर

@q 

या अपने .vimrc फ़ाइल

अद्यतन

को निम्नलिखित जोड़ने स्ट्रिंग binding.pry सम्मिलित करने के लिए मानचित्रण हो जाता है:

map ,p obinding.pry<ESC> 
+0

धन्यवाद! एक टिप्पणी: 'binding.pry' एक फ़ाइल नहीं है, लेकिन एक स्ट्रिंग जिसे मैं पेस्ट करना चाहता हूं। यह आसान होना चाहिए, क्या मैं सही हूँ? – mrzasa

+1

@mrzasa, बस 'esc' और': r ... 'चरणों को छोड़ें और बस' binding.pry' के साथ प्रतिस्थापित करें। – doubleDown

+0

@FredrikPihl अगर मैं 'obinding.pry' जोड़ना चाहता हूं? – alhelal

2

पर Fredrik's idea आधार पर, आप को परिभाषित करने और में किसी मैक्रो स्टोर कर सकते हैं अपने .vimrc, g कहें:

let @g = "Obinding.pry^[" 

ध्यान दें कि type the escape character पर आप CTRL-V पर ईएससी पर क्लिक करें।

मैक्रो प्रदर्शन करने के लिए आप @g कर सकते हैं।


सामान्य तौर पर, यदि आप एक मैक्रो बचाना चाहते हैं, एक आसान तरीका मैक्रो रिकॉर्ड करने के लिए हो सकता है, रजिस्टर q में कहते हैं, तो "qp करना (जहां q मैक्रो का नाम है) मैक्रो पेस्ट करने के लिए। तब

let @x = "..." 

साथ उस पर घेरा जहां x मैक्रो का नाम आप यह हमेशा है और यह .vimrc फ़ाइल में डाल करना चाहते हैं।

+1

अधिक जानकारी के लिए देखें [सेविंग विम मैक्रोज़] (http://stackoverflow.com/questions/2024443/saving-vim-macros) – timss

7

सबसे आसान एक संक्षिप्त नाम कि डालने मोड से शुरू हो रहा है है: जब आप लिखते हैं debug, अब

:ia debug <CR>binding.pry 

, पाठ binding.pry एक नई लाइन पर डाला जाता है।

+1

ठीक है आपको डालने मोड में जाना होगा और कुछ शब्द टाइप करना होगा, इसलिए बिल्कुल नहीं सबसे आसान। – doubleDown

0

एक और मानचित्रण करना होगा कि है:

nnoremap <silent> gb :let a='binding.pry'\|put=a<cr> 
संबंधित मुद्दे