基于vim搭建Linux下的IDE编译环境

前言

长期在win下办公,习惯了win + Source Insight + SecureCRT + SSH + 远程Linux服务器的工作模式,现完全切换至Linux平台,首先就想在该平台下搭建类似于Source Insight的IDE环境,从而实现本地代码阅读及编译。

本文将逐步记录搭建步骤及细节。

vim

这里跳过安装步骤直接介绍如何设定vim。
vim的设定是通过文件vimrc来完成的,针对所有用户可直接修改/etc/vim/vimrc; 若只针对个人用户,可在个人用户目录下创建.vim目录并添加文件vimrc,我采用的是后者。
具体设定如下:

选项说明
set mouse=a开启鼠标所有模式
set nocompatible关闭vim与vi兼容,避免冲突
set encoding=utf-8用户手册中建议设定该值
set showcmd命令行显示输入命令
set showmatch显示匹配的括号
set incsearch实时搜索
set hlsearch高亮显示匹配点
set number显示行号
set laststatus=2总是显示状态栏
set cursorline高亮显示当前行
set tabstop=4设置tab键的宽度
set shiftwidth=4自动缩进使用的4个空格
set autoindent自动采用上一行缩进值
filetype plugin indent on具体功能见下表
命令detectionpluginindent
:filetype ononunchangedunchanged
:filetype offoffunchangedunchanged
:filetype plugin onononunchanged
:filetype plugin offunchangedoffunchanged
:filetype indent ononunchangedon
:filetype indent offunchangedunchangedoff
:filetype plugin indent onononon
:filetype plugin indent offunchangedoffoff

查看filetype plugin indent状态

:filetype

以上设定可通过:help cmd查看帮助文档

  1. 常用命令
命令解释
[[向前跳到代码块开始处
]]向后跳到
gD跳到变量的定义处
>>增加缩进;多行缩进>x>
<<减少缩进;多行缩进<2<
gg移动到文档开头
G移动到文档末尾
^移动到行首第一个非空白字符
i在光标前插入
I在行首插入
a在光标后插入
A在行末插入
s删除光标所在的字符再插入
S删除光标所在行再插入
o在当前行下面新建行
O在当前行上面新建行

vim插件

1. Vbundle

Vbundle是一款vim插件管理工具,利用它可以实现对插件的搜索、安装、更新、卸载。

1.1 下载
mkdir ~/.vim/bundle -p
cd ~/.vim/bundle/
git clone https://github.com/VundleVim/Vundle.vim.git
#### 1.2 配置文件 在~/.vim/下创建配置文件vimrc.bundles并添加以下内容:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin ’VundleVim/Vundle.vim'
call vundle#end()
1.3 配置插件
  1. 插件来自Github
格式:Plugin ‘用户名/插件仓库名’
  1. 插件来自vim-scripts.org
格式:Plugin ‘插件名称’
实际上是Plugin ‘vim-scripts/插件仓库名’,只是此处的用户名可以省略
  1. 插件来自其他git库
格式:Plugin ‘git clone 地址’
  1. 其他方式
    可参考Vundle.vim/README.md

2. YouCompleteMe

YouCompleteMe是一款自动补全工具,支持多种语言。

2.1 安装

2.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'Valloric/YouCompleteMe'
   ...
   call vundle#end()

2.1.2 在vim中执行以下指令:
:PluginInstall
静待指令执行完成(时间可能会有点久,需耐心等待)。
待指令完成后执行以下指令:

cd ~./vim/bundle/YouCompleteMe
./install.py --clangd-completer
若要支持其他语言,请先安装相应工具包:
Ubuntu 16.04:
Go: sudo apt install golang-go
./install.py --go-completer
C#: sudo apt install mono-complete
./install.py --cs-completer
JavaScript
and TypeScript:
sudo apt install Node.js
sudo apt install npm
./install.py --ts-completer
Rust: sudo apt-get install curl
curl https://sh.rustup.rs -sSf | sh
./install.py --rust-completer
Java: sudo apt install openjdk-8-jdk
./install.py --java-completer
1. 以上安装步骤可参考YouCompleteMe/doc/youcompleteme.txt
2. 关于Rust,可参考该大佬文章Rust学习(1):ubuntu下安装Rust语言包以及IDE插件支持
2.2 配置

