在windows vim 配置上怎么用vim

Windows上使用 clange_complete实现vim中代码补齐-c/c++-电脑编程网Windows上使用 clange_complete实现vim中代码补齐作者:佚名 和相关&&需要使用的软件:
1.  vim7.3, 经实验的版本是7.3.46
     需要编译时支持和动态加载解释器(+python/dyn)的特性, 默认从官网下载的就已经支持这2项, 需要注意的是vim对具体python版本的支持是编译后就定死了的, 跟下面第4项所要求安装的python版本要匹配.
2.  clang + mingw
     其它的组合没有尝试过, 比如clang + ms, clang + cygwin/gcc
     原因是mingw本身就致力于用gcc编译器处理windows平台相关的编译环境如头文件.
     其中clang本身是从clang的官方网站上下载的 clang for mingw 2.9版. 最新版是3.0, 但没有找到给windows上mingw用的预编译二进制包.
3. clang_complete
    是个vim的插件, 可以从 www.vim.org下载. 测试所用版本是 1.8.2
    这个插件是clang 产生的代码补齐信息和vim中最终呈现给你的弹出菜单中的补齐项之间的粘合剂.
安装后需要在 $VIM/_vimrc 中加入以下代码来进行配置:
call pathogen#infect()
let g:clang_auto_select=1
let g:clang_complete_auto=0
let g:clang_complete_copen=1
let g:clang_hl_errors=1
let g:clang_periodic_quickfix=0
let g:clang_snippets=1
let g:clang_snippets_engine=&clang_complete&
let g:clang_conceal_snippets=0
let g:clang_exec=&clang.exe&
let g:clang_user_options=&&
let g:clang_auto_user_options=&path, .clang_complete&
let g:clang_use_library=0
let g:clang_library_path=&C:/clang/bin&
let g:clang_sort_algo=&priority&
let g:clang_complete_macros=1
let g:clang_complete_patterns=0
    测试所用版本是 2.7.2
