300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C

【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C

时间:2020-10-07 00:04:36

相关推荐

【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C

环境

vim:8.2RedHat:Red Hat Enterprise Linux Server release 7.7 (Maipo)plug.vim

vim管理的基础

.vimrc,vim配置文件

Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。Vim 配置文件分为系统配置文件和用户配置文件:

– 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);

– 用户配置文件位于主目录 ~/.vimrc,即通过执行 vim ~/.vimrc 命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。

– Vim 用户配置文件比系统配置文件的优先级高。vim配置文件除了做一些全局配置外,如编码格式(fileencodings)、行号(number)等外,还可配置vim插件的情况;

.vim目录

vim插件安装之后,在用户目录之下的.vim文件夹之下有了相应的插件所对应的文件夹,每一个文件夹下面或者是子文件夹之下都存在一个 xxx.vim的文件;xxx.vim文件的本质就是脚本,因此在启动vim的时候会加载这些脚本文件,正是这些脚本的存在,才让我们可以自定义vim;vim的插件的本质是脚本Vim启动时或加载缓冲区时会遍历“runtimepath”。该设置是一组以逗号分隔的目录列表,各个目录的结构都是一致的。Vim会检查每个目录的结构,找到需要运行的脚本,并按照目录在列表中的顺序一一处理,其中就包括.vim文件夹;在我自己环境上执行的例子:

runtimepath=~/.vim,/usr/local/share/vim/vimfiles,/usr/local/share/vim/vim82,/usr/local/share/vim/vimfiles/after,~/.vim/after

vim 自身是通过在 .vim/ 目录中预定义的子目录管理所有插件;

vim插件管理机制

传统的vim plug管理方式

安装:

要安装一个插件,首先要从网络上下载下来,然后解压、并放在~/.vim/下合适的目录中,如plugin、syntax、ftplugin等。升级:

经常使用的一些插件,可能需要过一段时间去上面看看有没有新的版本,如果有的话,使用和安装相同的方式来解压覆盖,从而完成更新工作。卸载:

相对于安装和更新,这个就比较麻烦了,尤其是你有太多的插件的话,你无法确定某个插件到底安装了哪些文件,最坏的情况下,你可能需要下载一个原始版本来做参考,然后从你的~/.vim/目录中把它们删除干净。多台电脑保持同步:

通常的方法是把原来的~/.vim目录做个备份,然后在需要的时候把它整个复制过去。时间长了,这会产生问题,如果两台电脑中都做了修改(分别安装了不同的插件或更新了某个插件),这时将无法准确的保持同步。

新vim插件管理方式

借助第三方插件管理软件,如vim-plug、vundle等,自动维护(安装、卸载、更新等).vim目录下的不同插件;

使用vim-plug来安装管理相关插件

下载vim-plug

# 法1cd ~/.vim/autoload || mkdir ~/.vim/autoload && cd ~/.vim/autoload &&wget plug.vim /junegunn/vim-plug/blob/master/plug.vim# 法2cd ~/.vim/autoload || mkdir ~/.vim/autoload && curl -fLo ~/.vim/autoload/plug.vim --create-dirs /junegunn/vim-plug/master/plug.vim

plug.vim中的注释,有vim-plug的用法说明,可参考: vim ~/.vim/autoload/plug.vim

在.vimrc中配置vim-plug部分

sudo vim ~/.vimrc #加入下面两行:call plug#begin('~/.vim/plugged')call plug#end()

.vimrc文件中配置插件(以Nerdtree为例来说明)

找到对应插件的github地址,如nerdtree的为:

/scrooloose/nerdtree

在.vimrc中,call plug#begin()和call plug#end()之间加入需要安装的插件

call plug#begin('~/.vim/plugged') #路径对应本地安装插件的目录(目前默认会安装到~/.vim/plugged目录中),可自行修改;Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle' } #NERDTreeToggle表示按需加载call plug#end()```

scrooloose/nerdtree和github的路径是对应的,后面安装的时候,会自动到github上去下载相应插件。

