मैं एक मैक्रो को परिभाषित करने की कोशिश कर रहा हूं जो जल्दी से यादृच्छिक-ईश शब्दों की एक सूची तैयार करता है।
मैं चाहता हूं कि मैक्रो इसे एक सूची में बदल दे
a
b
c
d
e
इस मामले में
arezzo
bywords
czars
détente
eyrie
मेरे पास अब तक क्या है:
- पत्र पर कर्सर रखें
a
- मैक्रो रिकॉर्ड करना शुरू करें
qq
a
इन्सर्ट मोड डालें<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter
A`<C-p>
पूर्ण सूची में अंतिम आइटम का चयन करें, जो मेरे सिस्टम पर इसका शब्द हैarezzo
। (एनबी मैंनेlongest
अपनी'completeopt'
सेटिंग में शामिल किया है , जिसे<C-p>
पूरा करने के दौरान इस तरह से काम करना आवश्यक है:)'set completeopt=longest,menuone,preview'
।<C-y>
पूर्णता को स्वीकार करें^[^[
निकास मोड डालेंj
अगली पंक्ति के लिए एक ही ऑपरेशन करने के लिए तैयार अगली पंक्ति के लिए नीचे जाएँq
रिकॉर्डिंग बंद करें
जब मैं मैक्रो बनाता हूं और मैन्युअल रूप से चरणों के माध्यम से जाता हूं, तो सब कुछ ठीक काम करता है, हालांकि जब मैं मैक्रो को निष्पादित करता हूं, तो मुझे कमांड लाइन में चमकता हुआ एक संदेश दिखाई देता है जैसे:
शब्दकोश फ़ाइल स्कैनिंग
और कुछ भी नहीं होता है, केवल मैक्रो में कमांड्स j
को रन किया जाता है, यानी कर्सर लाइन से नीचे चला जाता है, लेकिन पूरा होने वाले कमांड में से कोई भी नहीं चलता है।
क्या मैक्रो में सम्मिलित मोड पूर्णता का उपयोग करना संभव है, और यदि हां, तो मैं यह कैसे कर सकता हूं?
set completeopt=longest,menuone,preview
इसके longest
विकल्प का उपयोग कर रहा हूं जो <C-p>
तुरंत डालने का कारण बनता है। यदि मैं स्ट्रिंग longest
से हटाता हूं completeopt
, तो मुझे आपके समान व्यवहार मिलता है। इसके अलावा, हाँ तीर कुंजी ने काम किया! धन्यवाद (मैं भूल गया कि आप उन्हें पूरा सूची नेविगेट करने के लिए उपयोग कर सकते हैं)
:set completeopt=
और a<c-x><c-k><esc>j
अपने मैक्रो के रूप में।
<C-p>
चरण समझ में नहीं आ रहा है ... जब मैं ऐसा करता हूं, तो मेरे विचार में, यह केवल संदेश देता हैback at original
- अंतिम आइटम का चयन नहीं करता है .. मैंने अंतिम शब्द (मेरा मामलाazures
) का चयन करने के लिए दो बार तीर कुंजी का उपयोग किया , दर्ज करें दबाया और तबEsc+j+q
.. यह मैक्रो निष्पादित करने पर काफी ठीक काम करता है