整个方案的工作原理是: 
vim 启动后, 首先加载 clang_complete这个vim插件, 插件进行一些初始化工作. 比如设置好补齐函数等. 在快捷键如CTRL+X, CTRL+U 或., &, :等触发补齐功能时, clang_complete插件就开始了它的工作, 它会通过python要么调用独立的可执行程序 clang.exe, 要么动态加载 clang.dll(在上是libclang.so), 以clang来产生一个当前光标所在处可用的代码补齐项的列表, 这个列表以字符串的形式最终返回给插件, vim脚本再做一番后加工. 以调用独立可执行程序clang.exe为例, 其命令行参数是:
CommandLine: clang.exe  -cc1 -fsyntax-only -fno-caret-diagnostics -fdiagnostics-print-source-range-info -code-completion-at=&C:\zrf\C_CPP/&:40:1 &C:\zrf\C_CPP/& -x c++-header -code-completion-macros  -Ic:/work/mingw/lib/gcc/mingw32/4.6.1/include/c++ -Ic:/work/mingw/lib/gcc/mingw32/4.6.1/include/c++/mingw32 -Ic:/work/mingw/lib/gcc/mingw32/4.6.1/include/c++/backward -Ic:/work/mingw/lib/gcc/mingw32/4.6.1/include -Ic:/work/mingw/include -Ic:/work/mingw/lib/gcc/mingw32/4.6.1/include-fixed 
够长的, 这是我用gflags.exe + windbg截获后台运行的clang得到的, 其中关键的参数是 -cc1 和
-code-completion-at=&C:\zrf\C_CPP/&:40:1
前者指定只进行编译, 后者则指明输出指定位置处的代码补齐项, 这个命令行可以在DOS窗口中独立运行, 结果类似于:
COMPLETION: ___GLIBCXX_UNUSED_PARAM : ___GLIBCXX_UNUSED_PARAM(&#x#&)
COMPLETION: ___int_ptrdiff_t_h : ___int_ptrdiff_t_h
COMPLETION: ___int_size_t_h : ___int_size_t_h
COMPLETION: ___int_wchar_t_h : ___int_wchar_t_h
COMPLETION: __argc : __argc
COMPLETION: __argv : __argv
输出内容很多, 但vim的插件会根据我已经输入的部分 prin进行过滤, 结果只有一个候选项: printf, 所以就把printf的原型列出来以供选择.
这就是clang牛B的地方, 它把编译器工作过程各个阶段的中间结果, 以可编程的方式暴露给各种不同目的的使用者, 主要的用户是IDE软件, 插件, 编程辅助工具.
以上命令行中一大部分是 -I...指定的头文件搜索路径, 注意这里的路径都是mingw的目录. 这个路径列表可以通过
调用一次成功的gcc编译过程, 加上-v参数得到. 得到的头文件列表是gcc正常工作所需要访问的系统标准头文件路径, clang与mingw的搭配使用, 需要的正是这些头文件, 这也正是clang官网上把该版本的clang命名为
clang-2.9-mingw32-i386.tar.bz2 的原因.
调用独立命令clang.exe无疑是最慢的, 整个clang.exe有23M, 但也可以指定
let g:clang_use_library=1
来使用动态链接库的方式来进行调用, 以这种形式进行调用, 不需要插件把编辑过程中的缓冲区内容另存为磁盘上的文件, 而是在内存中直接传给clang的接口函数. 当然胶合层仍是python. clang_complete插件的一个重要组成部分就是cindex.py, 这是clang项目提供的. 不是clang_complete插件作者本身所写.
经实验, 可以在redhat enterprise 5.4上, ubutnu 11.10上, 和debian 6.0上以动态库的方式使用 clang_complete插件. 速度很快, 没有可感知的延迟, 但在windows上使用动态链接库的形式时失败. call stack显示企图以dlopen来打开 clang.dll, 岂有不失败的道理.
最上面的缓冲区是我在项目所在的目录下写的 .clang_complete文件, 额外地加入了一个编译选项-Wno-deprecated
这是因为最下面的缓冲区中clang给出了编译警告.
下面一段视频显示的是上补齐的效果, 其中一些补齐的功能是基于ctags的传统方案所不可能实现的, 比如对于类型本没有定义析构函数和copy constructor, 但根据语言的定义, 编译器会自动产生一个, 所以clang可以补齐这样的候选项, 实际上这样的调用也的确是合法的语言构造. 又例如对函数foo()的结果再进行补齐, 估计ctags的方案也不可能正确进行补齐. 但clang_complete给出的补齐结果也并非完美, 如Color c = 后面的补齐, 本可以过滤出enumerator中的几项.
附件还没有上传...相关资料:|||||||Windows上使用 clange_complete实现vim中代码补齐来源网络,如有侵权请告知,即处理!编程Tags:                &                    在windows上怎么用vim_百度知道
在windows上怎么用vim
提问者采纳
官网下载vim74,或者到github下载源码自行编译安装,更Linux上使用并无多大差别。
其他类似问题
为您推荐:
vim的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
一张寂寞难开的嘴巴,一对工作自主的鼻孔,两只伤感淡漠的眼睛,两条纠结柔情的眉毛,还有一头个性张扬的黑发,别无其它.
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&现在我们先设置下vim的语法高亮和自动缩进以及显示行号,显然win的那个记事本是不可能完成这些的我们找到vim的安装路径,我的是C:\Program Files\Vim\vim73,然后找到_vimrc,这是vim的配置文件,现在我们可以使用vim来编辑它vim _vimrc然后我们在最后一行加上这些内容set nusyn onset cindent然后保存退出,上面依次上打开行号显示,语法高亮显示,最后一个是自动缩进,我采用的是c/c++缩进方式,其它的缩进方式如何设置可自行搜索现在我们重启计算机,否则这些设置无法起作用然后我们用c语言写一个hello world程序,并用gcc编译,然后再执行看下我们是否设置成功vim hello.c&&&然后保存退出再用gcc编译下&&成功!
阅读(9224)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'教你在windows下安装使用配置vim+gcc',
blogAbstract:'一直在使用linux,但有时也会去虚拟机里的winxp折腾折腾,但由于习惯了vim+gcc所以win下未免会很不自在,想到vim和gcc都是开源项目估计应该有win平台下的,于是乎就开始搜索了,果不其然,gcc可以用dev-cpp,vim我们可以去vim.org下载,只要选择win版就可以了,之后就可以简单地单击安装了,安装完成之后,我们设置下PATH环境变量,这样我们就可以在命令提示符下使用它们了,win设置PATH环境变量的方法为:右击我的电脑(Win7 的话是计算机)---属性--高级--环境变量然后在用户变量那里点击PATH编辑它,之后加入你的程序的绝对路径就可以了如图',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:3,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'一张寂寞难开的嘴巴,一对工作自主的鼻孔,两只伤感淡漠的眼睛,两条纠结柔情的眉毛,还有一头个性张扬的黑发,别无其它.',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}如何在CMD中使用VIM编辑器
最近在研究VIM编辑器,虽然我不是搞服务器的,但是有时候也难免会用到VIM。
于是下载了一个Windows版本的VIM,带了GUI(图形界面),简称GVIM,下载地址:
http://www.vim.org/download.php#pc
但是在用带有图形界面的VIM时还是觉得别扭,毕竟在命令行里用VIM才更有感觉啊!
于是想了个方法:
右键点击&我的电脑&、&属性&、&高级&、&环境变量&,在&系统变量&里找到&Path&,双击&Path&,在&变量值&的最后面添加vim.exe的路径(确保路径下有vim.exe):C:\Program Files\Vim\vim73
注意:不要把Path里之前的变量值删除了,并且在添加vim.exe路径之前先在原有的Path变量值的最后添加一个英文分号&;&(如果有分号就不用再添加了),添加完如图所示:
然后点&确定&。
这时,我们就可以在CMD中VIM编辑器了,打开CMD,输入命令&VIM+空格+待编辑文件路径&就可以了!Enjoy
标签(Tag):
------分隔线----------------------------
------分隔线----------------------------

我要回帖

更多关于 vim windows 的文章

 

随机推荐