2012-02-06 34 views
10

Khi tôi xóa một cái gì đó trong vim, nó được thêm vào sổ đăng ký được đánh số. Các mục cuối cùng tôi kéo mạnh là trong đăng ký 0. Làm thế nào tôi có thể nhận được vim để tự động nhớ 10 yanks cuối cùng quá?Làm thế nào tôi có thể làm cho vim nhớ yanks qua? (Hoặc cấu hình YankRing để làm ít hơn.)


Tôi đã thử YankRing, nhưng nó thay đổi quá nhiều về hành vi vim. Một cách thay thế cho câu hỏi này: Làm thế nào tôi có thể cấu hình YankRing để nó chỉ thêm hành vi Ctrl-n/Ctrl-p sau khi dán (để chu kỳ qua yanks trước đó)?

Tôi thường giật một từ, trực quan chọn một từ khác, dán, trực quan chọn một từ khác, dán. Không có YankRing, lần dán cuối cùng sẽ đặt từ được chọn đầu tiên. Với YankRing, nó lại dùng cùng một từ. (Đây chỉ là một ví dụ.)

Dưới đây là một số cài đặt giới hạn của tôi. Như bạn có thể thấy, tôi đã xem qua các tài liệu YankRing để vô hiệu hóa nhiều tùy chọn nhất có thể để hoàn nguyên về hành vi vim bình thường.

" 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

Tôi cũng ngừng sử dụng tính năng yankring vì tôi cảm thấy nó rối tung với một số giá trị mặc định vim mà tôi thích. Nó sẽ được tốt đẹp chỉ có ctrl-n/ctrl-p nhưng bây giờ tôi cũng đã bắt đầu sử dụng plugin ctrlp để có lẽ sẽ xung đột với yankring. – skeept

+0

@skeept: Tại sao bạn không thay đổi bản đồ CtrlP? Tôi đã làm điều đó và tôi sử dụng yankstack và CtrlP với nhau. – idbrii

Trả lời

13

Bạn có thể thử plugin yankstack: a lightweight implementation of the Emacs ‘kill ring’ for Vim.

Mô tả của nó tuyên bố rằng 'Plugin này được dự định là một lựa chọn đơn giản hơn cho plugin yankring'.

+0

Trong khi tôi đã sử dụng và thích yankstack trong nhiều năm (cảm ơn cho các khuyến nghị!), Bây giờ tôi thích lịch sử unite.vim/yank nguồn (neoyank.vim) mà thăm dò ý kiến ​​của bạn đăng ký thay vì các phím remapping – idbrii

+0

@idbrii tốt để biết, tôi cũng đã ngừng sử dụng yankstack. Tôi sẽ kiểm tra unite.vim - thực sự [github của nó] (https://github.com/shougo/unite.vim) nó có thể tốt hơn để sử dụng Denite.nvim. – mMontu

5

Bạn có thể sử dụng " lệnh để chỉ định một thanh ghi cho giật Từ :help quote:..

             *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

Trong khi hoạt động trong trường hợp tôi đã đề cập, hành vi mặc định của vim không được khôi phục. Ngoài ra, tôi phải gõ "trước mỗi lệnh yank. – idbrii

+0

Ok. Tôi không biết gì về YankRing cả, vì vậy tôi chỉ trả lời phần đầu tiên của câu hỏi của bạn. –

+0

Ah, ok. Làm rõ câu hỏi: Tôi muốn nó tự động và ghi nhớ rất nhiều yanks – idbrii

1

Hóa ra có những lựa chọn không có giấy tờ (Tôi tìm thấy bằng cách gõ :echo g:yankring_paste_<Tab>)

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

Hiện tại, hình dán, hình ảnh, hình ảnh của tôi hoạt động như mong đợi. (Chúng tôi sẽ xem có các bit khác không nge hành vi vim mặc định.)

+0

Nếu bạn vẫn còn quan tâm, nó cũng làm hỏng '.' lệnh theo cách thức can thiệp vào hoạt động của repeat.vim.Ngoài ra, nếu tôi nhớ chính xác, nó remaps . Không khám phá nhiều hơn thế nữa Vấn đề đầu tiên là đủ để làm cho tôi chuyển sang yankstack – kshenoy

0

Bạn chỉ có thể làm d<movement>P ở chế độ bình thường và nó sẽ xóa và sau đó dán những gì bạn vừa xóa, cộng với số đăng ký được chuyển nếu bạn di chuyển một dòng hoặc nhiều hơn.

Các vấn đề liên quan