使 .vimrc配置生效

通过输入以下命令重新加载:

:source ~/.vimrc

或重新加载 Vim 编辑器。

使用vim-plug安装vim插件

:PlugStatus #查看插件状态;:PlugInstall #安装所有插件(如果仅需安装某个插件,后面接插件名即可);

安装之后,可以查看下.vim目录的整体布局:

[qxhgd@localhost .vim]$ tree├── autoload│ └── plug.vim└── plugged└── nerdtree├── autoload│ ├── nerdtree│ │ └── ui_glue.vim│ └── nerdtree.vim├── CHANGELOG.md├── _config.yml├── doc│ ├── NERDTree.txt│ └── tags├── lib│ └── nerdtree│ ├── bookmark.vim│ ├── creator.vim│ ├── event.vim│ ├── flag_set.vim│ ├── key_map.vim│ ├── menu_controller.vim│ ├── menu_item.vim│ ├── nerdtree.vim│ ├── notifier.vim│ ├── opener.vim│ ├── path.vim│ ├── tree_dir_node.vim│ ├── tree_file_node.vim│ └── ui.vim├── LICENCE├── nerdtree_plugin│ ├── exec_menuitem.vim│ ├── fs_menu.vim│ └── vcs.vim├── plugin│ └── NERD_tree.vim├── README.markdown├── screenshot.png└── syntax└── nerdtree.vim11 directories, 29 files

使用vim-plug卸载vim插件

在.vimrc注掉或删除之前注册应插件的plug 命令;运行:source ~/.vimrc 或重启 Vim 编辑器;执行:PlugClean即可;

使用vim-plug更新vim插件

执行:PlugUpdate即可(如果需要更新某个插件,后面接插件名即可);

操作/使用vim插件的几种方式

vimrc中注册插件时候的配置插件的选项:

Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle' } #NERDTreeToggle表示按需加载

在vimrc文件中增加配某插件相关的配置

" NERDTreemap <C-n> :NERDTreeToggle<CR>" map 是快捷键映射命令" <C-n> 定义了快捷键,表示 Ctrl-n"后面是对应的命令以及回车键<CR>

在vim中直接输入插件相关命令快捷键

和编辑文件一样,通过h j k l移动光标定位打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能t 在标签页中打开T 在后台标签页中打开p 到上层目录P 到根目录K 到同目录第一个节点J 到同目录最后一个节点m 显示文件系统菜单(添加、删除、移动操作)? 帮助q 关闭

相关管理插件/插件汇总

vim管理插件发展史

3月- 7月:Vimball(分发格式和关联的Vim命令)

10月- 12月:Pathogen(由于原生vim包被弃用)

8月- 12月:Vimana

12月- 12月:VAM

8月 - 12月:Jolt

10月 - 12月:tplugin

10月 - 2月:Vundle(在NeoBundle破解代码后停止使用)

3月 - 3月:vim-flavor

4月 - 3月:NeoBundle(被弃用,建议使用dein)

1月 - 8月:infect

2月 - 8月:vimogen

10月 - 1月:vim-unbundle

12月 - 7月:Vizardry

2月 - 10月:vim-plug

1月 - 10月:enabler

8月 - 4月:Vizardry 2

1月 - 6月:dein.vim

年 12 月-至今,spacevim

9月 - 至今:原生Vim 8

2月 - 9月:minpac

3月 - 3月:autopac

2月 - 6月:pack

3月 - 9月:vim-pck

9月 - 9月:vim8-pack

9月 - 5月:volt

9月 - 2月:vim-packager

2月 - 2月:plugpac.vim

常用插件

智能补全类

YouCompleteMe,大名鼎鼎的YCM,它是⼀个快速、即输即查、模糊搜索的Vim代码完成引擎。它实际上有好⼏个完成引擎组成:deoplete.nvim,是一款自动补全的引擎,具体对某种编程语言的自动补全支持,要安装对应的source 才能真正工作;coc.nvim,其本身并不具备代码补全功能,要想完成代码补全,还需安装其他相应语言的 LSP 插件。因此 coc.nvim其实是一个能加载其他插件的 Vim 插件;neocomplete,为 vim 提供智能提示功能,将 vim 改造成强大的IDE;nerdcommenter,Vim 下高效率添加注释(或取消注释)的插件;

