Vim 我怎样才能让维姆记住过去的美国佬?(或者将YankRing配置为执行更少的操作。)
当我在vim中删除某些内容时,它会添加到编号的寄存器中。我拉的最后一项在寄存器0中。我怎样才能让维姆也自动记住最后10次美国佬Vim 我怎样才能让维姆记住过去的美国佬?(或者将YankRing配置为执行更少的操作。),vim,yank,Vim,Yank,当我在vim中删除某些内容时,它会添加到编号的寄存器中。我拉的最后一项在寄存器0中。我怎样才能让维姆也自动记住最后10次美国佬 我试过了,但它改变了vim的很多行为。这个问题的另一种说法是:如何配置YankRing,使其仅在粘贴后添加Ctrl-n/Ctrl-p行为(以循环使用以前的yanks) 我经常猛拉一个词,视觉选择另一个词,粘贴,视觉选择另一个词,粘贴。如果没有YankRing,最后一次粘贴将放置第一个选定单词。使用YankRing,它会再次粘贴相同的单词。(这只是一个例子。) 这里是我
我试过了,但它改变了vim的很多行为。这个问题的另一种说法是:如何配置YankRing,使其仅在粘贴后添加Ctrl-n/Ctrl-p行为(以循环使用以前的yanks) 我经常猛拉一个词,视觉选择另一个词,粘贴,视觉选择另一个词,粘贴。如果没有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 = ''
您可以使用“命令”来指定用于拖动的寄存器。从: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).
结果是有一些未记录的选项(我通过键入
:echo g:yankring\u paste\u
找到)
现在,我的yank,VisualPaste,VisualPaste按预期工作。(我们将查看是否有其他位更改默认vim行为。)您可以尝试
它的描述是“该插件旨在成为yankring插件的一个更简单的替代品”。您可以在正常模式下执行
dP
,它将删除并粘贴您刚刚删除的内容,如果您移动一行或多行,加上编号的寄存器将移位。而这在我提到的一种情况下有效,vim的def错误行为不会被恢复。而且,我必须在每个yank命令之前键入“Ok”。我对扬克林一无所知,所以我只是回答了你问题的第一部分。啊,好的。澄清问题:我希望它是自动的,能够记住很多美国佬。我也停止使用yankring,因为我觉得它会弄乱一些我喜欢的vim默认设置。只要有ctrl-n/ctrl-p就好了,但现在我也开始使用ctrlp插件,这可能会与yankring冲突。@skeept:为什么不更改ctrlp映射?我这样做了,我同时使用yankstack和CtrlP。如果您仍然感兴趣,它还会以干扰repeat.vim工作的方式弄乱“.”命令。而且,如果我没记错的话,它会重新映射。除此之外,我没有做更多的探索。第一个问题足以让我改用yankstack。虽然我多年来一直使用并喜欢yankstack(感谢您的推荐!),但我现在更喜欢unite.vim history/yank source(neoyank.vim),它可以轮询您的注册表,而不是重新映射密钥。@idbrii很高兴知道,我也已经停止使用yankstack了。我会检查unite.vim——实际上,使用Denite.nvim可能更好。
let g:yankring_paste_v_bkey = ''
let g:yankring_paste_v_akey = ''