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'

然后你可以在插入模式下执行&lt;C-x&gt;&lt;C-r&gt; 并且将调用带有寄存器的完成菜单。

【讨论】:

以上是关于Vim 注册完成的主要内容,如果未能解决你的问题,请参考以下文章

Vim 的自动完成非常慢

Vim - 自动完成 Java

C++ 的 #include 子句的 Vim 自动完成

VIM:自动完成插件,可以使用gtags

Vim PHP omni完成

在 Vim 插入模式下,有没有办法添加文件路径自动完成?