在vimrc.bundles添加如下设定:

let g:ycm_global_ycm_extra_conf='文件".ycm_extra_conf.py"的路径'

其他设定可参考doc/youcompleteme.txt

3. taglist

显示文件中的变量和函数列表。

3.1 安装

3.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'taglist.vim'
   ...
   call vundle#end()

3.1.2 在vim中执行以下指令:
:PluginInstall

3.1.3 系统中安装ctags

sudo apt install ctags
3.2 使用

代码目录下执行以下命令生成taglist:

ctags -R

4. srcexpl

预览函数和变量定义。

4.1 安装

4.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'srcexpl'
   ...
   call vundle#end()

4.1.2 在vim中执行以下指令:
:PluginInstall

5. trinity

这是一款管理taglist、srcexpl和NERD_tree窗口的插件(NERD_tree是一款目录插件,其已包含在trinity插件目录下)。

5.1 安装

5.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'wesleyche/trinity'
   ...
   call vundle#end()

5.1.2 在vim中执行以下指令:
:PluginInstall

5.2 配置

添加以下内容至vimrc.bundles:

" Open and close all the three plugins on the same time
nmap <F8> :TrinityToggleAll<CR>

" Open and close the srcexpl.vim separately
nmap <F5> :TrinityToggleSourceExplorer<CR>

" Open and close the taglist.vim separately
nmap <F6> :TrinityToggleTagList<CR>

" Open and close the NERD_tree.vim separately
nmap <F7> :TrinityToggleNERDTree<CR>

6. ctrlp

ctrlp是一款文件查找插件。通过该插件可快速查找并打开所需文件。

6.1 安装

6.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'ctrlpvim/ctrlp.vim'
   ...
   call vundle#end()

6.1.2 在vim中执行以下指令:
:PluginInstall

6.2 配置

添加以下配置至vimrc.bundles:

" 打开最近最多使用模式
nmap <c-m> :CtrlPMRU<CR>

" 打开缓冲区搜索模式
nmap <c-b> :CtrlPMRU<CR>

" 忽略如下文件
let g:ctrlp_custom_ignore = {
      \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$',
     \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$',
      \ }

" 禁用设置工作目录功能
let g:ctrlp_working_path_mode = 0

" 显示匹配窗口的位置
let g:ctrlp_match_window='bottom'

" 列出文件时CtrlP是否会跟随链接
" 0 - 不要跟随链接。
" 1 - 跟随但是忽略内部循环的链接,避免重复。
" 2 - 无差别的跟随所有链接。
let g:ctrlp_follow_symlinks = 1

" 设置按文件名搜索(否则为全路径)
let g:ctrlp_by_filename = 1

" 启用正则表达式匹配
let g:ctrlp_regexp = 1

7. c-support

c-support是一款编码辅助工具,可自动填充注释框架。

7.1 安装

8.1.1 在vimrc.bundles中添加+所在行内容并保存:

   call vundle#begin()
   ...
Plugin 'WolfgangMehner/c-support'
   ...
   call vundle#end()

7.1.2 在vim中执行以下指令:
:PluginInstall

7.2 使用
7.2 配置

7.2.1 添加个人信息**
添加个人信息至c-support/templates/Templates

若需自动添加额外内容,可将模型添加至以下文件并按照上述操作设定好预设值:

c-support/templates/c.comments.template
7.3 使用
命令功能
\if添加函数
\im添加main函数
\cfu为函数添加描述
\cfr添加框架注释
\p<自动填充#include<>
\rc保存,编译并执行

原文:Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值