前两篇为大家介绍了在linux系统下,如何搭建一个C、C++的开发环境,介绍linux系统选择,编译器的选择,和编辑器的选择,以及为了摆脱编写底层makefile痛苦及考虑跨平台功能,而选择cmake来进行辅助编译。至此准备工作已经基本完成,可以着手写上一段代码,本篇就是为大家介绍vim-plus一键安装版编辑器在日常开发过程中的使用,本篇假设各位读者已经在ubuntu系统上成功安装vim-plus,如未能安装的,请移步查看我相关开发环境搭建的博客。
编辑器,一般需要满足日常文本的编辑功能,这部分功能设计的是否方便快捷好用,会直接影响编辑速度、开发速度,进而影响开发情绪。vim是一款在linux下很有名的编辑器,很多前辈大神赞誉有加,但是作为从win下转过来的开发者,却有点水土不服不太适应,因为vim仅仅是一款文本编辑器,自然没有win下vs专门用来开发的IDE功能那么丰富,但是vim扩展性非常强,配合一系列的插件,也可以打造开发用的基础环境,个人觉得如果用得习惯了,开发效率也不弱vs多少,vim-plus由vim+诸多插件合集构成,基本开发常用功能该合集均已具备,如还需要其他功能,可以自己找相应的插件进一步扩充。如下图是我安装完该合集之后的开发界面:
如上图所示是vim-plus开发界面,左边是NERDTree插件的子窗口,该插件能显示当前目录树。右边是vim编辑窗口,在该窗口进行代码编辑工作。本篇将根据我个人在几天短暂的使用过程中认为较为常用的指令和功能进行归类做一个说明性介绍,便于新手作为入门级参考文档和自己在后续工作中忘记备查。(本篇将认为读者具有一定的vim基础知识,能分辨vim处于一般模式、插入模式、视图模式)
1. vim文本编辑类常用指令
vim编辑器相对于win下编辑器少了些菜单操作,系统快捷键也不能通用在编辑器中,对于初学者来说不算友好。甚至比同为linux下的gedit编辑器也不如,vim可以认为是相对较为纯键盘的命令工作模式。这使得假如选择使用vim来进行文本编辑的话,需要学习一些vim日常使用的快捷键和快捷命令才能顺利进行文本编辑,这无形中提高了使用的门槛,也使很多人望而却步,个人认为其实就是使用习惯,渡过了开始的不适应基本也就没啥问题了,不过vim的常用指令还是需要在使用前先了解大致,然后在工作实战中加深记忆,本节将列出我个人认为比较常用的指令,具体如下:
在介绍指令之前,先介绍键盘中的Esc键为vim从插入模式和命令模式退出到一般模式的快捷键
A 文件操作类:
a. 使用vim打开或者是新建文件。命令:vim 文件路径/文件名。该命令一般用于使用vim打开文件或者新建文件,如是新建文件,请注意,这个时候文件并未保存。
b. 保存文件。在命令模式下,命令::w。保存文件。
c. 退出vim。在命令模式下, 命令::q 本命令将不保存编辑内容直接退出vim。:wq 该命令同样可以退出vim但是于:q不同的是,该命令将保存编辑内容后再退出vim。
B 编辑类:
a. 进入插入编辑模式,快捷键为:i、a、o 。在一般模式下,按这三个按键能进入插入编辑模式,可以进行文本输入。
b. 删除当前行文本,在一般模式下,连续两次dd键。
c. 拷贝当前行,一般模式下,y键。
d. 粘贴行文本,一般模式下,p键。
e. 文本块操作。一般模式下,v键进入视图模式,然后利用键盘方向键进行块选择,在一般模式下,上述两快捷键依然有效,这种组合解决了常用复制、粘贴文本块功能。视图模式下,选择块文本后,d键可进行块删除。
f. 查找文本。命令模式下:/查找文本 该模式用于从光标处向后查找。:?查找文本 该模式下用于从光标处向前查找。在查找状态下,下一个查找文本快捷键为 n键。
g. 替换文本。命令模式下 :%s/被替换文本/替换文本 。该指令有较多参数,本篇仅简单讲述常用参数。如果需要全文件替换,请在s前,加上%标识符。否则如果光标所在行没有匹配文本将提示错误。如果仅需要替换一行,请先将光标移到所在行,然后指令中去掉%标识符即可。
如上所述介绍了vim中常用的几个编辑快捷键,有文件操作,有拷贝、粘贴、还有查找、替换,加上文本的块操作,基本覆盖了文本的基本操作,通过介绍可知达到编辑目的除了鼠标操作外,win下IDE和vim实现除了快捷键有所不同外其余差别并不大,通过一段时间使用应该可以很快适应。限于本人也是初学者水平有限,更多更详细的vim指令介绍,请各位读者自行百度研究。本篇继续介绍vim-plus中其他在开发中需要用到的插件使用快捷键和使用方法。
2. NERDTree插件使用
a. 启用NERDTree并显示当前目录树。在vim命令模式下,输入:NERDTree 回车后会自动在左边新建一个窗口,并在窗口新建目录树。
b. 使用方向键进行目录选择,如果光标所在是文件夹,那么回车会打开文件夹,显示文件夹内部内容。如果光标所在行是文件,那么回车会在右边窗口直接打开该文件。
c. 目录窗口和文本编辑窗口的光标切换。快捷键为 ctrl + w + w 既按住ctrl键后,快速连按两次w键,即可完成目录树窗口和文本编辑窗口的切换。
d. 目录树窗口关闭。先将光标调整至目录树窗口,然后进入命令模式,输入 :q 则可关闭目录树窗口,这个命令可退出vim命令一致。
如上所述介绍了NERDTree插件常用功能,该插件解决了目录浏览,和打开目录中含有文件的快捷功能,相当于vs中项目文件浏览功能,极大方便了文件浏览和打开功能。
3. buffers
buffers是一个维护打开文件记录的插件,有了该插件后,在打开文件量较少时,能通过快捷键快速的在打开文件中进行切换,相当于vs使用鼠标点击打开文件跳转到打开文件进行编辑一样,只不过vs中是使用鼠标点击,vim中利用buffers插件的快捷键进行文件切换一样,文件切换快捷键为 ctrl + n 。在进行文件切换之前,需要确保光标在右边的编辑窗口,然后使用快捷键进行切换。
4. cpp-mode
cpp-mode提供了我们在开发中经常需要用到的函数声明跳转功能,如我们在查阅代码时,遇到不知道功能的函数,可以使用该插件提供的快捷键快速打开相应的文件,跳转到函数声明和函数实现去具体查看该方法的实现功能。
a. 跳转至函数定义。当光标设置在带跳转函数处,使用快捷键 , + u 既逗号 + u键,此处是由于vim-plus设置逗号键为快捷键导致。使用该快捷键后,vim会自动打开函数头文件,跳转至该函数定义处。
b. 从函数定义处跳转至函数实现。进行上一步跳转后,继续使用快捷键 ,+ a 既逗号 + a 键,再次跳转至该函数的实现文件。在该组合跳转下,可以到达函数实现处,查阅代码,查看具体实现逻辑。
5. 其他插件
其他如关键字高亮显示、代码自动补全、函数定义提示,代码格式化等等功能,在vim-plus中已经预设好,如需要修改自己适应的习惯,可以自己手动进行调整配置,达到自定义合适自己个性的目的。配置参数在安装目录下的.vimrc文件,或者是相应插件的配置文件。具体目录一般在用户根目录下可以查看,使用cd ~ 跳转至根目录,然后使用ls -al命令列出所有文件,.vimrc是隐藏文件,使用al参数后,可以显现。
总结:本篇介绍vim-plus合集编辑器的常用快捷键,包括编辑快捷键,及其常用插件的使用快捷键,所有快捷键都在vim编辑环境中完成,可见vim的扩展性有多强。从我们日常编码中需要的文本编辑、到项目工程目录浏览、浏览文件切换、函数定义跳转、其他如关键字高亮显示、代码自动补全、函数定义提示、甚至实时代码错误检测,该合集基本一应俱全,在该合集环境已经可以很顺畅的进行编写代码了,有兴趣的同行可以安装使用尝试下是否顺手。下载安装说明详见介绍:linux系统ubuntu18搭建C、C++开发环境 由于本人水品有限,也是刚入行的新手菜鸟,各位同行在翻阅博客时如发现错误地方,请及时指出以免误导其他翻阅该篇博客的读者,若有兴趣愿相互交流共同成长的,也欢迎各位同行随时进行计数交流,愿大家都可以在本篇博客中有所收获。
预告:本入门系列到现在,已经有了环境搭建、编译器工具cmake使用、及本篇的编辑器使用、到此已经可以进行代码的编写,代码的编译生成可执行文件,可以看到代码执行结果,如著名的“Holle world!”了,但是这对于一名合格的程序员来说应该还不仅如此,还差一个程序员必备的技能,那就是代码的调试,下篇博客将介绍如何使用gdb来进行代码调试工作,请各位需要了解的读者关注本博客,很快将推出调试篇简介。