हाल ही में मैं काफी प्लगइन्स की संख्या को कम कर रहा हूं जिसका मैं उपयोग कर रहा हूं इसलिए मैं केवल बिल्ट-इन विम विशेषताओं का उपयोग करके उत्तर ढूंढ रहा हूं।
जब मैं बहुत सारे बफ़र्स का संपादन कर रहा होता हूं, तो मुझे अपने वर्कफ़्लो में एक दोष दिखाई देता है: मैं एक बफर पर हूं और मैं एक और स्विच करना चाहता हूं, जिसमें मुझे नाम याद नहीं है और जो वैकल्पिक बफर नहीं है । तो उपयोग :b#
करना संभव नहीं है और कमांड के साथ पूर्णता का उपयोग करना :b
सुविधाजनक है और न ही।
ऐसा करने के लिए मैं निम्नलिखित कर रहा था:
- पहले
:buffers
खुले बफ़र्स की सूची प्राप्त करने के लिए उपयोग करें - उस बफर की संख्या याद रखें जिसका मैं उपयोग करना चाहता हूं
- Enterबफ़र्स की सूची को बंद करने के लिए दबाएँ
- उपयोग
:bX
करनेX
के लिए बफर की संख्या के साथ उपयोग करें।
यह वर्कफ़्लो मुझे बहुत भारी लग रहा था इसलिए मैंने निम्नलिखित पंक्तियों को अपने साथ जोड़ा
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
यह मुझे एक कमांड :B
(और एक मैपिंग) देता है जो फ़ंक्शन को :buffers
इनपुट के लिए प्रतीक्षा करता है और अंत :b
में इनपुट के बाद कॉल करता है।
यह अच्छी तरह से काम करता है, लेकिन मुझे आश्चर्य है कि मुझे इस तरह के एक समारोह का विकास करना पड़ा: आमतौर पर विम में एक बहुत ही कुशल डिफ़ॉल्ट वर्कफ़्लो है, इसलिए मैं सोच रहा हूं कि क्या बफर को स्विच करने का एक बेहतर तरीका है, जिसमें मुझे कुछ भी नहीं पता है सिवाय इसके यह मेरे संपादन सत्र में पहले ही खुल चुका है।
:b#
वह नहीं हूं जो मैं देख रहा हूं, लेकिन हां यह तथ्य है कि आप एक कीस्ट्रोक को सीधे :b
दबाए बिना दर्ज करके बचा सकते हैं enter
, दिलचस्प है। (वास्तव में है कि एक जवाब होना करने के लिए हो सकता है बहुत हल्का है, लेकिन यह एक टिप्पणी के लायक :-) था)
#
चरित्र के बजाय एक (बफर) संख्या के लिए स्टैंड-इन के रूप में था, शाब्दिक #
चरित्र के बजाय ।
:ls
बाद:b#
(पहले वापसी या भागने की जरूरत नहीं है, सीधे बफर लिस्ट से 'ls' में जा सकता हूं।) 'कुछ याद कर रहा है और गलत सवाल का जवाब दे रहा है।)