Vim 注册完成
Posted
技术标签:
【中文标题】Vim 注册完成【英文标题】:Vim register completion 【发布时间】:2013-06-17 07:39:27 【问题描述】:我想对命名寄存器进行某种自动完成。 如果我尝试访问一个 (" 或 CTRL+r ...) 类似于行完成 (CTRL+l) 应该打开。 对未使用/空闲寄存器进行一些漂亮的可视化也会很好。
有没有好的解决方案?
【问题讨论】:
:reg
或 :reg a
怎么样?
没有我想要的那么舒服。
【参考方案1】:
挂钩到内置命令(如 " 和 Ctrl+r)是困难的,因为 Vim 是在一个特殊的子-等待寄存器名称的模式。我使用以下 "" 映射(通常是无操作)来刷新我的记忆:
" ["x][N]"" List contents of the passed register / [N] named
" registers / all registers (that typically contain
" pasteable text).
nnoremap <silent> <expr> "" ':<C-u>registers ' . (v:register ==# '"' ? (v:count ? strpart('abcdefghijklmnopqrstuvwxyz', 0, v:count1) : '"0123456789abcdefghijklmnopqrstuvwxyz*+.') : v:register) . "<CR>"
【讨论】:
【参考方案2】:我最近创建了插件https://github.com/imomaliev/registers.vim
用你最喜欢的插件管理器(如 Plug)安装它
Plug 'imomaliev/registers.vim'
然后你可以在插入模式下执行<C-x><C-r>
并且将调用带有寄存器的完成菜单。
【讨论】:
以上是关于Vim 注册完成的主要内容,如果未能解决你的问题,请参考以下文章