मुझे सिर्फ :colorscheme
कमांड के बारे में पता चला । क्या कोई तरीका है जिससे मुझे विम से वैध रंग योजनाओं की सूची मिल सकती है? मैं इंटरनेट पर कहीं सूची से नहीं, विम के भीतर से ऐसा करने में सक्षम होना चाहता हूं।
मुझे सिर्फ :colorscheme
कमांड के बारे में पता चला । क्या कोई तरीका है जिससे मुझे विम से वैध रंग योजनाओं की सूची मिल सकती है? मैं इंटरनेट पर कहीं सूची से नहीं, विम के भीतर से ऐसा करने में सक्षम होना चाहता हूं।
जवाबों:
सबसे आसान तरीका :help c_Ctrl-d
बाद का उपयोग करना है :colorscheme
।
इसलिए, :colorscheme
Ctrl-dआपके द्वारा उपलब्ध रंगोंकेम का उत्पादन करेगा।
सुनिश्चित करें कि के बाद एक जगह है :colorscheme
सूची दिखाने का दूसरा तरीका है set wildmenu
। इस के साथ, के बाद :colorscheme
+ space
+ tab
, पूरा होने की एक सूची प्रदर्शित किया है और यह भी तीर कुंजी या साथ चयन किया जाता है Ctrl-N
और Ctrl-P
। यह न केवल कलर्सकेम पर काम करता है, बल्कि अन्य cmdline के पूरा होने पर भी है। व्यवहार प्रभावित होता है wildmode
और डिफ़ॉल्ट मान पर बेहतर सेट होता है full
।
यदि आप Vimscript में ऐसा करना चाहते हैं, तो आप getcompletion () फ़ंक्शन का उपयोग करके रंग योजनाओं की सूची प्राप्त कर सकते हैं :
let c = getcompletion('', 'color')
echo c
मौजूदा विम्सस्क्रिप्ट उत्तर की तुलना में यह थोड़ा सरल है, जो फाइल सिस्टम को स्कैन करता है।
:help getcompletion()
अधिक जानकारी के लिए देखें।
अन्य उत्तर यह दिखाने का संवादात्मक तरीका दिखाते हैं कि कलरकेम क्या उपलब्ध हैं, लेकिन किसी ने भी एक सूची प्राप्त करने के तरीके का उल्लेख नहीं किया है जिसका उपयोग vimscript में किया जा सकता है। यह इस प्रश्न के लिए मेरे उत्तर का एक अनुकूलन है ।
यह समाधान 'runtimepath'
सभी उपलब्ध कलरकेम निर्देशिकाओं को प्राप्त करने के लिए विकल्प का उपयोग करता है , और फिर उन निर्देशिकाओं में विम्सस्क्रिप्ट फ़ाइलों की एक सूची निकालता है, जिनके एक्सटेंशन हटा दिए जाते हैं। यह ऐसा करने का सबसे सुरक्षित तरीका नहीं हो सकता है, इसलिए सुधारों का स्वागत है:
function! GetColorschemes()
" Get a list of all the runtime directories by taking the value of that
" option and splitting it using a comma as the separator.
let rtps = split(&runtimepath, ",")
" This will be the list of colorschemes that the function returns
let colorschemes = []
" Loop through each individual item in the list of runtime paths
for rtp in rtps
let colors_dir = rtp . "/colors"
" Check to see if there is a colorscheme directory in this runtimepath.
if (isdirectory(colors_dir))
" Loop through each vimscript file in the colorscheme directory
for color_scheme in split(glob(colors_dir . "/*.vim"), "\n")
" Add this file to the colorscheme list with its everything
" except its name removed.
call add(colorschemes, fnamemodify(color_scheme, ":t:r"))
endfor
endif
endfor
" This removes any duplicates and returns the resulting list.
return uniq(sort(colorschemes))
endfunction
फिर आप इस फ़ंक्शन द्वारा विम्सस्क्रिप्ट में दी गई थीई सूची का उपयोग कर सकते हैं। उदाहरण के लिए, आप बस प्रत्येक रंग गूँज को प्रतिध्वनित कर सकते हैं:
for c in GetColorschemes() | echo c | endfor
मैं यह नहीं बताऊंगा कि प्रत्येक व्यक्ति क्या काम करता है या कमांड यहाँ क्या करता है, लेकिन यहाँ उन सभी के लिए मदद पन्नों की एक सूची दी गई है जिनका मैंने उपयोग किया है:
:help 'runtimepath'
:help :let
:help :let-&
:help split()
:help :for
:help expr-.
:help :if
:help isdirectory()
:help glob()
:help fnamemodify()
:help add()
:help uniq()
:help sort()
आप यह कोशिश कर सकते हैं
:colorscheme
, फिर spaceकुंजी और फिर कुंजी मारा tab।
wildmenu
और wildchar
सेटिंग्स और है कि इस सवाल का जवाब मूल रूप से रूप में ही है tivn के एक