通过简单的配置文件将 vim 打造成专业 ide,支持 mac linux cygwin。看过数篇 vim 配置文件,必要时去定制vim 的插件,将 vim 的 ide 用户体验尽量做到极致。
使用范围
系统要求:vim 7.2及以上版本,安装有ctags和cscope,完美支持linux, mac, cygwin. (mac下为更良好地用户体验,请将shell的描述文件成pro) 功能:浏览和编写c/c++, python项目 特点:安装绿色简单,功能可比source insight,但保持了原汁原味的vim。
安装方法
(确保设备已经联网) 1.centos, redhat, fedora安装命令: yum install ctags cscope wget unzip -y && wget https://github.com/langsim/vim-ide/archive/master.zip -O master.zip && unzip -o master.zip && cp -rf vim-ide-master/.vim* ~ ; rm -rf master.zip vim-ide-master 2.debian, ubuntu安装命令: apt install ctags cscope wget unzip -y && wget https://github.com/langsim/vim-ide/archive/master.zip -O master.zip && unzip -o master.zip && cp -rf vim-ide-master/.vim* ~ ; rm -rf master.zip vim-ide-master 3.mac安装命令,要求已经安装brew, wget和unzip: brew install ctags cscope -y && hash ctags cscope wget unzip && wget https://github.com/langsim/vim-ide/archive/master.zip -O master.zip && unzip -o master.zip && cp -rf vim-ide-master/.vim* ~ ; rm -rf master.zip vim-ide-master (上面的命令的实际操作是安装ctags, cscope, wget和unzip及下载vim配置文件和插件解压到家目录下)
使用到的插件
tagbar #函数变量列表(修改部分BUG,修改配置文件) nerdcommenter #注释功能(修改C语言默认用//注释,修改配置文件) a #切换头文件和实现文件(修改跨目录不能找到的问题,无修改配置文件) nerdtree #目录树(无修改,修改配置文件) omnicpp #C/C++的自动补全插件(无修改,修改配置文件) bufexplorer #当前打开的文件列表(无修改,无修改配置文件) AutoComplPop #自动弹出补全菜单 (无修改,无修改配置文件) SuperTab #按tab补全 (无修改,无修改配置文件)
自己总结的浏览和编写C/C++工程的常规的使用方法
打开项目: cd到工程根目录下,vim (回车),必须是工程根目录。按F2打开文件列表,选择文件打开。 建立索引: 第一次打开项目,及代码更新后按F5更新索引,这个索引与source insight中的更新索引意义相同。 浏览C/C++代码: 浏览代码会常用的几个功能: 1.跳转 F3 通过tagbar函数列表跳转到当前文件的某个函数 ctrl-] 跳转到光标下单词在工程中定义的位置 gd 如果光标下单词是局部变量,按这个跳转到它定义的位置 :tag word 跳转到word定义的位置 ctrl-2 g 跳转到光标下单词在/usr/include中定义的位置 ctrl-h, j, k, l 光标在各个窗口间跳转 % 在一个大小中括号跳转到对应括号 [[ 跳转到当前函数的开头 ][ 跳转到当前函数的结尾 ctrl-o 回退到光标之前的位置。 ctrl-i 按ctrl-o后返回。 2.搜索 ctrl-[ s 在整个工程里面搜索光标下单词,但不包括字符串和注释。 ctrl-[ t 在整个工程里面搜索光标下单词,包括字符串和注释。 :cscope find t word 在工程中搜索字符串word。 <F7> 高亮光标下单词 # 向上搜索光标下单词 * 向下搜索光标下单词 /word 搜索单词word /\<word\> 搜索单词word,并要求整词匹配 3.切换到工程下的另一个文件 F2 通过文件树跳转。 F8 已经打开的文件列表 F4 在头文件和实现文件两个文件切换。 ctrl-[ f 跳转到文件名含有光标下单词的文件。 ctrl-[ i 跳转到包含光标下单词对应文件的文件。 ctrl-[ I 跳转到包含当前文件的文件。 编写C/C++代码: 1.替换功能 :%s /word1/word2/g 将这个文件里的word1替换成word2。 2.对齐代码 = 对齐选中行代码 == 对齐当前行代码 gg=G 对齐整个文件 3.注释及反注释 , 注释选中行 . 反注释选中行
TODO
1.ctags在文件编码与终端编码不相同且跳转行有中文的情况下无法跳转 2.在cygwin下在同时打开nerdtree和tagbar的情况下退出,退出会出错
缘起
刚开始做Linux C/C++的时候试了很多编辑方式,包括: souce insight:通过Linux上的samba服务去写Linux主机里的代码(我觉得不通过定制版的vim和emacs之外最好的选择,一方面不需要打开虚拟机界面,另一方面souce insight写代码也确实挺好用的。 eclipse:很好用,但不得打开Linux图形界面,另外eclipse运行很慢,尤其大项目 qt creator:即使不是QT项目,当然也可以在Linux图形界面用QT CREATOR写代码,比eclipse运行快,当然如果是Linux下的QT项目当然QT creator也是首选。 VIM与EMACS:作为开发环境都要加跳转及自动补全类的插件。它们虽然功能上可能并没有其他IDE境强大,但其他IDE都需要打开很耗资源的图形界面,另外VIM和EMACS有很多其他IDE都不具备的好处,比如所有操作都不需要鼠标,能一键搜索等。另外它们都可以直接ssh到Linux主机然直接使用,缺点在于上手起来都较不容易。VIM与EMACS都可以无界限的加任何功能的插件,理论在一个上面能实现的功能在另一个上面一定能实现,不存在谁比谁强大的问题。从基本操作上个人还是更喜欢emacs,但因为折腾emcas插件比vim更难所以选择了vim。 这个VIM的定制是在一年的时间里逐渐完善起来的,其中一段时间转了emacs,后来折腾cedet实在没折腾不完善,也找不到谁用能交流下,所以最终回到了vim。这个vim定制的原则是尽量保持精简快速与更好的兼容性,但实现更多更强更实用更加人性化的功能。
http://code.google.com/p/vimide/ ubuntu 12.04 LTS vim-ide 0.5 安装ok winmanger:http://www.vim.org/scripts/script.php?script_id=95 map <c-w><c-f> :FirstExplorerWindow<cr> map <c-w><c-b> :BottomExplorerW
前言 又是周末, 春节之后,第一个工作周, 因新型冠状病毒肺炎疫情的发展非常严重, 所有公司,开启了远程在家办公方式。 又到了学习补充知识的时刻, 1年之前, 了解了基本的go语法就没在学习, 看着今年的计划, go 列入学习清单中。 Vim8 安装 vim-go 以 Vundle 方式安装 Vim 插件 准备工作, coc.nvim 插件安装依赖于 Node (nodejs >= 8.10.
更多分享内容可访问我的个人博客 https://www.niuiic.top/ 本文主要介绍 vim 高性能模糊查找插件 vim-clap。另外也推荐尝试 coc.nvim 自带的 coc list。 插件功能 模糊查找的内容包括编辑文件历史、文件内容、mark、tags、vim 主题、buffers、windows、quickfix 等等。 这些功能在一些 IDE 与 vscode 等编辑器中有
扩展工具为外业精灵提供的额外使用工具,这些工具可以提供一些更加便捷的功能,在后续的版本中会更新更多的工具提供使用。 实验室 点击主界面中左上方菜单图标可打开用户信息侧边栏,点击侧边栏中的设置图标可跳转至设置页面: 设置页面内,点击实验室选项可跳转至实验室页面。 实验室页面主要包含:路径规划模式、绘制点位吸附、标注名显示、地图缩放、电子罗盘、
PHP-X是一个基于PHP ZendVM的C++封装层,可以基于PHP-X开发PHP扩展、C++嵌入PHP、PHP SAPI等程序。PHP-X可以大大降低PHP内核扩展开发的难度,提升效率。 开源中国码云:http://git.oschina.net/swoole/PHP-X Github仓库:https://github.com/swoole/PHP-X QQ群:376696453 环境依赖 P
apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。 因此,要使用这个扩展机制,你的平台必须支持DSO特性,而且Apache httpd必须内建了mod_so模块。apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测:
有时候你需要实现自己的集合扩展。也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集。Guava提供了若干工具方法,以便让类似的工作变得更简单。 Forwarding Decorators 针对所有类型的集合接口,Guava都提供了Forwarding抽象类以简化装饰者模式的使用。 Forwarding抽象类定义了一个抽象方法:del
Electron supports Chrome DevTools extensions, which can be used to extend the ability of Chrome's developer tools for debugging popular web frameworks. 使用工具加载 DevTools 扩展 加载 DevTools 扩展的最简单方法是使用第三方工具,
工具集和扩展为 Entity Framework Core 提供了额外的功能。 扩展是由各种资源构成的。并非所有的扩展都被作为 Entity Framework Core 项目的一部分来维护。当考虑第三方扩展的时候,一定要评估其质量、许可、支持情况等等以确保它们符合你的需求。
Electron支持Chrome DevTools 扩展程序,可增强开发工具调试流行web框架的能力 DevTools Extension Electron supports the Chrome DevTools Extension, which can be used to extend the ability of devtools for debugging popular web fra
在WildFly 8-1上,我的webapps目录中有和。 我已配置: 我有以下JSF。 其中是 更新: 应Guaido79的请求,我的: