11

vimで何かを削除すると、番号付きレジスタに追加されます。私がヤンクした最後のアイテムはレジスター0にあります。vimに最後の10個のヤンクも自動的に記憶させるにはどうすればよいですか?


YankRingを試しましたが、vimの動作が大きく変わりすぎています。この質問の別の言い回し:貼り付け後に(前のヤンクを循環するために)Ctrl-n / Ctrl-pの動作のみを追加するようにYankRingを構成するにはどうすればよいですか?

私はよく単語をヤンクし、別の単語を視覚的に選択し、貼り付け、別の単語を視覚的に選択し、貼り付けます。YankRingがない場合、最後の貼り付けで最初に選択した単語が配置されます。YankRingを使用すると、同じ単語が再び貼り付けられます。(これはほんの一例です。)

これが私のヤンクリング設定の一部です。ご覧のとおり、YankRingのドキュメントを調べて、通常のvimの動作に戻すためにできるだけ多くのオプションを無効にしました。

" 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 = ''
4

4 に答える 4

14

プラグインyankstackを試すことができます:Vim用のEmacsの「キルリング」の軽量実装

その説明には、「このプラグインは、yankringプラグインのより単純な代替手段となることを目的としています」と記載されています。

于 2012-02-09T17:35:44.377 に答える
5

このコマンドを使用して"、ヤンクするレジスタを指定できます。差出人: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).
于 2012-02-06T21:42:33.320 に答える
1

文書化されていないオプションがあることがわかりました(私は入力して見つけました:echo g:yankring_paste_<Tab>)。

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

これで、ヤンク、ビジュアルペースト、ビジュアルペーストが期待どおりに機能します。(デフォルトのvimの動作を変更する他のビットがあるかどうかを確認します。)

于 2012-02-06T21:44:44.513 に答える
1

通常モードで行うことができd<movement>P、削除したものを削除して貼り付けるだけでなく、1行以上移動すると、番号が付けられたレジスタがシフトします。

于 2017-10-24T18:19:34.990 に答える