`
Wynston
  • 浏览: 9223 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

vim自动补全

    博客分类:
  • vim
阅读更多
autocomplpop.vim : Automatically open the popup menu for completion

http://www.vim.org/scripts/script.php?script_id=1879

介绍

用惯一些IDE的朋友,一开始可能不习惯Vim的自动补全,主要是每次都要按下一个组合键才会出现提示,而不是像IDE里面那样只要输入了某个操作符就会触发自动补全。

autocomplpop.vim 这个插件就可以很好的解决这个问题。

基本使用

首先访问链接[1],下载 autocomplpop.vim 后,放到Vim文件目录下的plugin目录中,然后重启一下 vim 就会发现在编码时会自动的弹出提示了。

打开 autocomplpop.vim ,可以再 DOCUMENT 部分看到使用方式与一些设置。

增加智能提示触发命令

该插件的默认设置可以完成一些基本的提示,但是每种语言都不同,需要触发 全能 (omni) 补全 的操作符也不同,所幸 autocomplpop 可以让我们自己定制触发的命令模式,这样就可以实现无限扩展以达到自己的需求。

autocomplpop已经实现了部分语言的自动全能补全,比如 ruby文件中按 "." 或者 "::" 就会触发全能补全,看一下改插件中已经实现的一些语言

"   Which completion method is used depends on the text before the cursor. The
"   default behavior is as follows:
"
"     1. The keyword completion is attempted if the text before the cursor
"        consists of two keyword character.
"     2. The filename completion is attempted if the text before the cursor
"        consists of a filename character + a path separator + 0 or more
"        filename characters.
"     3. The omni completion is attempted in Ruby file if the text before the
"        cursor consists of "." or "::". (Ruby interface is required.)
"     4. The omni completion is attempted in Python file if the text before
"        the cursor consists of ".". (Python interface is required.)
"     5. The omni completion is attempted in HTML/XHTML file if the text
"        before the cursor consists of "<" or "</".
"     6. The omni completion is attempted in CSS file if the text before the
"        cursor consists of ":", ";", "{", "@", "!", or in the start of line
"        with blank characters and keyword characters.
光有这些我们可能还不能满足,下面我们试着自己来添加一些触发命令

加入PHP的全能提示触发命令

php 中 一般是会在 "$", "->", "::" 后需要出现自动补全,在 .vimrc 中加入以下代码:

if !exists('g:AutoComplPop_Behavior')
    let g:AutoComplPop_Behavior = {}
    let g:AutoComplPop_Behavior['php'] = []
    call add(g:AutoComplPop_Behavior['php'], {
            \   'command'   : "\<C-x>\<C-o>",
            \   'pattern'   : printf('\(->\|::\|\$\)\k\{%d,}$', 0),
            \   'repeat'    : 0,
            \})
endif
这样就可以了。

注意,某些时候,可能会在第一次按下触发补全的操作符时停顿一会,这可能是因为可匹配的项目过多,Vim正在索引,过后就会快了。

在 Vim 中实现括号自动补全

流行的 IDE 的编辑器,诸如 Eclipse,都提供了括号自动补全的功能,相当的方便。可惜 Vim 默认情况下并没有提供这样的功能,那就只有自己来写了。

将下面的代码加入到 ~/.vimrc 中,重启 Vim,即可:

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
这样,写代码的时候不再担心会丢掉右边的括号了,尤其是函数嵌套的时候
分享到:
评论

相关推荐

    设置vim自动补全、大文件、编辑C++文件和html文件

    Vim原生并不包含自动补全功能,但可以通过安装插件来实现。一种常见的选择是`YouCompleteMe`,它提供了强大的代码补全支持,包括C/C++、Python等语言。安装步骤通常包括克隆其GitHub仓库,然后在Vim中运行`:Plugin...

    linux-VimEasyComplete一个简单轻便的VIM自动补全插件

    这个插件为VIM(一个强大的文本编辑器)添加了自动补全功能,使得代码编写过程更加流畅和高效。 VIM(Vi Improved)是一个高度可定制和功能丰富的文本编辑器,它在程序员和系统管理员中非常受欢迎,因为它可以在...

    vim自动补全所需要的php函数库

    vim自动补全所需要的php函数库.................................................................................................

    linux下vim的自动补全的插件

    然而,相比其他现代化的编辑器,如Sublime Text,Vim在默认配置下缺少一些便捷功能,例如代码自动补全。不过,得益于Vim的可扩展性,我们可以安装插件来实现这些功能。"linux下vim的自动补全的插件"正是这样一个话题...

    LINUX VIM 自动补全配制包

    在~/.vimrc中配制 autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascrīpt set omnifunc=javascrīptcomplete#CompleteJS ... autocmd FileType css set omnifunc=csscomplete#...

    vim配置(程序自动补全)

    使用过Source Insight的人一定对它的自动补全功能印象深刻,...这里,我将自己用的配置文件发给大家,大家可以移步(待会会补上地址),只要简单的两步,就能实现vim的程序自动补全功能,大大增加了在vim上的开发效率。

    在vim中针对c++自动补全

    "在vim中针对c++自动补全" Vim是UNIX世界中最流行的文本编辑器之一,其中的一大特点就是它提供了强大的自动补全功能,可以大大提高编程效率。那么,在Vim中如何针对C++实现自动补全呢? 首先,需要安装...

    supertab.vmb VIM自动补全

    安装方法:1.下载后以vim打开本文件; 2.执行:so %,将本文件source 到vim中。

    史上最佳vim配置带插件包 自动补全智能提示飞一般的写代码

    首先,自动补全是该配置的一大亮点。无需按下Tab键,用户就能在输入过程中看到可能的补全选项,这极大地提高了编码速度。对于Python,补全不仅包括标准库,还可能包含当前项目中的自定义模块和函数。对于HTML、CSS、...

    vim插件-配合数字电路systemverilog编程时使用

    其次,Vim的自动补全功能是提高编程效率的关键。`systemverilog.vim`可能包含了对SystemVerilog关键词和自定义函数的补全支持。在编写代码时,只需输入部分关键字,然后按特定快捷键(通常是`&lt;C-x&gt;&lt;C-o&gt;`),Vim就会...

    ubuntu下vim配置成C/C++ IDE

    本文件是在ubuntu下配置vim,变成C/C++集成开发环境,实现代码自动补全,函数参数提示,代码跳转,文件列表和函数项显示等功能,在ubuntu12.04 和ubuntu14.04中测试通过,只需执行vim.sh脚本即可,注意脚本中的vim73...

    vim 代码自动提示,自动补全 安装包 autocomplpop

    在编程过程中,代码自动提示和自动补全是提高效率的重要工具,这正是 `autocomplpop` 插件的功能所在。这个插件是 Vim 用户为了实现类似于其他现代IDE的代码补全体验而开发的,它可以与 `L9`(Vim9脚本)一起工作,...

    hellorocky#blog#1.vim自动补全插件安装及使用1

    背景介绍从接触Linux到现在基本上所有的python脚本都是使用VIM编写的, 之前由于写的python代码行数比较少, 所以每个函数的方法都能记住, 但是现

    SourceInsight与vim代码补全配置

    在这里,你可以定制补全的触发键,如“Ctrl+Space”,并选择自动补全的时机,如输入特定字符后自动触发。此外,Source Insight 支持自定义代码库,通过导入项目或头文件,可以增强补全的准确性。 Vim,作为一个历史...

    vim自动补全插件YouCompleteMe(YCM)安装过程解析

    **vim自动补全插件YouCompleteMe(YCM)安装过程详解** Vim作为一个高度可拓展的文本编辑器,可以通过各种插件提升其功能。在编程过程中,代码补全功能能够极大地提高开发效率,YouCompleteMe(简称YCM)是Vim用户中...

    超强配置带自动补全功能的vim

    在"超强配置带自动补全功能的vim"主题下,我们将深入探讨如何通过配置Vim来实现高效的代码补全功能。 首先,Vim的自动补全功能可以极大地提高开发效率,因为它允许我们在编写代码时快速查找和插入可能的语句、函数...

    vim补全之clang+neocomplcache

    #### 一、引言:VIM自动补全现状 在探讨具体的解决方案之前,我们先来看看VIM自动补全技术的现状。VIM是一款极其强大的文本编辑器,它以其灵活性和高度可定制性而著称,尤其受到Linux用户和程序员的喜爱。然而,在...

    vim的java自动补全工具

    Java作为广泛应用的编程语言,其开发效率可以通过使用 Vim 的自动补全工具得到显著提升。本篇文章将详细探讨如何在 Vim 中配置和使用 Java 自动补全功能,以及相关提示。 首先,让我们了解 Vim 的自动补全功能。Vim...

    Python 自动补全(vim)

    一、vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.python 模块内函数,变量补全 5.from module import sub-...

Global site tag (gtag.js) - Google Analytics