क्या आपके पास विम में टाइप-विशिष्ट कुंजी बाइंडिंग फ़ाइल हो सकती है?


79

मेरी .vimrcफाइल में, मैं एक टिप्पणी के लिए एक महत्वपूर्ण बंधन है कि //एक लाइन की शुरुआत में डबल स्लैश ( ) सम्मिलित करता है :

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/\/\//<Esc><Esc>
:map <C-T> :s/\/\/// <Esc><Esc>

हालाँकि, जब मैं पायथन स्क्रिप्ट का संपादन कर रहा हूं, तो मैं इसे # टिप्पणियों के लिए एक संकेत में बदलना चाहता हूं

मेरे पास Python.vimमेरे .vim/ftdetectफ़ोल्डर में एक फ़ाइल है जिसमें टैब की चौड़ाई के लिए भी सेटिंग्स हैं, आदि। यदि संभव हो तो कीबाइंडिंग को ओवरराइड करने के लिए कोड क्या है, ताकि मेरे पास पायथन का उपयोग हो:

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/#/<Esc><Esc>
:map <C-T> :s/#/ <Esc><Esc>

जवाबों:


64

Ftdetect फोल्डर फाइलटाइप डिटेक्शन की स्क्रिप्ट के लिए है। फ़िलिपाइप प्लगइन्स फ़्लिपुगिन फ़ोल्डर के अंदर होना चाहिए। फ़ाइल नाम को फ़ाइल नाम में निम्नलिखित तीन रूपों में से एक में शामिल किया जाना चाहिए:

  • .../ftplugin/<filetype>.vim
  • .../ftplugin/<filetype>_foo.vim
  • .../ftplugin/<filetype>/foo.vim

उदाहरण के लिए, आप निम्न के अंदर निम्नलिखित फ़ाइल डालने के लिए टिप्पणी मैप कर सकते हैं .../ftplugin/cpp_mine.vim:

:map <buffer> <C-G> :s/^/\/\//<Esc><Esc>
:map <buffer> <C-T> :s/\/\/// <Esc><Esc>

6
आप <buffer>हिस्सा भूल गए ।
ल्यूक हरमिट

1
आपका उत्तर मेरी समस्याओं में से दो को हल करता है, प्रति चित्रण मैपिंग और मैपिंग के साथ वर्तमान लाइन कैसे टिप्पणी करें। महान!
रेन्डन

84

आप :map <buffer> ...सक्रिय बफर के लिए एक स्थानीय मानचित्रण बनाने के लिए उपयोग कर सकते हैं । इसके लिए आवश्यक है कि आपका विम संकलित हो +localmap

तो आप कुछ ऐसा कर सकते हैं

autocmd FileType python map <buffer> <C-G> ...

9

मैं एक एकल फ़ाइल में अपना कॉन्फ़िगरेशन रखना पसंद करता हूं, इसलिए मैं आटोक्मड दृष्टिकोण का उपयोग करता हूं।

augroup pscbindings
  autocmd! pscbindings
  autocmd Filetype purescript nmap <buffer> <silent> K :Ptype<CR>
  autocmd Filetype purescript nmap <buffer> <silent> <leader>pr :Prebuild!<CR>
augroup end

जब आप अपने स्रोत को सेट करते हैं vimrc, तो विम स्पष्ट नहीं करता है , इसलिए विम शुरू करना, अपने में कुछ बदलना vimrcऔर रनिंग :so ~/.vimrcदो बार ऑटोोकैम को परिभाषित करेगा। इसीलिए बाइंडिंग को समूहीकृत और साफ़ किया जाता है autocmd! group_name। आप यहां और पढ़ सकते हैं ।

चूंकि मैपिंग डिफ़ॉल्ट रूप से प्रत्येक बफ़र पर लागू होती है, और आप उन्हें केवल फ़िल्टाइप से मेल खाने वाले बफ़र्स के लिए बदलना चाहते हैं, <buffer>संशोधक वहां है, मैपिंग को स्थानीय बफ़र तक सीमित करता है।


4

Btw ... अगर आपकी प्राथमिक समस्या टिप्पणी करने के बारे में है ... तो आपको 'nerdcommenter' प्लगइन की जाँच करनी चाहिए, जो कि जावा / c / c ++ / python / dos_batch.file / etc आदि में अपने कोड को टिप्पणी / असहज करने का सबसे तेज़ तरीका है।


1
मैं YAATPP * github.com/tpope/vim-commentary * -> के साथ बहुत खुश हूँ - फिर भी एक और अद्भुत टिम पोप प्लगइन
patrickdavey


-1

यहां आने वाले लोगों के लिए यह केवल एक आंशिक उत्तर है, जिससे किसी भी फ़्लिपुगिन लिपियों को काम करने में कठिनाई हो रही है , लेकिन याद रखें कि आपकी .vimrc (या यह एक फ़ाइल जो इसे स्रोत है) होनी चाहिए

filetype plugin on

या

:filetype plugin on

किसी दिए गए प्रकार की फ़ाइल लोड होने पर फ़ाइल-प्लग-इन निष्पादित करने के लिए।


बस कुछ चढ़ाव देखा। तदनुसार संपादित करने या हटाने के लिए खुश, लेकिन मुझे पहले कारण जानने की जरूरत है: /
koyae
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.