文件管理类

nerdtree,列出当前路径的目录树,一般IDE都是有的。可以方便的浏览项目的总体的目录结构和创建删除重命名文件或文件名;winmanager是vim下管理窗口的插件,整合了nerdtree和taglist,可以管理文件浏览器、缓冲区、taglist等窗口;

符号及跳转类

CTAGS,扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来,有Universal Ctags,Exuberant-ctags等;GTAGS(GNU GLOBAL)是一套源代码标记系统,使用它可以定位数据结构,函数,宏等等,并且可以方便地跳转;CSCOPE是类似于ctags一样的工具,但可以认为它是ctags的增强版,因为它比ctags能够做更多的事,还可以用来代码查找和定位代码。GTAGS和 CSCOPE、CTAGS功能有部分重叠的地方,一般使用CTAGES/GTAGS生成代码符号数据库,使用CSCOPE命令来实现快捷地跳转;taglist,支持taglist窗口,从中可以看到在c文件中定义的所有tag,如宏、定义、变量、函数等;也可以双击某个tag,跳到该tag定义的位置;还可以把某一类的tag折叠起来;

代码搜索类

RP(rip grep):增强grep来实现文本搜索的工具,特点就是速度非常快;Fzf(fuzzy finder):模糊查找的工具,其优点是用户可以不用记住精确的信息就可以查到对应的代码;ctrlp是一款支持对文件、缓冲区( :CtrlPBuffer )、MRU(Most Recently Used)文件( :CtrlPMRU )和标签进行模糊搜索/查找的Vim插件;

实际应用时,可根据需要自由组合,如Vim+Cscope+Gtags+YouCompleteMe+Rg+Fzf这种。

vim相关命令

vim安装相关

# 0-查看vim版本: vim --version | head -n 1#1 vim的升级# 1.1 从源码升级vim版本: yum install ncurses-develwget /vim/vim/archive/master.zipunzip master.zipcd vim-mastercd src/./configuremakesudo make installvimvim --version # 查看当前版本# 1.2 yum升级vim版本到最新:sudo yum update -y vim* #实验证明无法升到vim8

vim环境相关操作

vim环境的命令

:scriptnames #查看vim加载时加载了那些插件 :set all #查看环境配置参数:set runtimepath #查看运行时加载的搜索路径:options #vimrc设置的全部选项

vim插件的runtimepath的内容说明

~/.vim #主目录,保存个人偏好的文件。/usr/local/share/vim/vimfiles3 #系统范围的Vim目录,保存由系统管理员决定的文件。/usr/local/share/vim/vim82#即$VIMRUNTIME,保存与Vim一起分发的文件。/usr/local/share/vim/vimfiles/after #系统范围Vim目录中的“after”目录。系统管理员可以利用该目录来覆盖默认设置,或添加新的设置。~/.vim/after #主目录中的“after”目录。可以利用该目录用个人偏好覆盖默认设置或系统设置,或添加新的设置。

vim-plug相关命令

:PlugStatus #查看插件状态;:PlugInstall #安装插件;:PlugUpdate #更新插件;:PlugClean #删除插件,之前配合vimrc注掉或删除对应plug 命令。然后,运行:source ~/.vimrc 或重启 Vim 编辑器,最后执行PlugClean即可;:PlugUpgrade #升级vim-plug本身

参考资料

vimvimawesomeneovimspacevimvim-plugVundle24.3k star的vimrc配置use_vim_as_ide你真的会装vim插件吗?【vim-plug】详解使用Vim-plug作为Vim 插件管理器vimjcvim-directory-structure

如本文对你有些许帮助,欢迎大佬打赏:

支付宝及微信打赏方式

【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C/C++ IDE开发环境

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。