2012-02-06 29 views
10

जब मैं विम में कुछ हटा देता हूं, तो यह क्रमांकित रजिस्टरों में जोड़ा जाता है। आखिरी वस्तु जो मैंने जमा की है वह पंजीकरण 0 में है। मैं पिछले 10 यांकों को स्वचालित रूप से याद रखने के लिए विम कैसे प्राप्त कर सकता हूं?मैं पिछले यंक को कैसे याद कर सकता हूं? (या कम करने के लिए यांकरिंग को कॉन्फ़िगर करें।)


मैं YankRing की कोशिश की है, लेकिन यह vim व्यवहार की बहुत अधिक बदल जाता है। इस प्रश्न का एक वैकल्पिक वाक्यांश: मैं यंकरिंग को कैसे कॉन्फ़िगर कर सकता हूं ताकि पेस्ट करने के बाद यह केवल Ctrl-n/Ctrl-p व्यवहार को जोड़ सके (पिछले yanks के माध्यम से चक्र के लिए)?

मैं अक्सर एक शब्द yank, दृश्य एक और शब्द का चयन करें, पेस्ट, दृश्य एक और शब्द का चयन करें, पेस्ट। यंकरिंग के बिना, अंतिम पेस्ट पहले चुने गए शब्द को रखता है। यांकरिंग के साथ, यह वही शब्द फिर से चिपकाता है। (यह सिर्फ एक उदाहरण है।)

यहां मेरी कुछ यंकिंग सेटिंग्स हैं। जैसा कि आप देख सकते हैं, मैंने यंकरिंग डॉक्स को कई विकल्पों को अक्षम करने के लिए देखा है क्योंकि मैं सामान्य विम व्यवहार पर वापस जा सकता हूं।

" Some settings to try to get yank ring to not mess with default vim 
" functionality so much. 
let g:yankring_manage_numbered_reg = 0 
let g:yankring_clipboard_monitor = 0 
let g:yankring_paste_check_default_buffer = 0 

" Don't let yankring use f, t, /. It doesn't record them properly in macros 
" and that's my most common use. Yankring also blocks macros of macros (it 
" prompts for the macro register), but removing @ doesn't fix that :(
let g:yankring_zap_keys = '' 

" Disable yankring for regular p/P. This preserves vim's normal behavior, but 
" I can still use C-p/C-n to cycle through yankring. 
let g:yankring_paste_n_bkey = '' 
let g:yankring_paste_n_akey = '' 
let g:yankring_paste_v_key = '' 
+0

मैंने यंकिंग का उपयोग करना बंद कर दिया क्योंकि मुझे लगा कि मुझे कुछ विम डिफ़ॉल्ट के साथ गड़बड़ हो रही है। यह ctrl-n/ctrl-p होने के ठीक होगा, लेकिन अब मैंने ctrlp प्लगइन का उपयोग करना शुरू कर दिया है ताकि शायद यांकिंग के साथ संघर्ष हो। – skeept

+0

@skeept: आप CtrlP मानचित्र क्यों नहीं बदलते? मैंने ऐसा किया और मैं यांकस्टैक और CtrlP का एक साथ उपयोग करता हूं। – idbrii

उत्तर

13

आप plugin yankstack: a lightweight implementation of the Emacs ‘kill ring’ for Vim को आजमा सकते हैं।

इसका विवरण बताता है कि 'यह प्लगइन यांकिंग प्लगइन के लिए एक आसान विकल्प है।'

+0

पर स्विच करने के लिए पर्याप्त था, जबकि मैंने उपयोग किया और पसंद किया वर्षों के लिए yankstack (सिफारिश के लिए धन्यवाद!), अब मैं unite.vim इतिहास/यांक स्रोत (neoyank.vim) पसंद करते हैं जो आपके रजिस्टरों को रीपैपिंग कुंजी के बजाय चुनाव करता है। – idbrii

+0

@idbrii जानना अच्छा है, मैंने यंकस्टैक का उपयोग करना बंद कर दिया है। मैं unite.vim की जांच करूंगा - वास्तव में [इसके github] (https://github.com/shougo/unite.vim) Denite.nvim का उपयोग करना बेहतर हो सकता है। – mMontu

5

आप :help quote से yanking के लिए एक रजिस्टर निर्दिष्ट करने के लिए " आदेश का उपयोग कर सकते हैं:।।

             *quote* 
"{a-zA-Z0-9.%#:-"}  Use register {a-zA-Z0-9.%#:-"} for next delete, yank 
         or put (use uppercase character to append with 
         delete and yank) ({.%#:} only work with put). 
+0

जबकि मैंने एक मामले में काम किया है, लेकिन विम का डिफ़ॉल्ट व्यवहार बहाल नहीं किया गया है। इसके अलावा, मुझे "हर यंक कमांड से पहले" टाइप करना होगा। – idbrii

+0

ठीक है। मुझे यंकरिंग के बारे में कुछ भी पता नहीं है, इसलिए मैं सिर्फ आपके प्रश्न के पहले भाग का जवाब दे रहा था। –

+0

आह, ठीक है। स्पष्ट प्रश्न: मैं इसे चाहता हूं स्वचालित हो और बहुत सारे yanks याद रखें। – idbrii

1

बाहर बदल जाता है वहाँ गैर-दस्तावेजी विकल्प (मैं :echo g:yankring_paste_<Tab> टाइप करके पाया जाता है) कर रहे हैं

let g:yankring_paste_v_bkey = '' 
let g:yankring_paste_v_akey = '' 

अब मेरा यंक, विजुअल पेस्ट, विजुअल पेस्ट अपेक्षित काम करता है। (हम देखेंगे कि क्या अन्य बिट्स हैं जो चा nge डिफ़ॉल्ट vim व्यवहार।)

+0

यदि आप अभी भी रुचि रखते हैं, तो यह भी '।' आदेश दोहराएं जो repeat.vim के काम में हस्तक्षेप करता है। साथ ही, अगर मुझे सही याद है, तो यह को रीमेप्स करता है। इससे परे बहुत कुछ नहीं पता था। पहला मुद्दा मुझे यंकस्टैक – kshenoy

0

आप सामान्य मोड में d<movement>P कर सकते हैं और यह हटाएंगे और फिर जो भी आपने अभी हटाया है उसे पेस्ट करेंगे, साथ ही यदि आप लाइन या अधिक स्थानांतरित करते हैं तो क्रमांकित रजिस्टरों को स्थानांतरित कर दिया जाएगा।