VIM简单配置step by step

2023-05-16

0 更新vim

更新和安装vim,保证版本>=8.0即可。可按照如下命令安装

0.1 安装依赖

yum update -y
yum install epel-release -y 
yum install -y git gcc-c++ ncurses-devel python-devel cmake wget make 
yum install -y python36 python36-devel

0.2 安装vim

yum remove vim
rm -fr /usr/local/vim /usr/bin/vim
cd ~ 
wget https://github.com/vim/vim/archive/v8.2.0000.tar.gz 
tar xzf  v8.2.0000.tar.gz 
cd vim-8.2.0000/  

 ./configure --prefix=/usr/local/vim  --with-features=huge --enable-multibyte --enable-gtk3-check  --enable-rubyinterp=yes --with-python3-command=python3 --enable-python3interp=yes --enable-perlinterp=yes --enable-luainterp=yes --enable-cscope 
make
make install
ln -s /usr/local/vim/bin/vim  /usr/bin/vim

vim --version #验证是否安装成功

参考:centos7编译VIM8 配置YouCompleteMe:YouCompleteMe unavailable: unable to load Python

1 创建新账户

添加一个账号进行测试,若测试配置成功在到其他账号进行vim的个性化配置,这样可以保证配置异常时无法正常使用的情况。

adduser tvim

2 vim-plug配置

2.1 下载与安装

安装vim-plug,只需要将 plug.vim 文件下载到 ~/.vim/autoload 文件夹即可。可使用如下命令进行安装。

curl -fLo ~/.vim/autoload/plug.vim --create-dirs  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

2.2 插件安装方法

只要将插件在github中的相对地址插入到对应用户的 ~/.vimrc 文件中的 vim-plug 域中即可,该域定义如下:

  • call plug#begin()开始,call plug#end()结束
  • 之间是将要安装的插件,使用Plug命令
  • 最后重新加载.vimrc文件,并使用:PlugInstall命令安装插件

2.3 例子

call plug#begin('~/.vim/plugged')
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
call plug#end()

2.4 vim-plug支持的命令

CommandDescription
PlugInstall [name ...] [#threads]安装插件
PlugUpdate [name ...] [#threads]安装或更新插件
PlugClean[!]Remove unlisted plugins (bang version will clean without prompt)
PlugUpgrade更新 vim-plug
PlugStatus检查插件的安装状态
PlugDiffExamine changes from the previous update and the pending changes
PlugSnapshot[!] [output path]Generate script for restoring the current snapshot of the plugins

3 安装YouCompleteMe

该插件是vim实现自动补全较好使用的一个插件,官网地址为github.com/ycm-core/YouCompleteMe。想要安装该插件需要的依赖是vim版本大于8.0,gcc版本大于8.0。下面是具体安装步骤,假设用户操作系统为centos。

更新gcc

vim更新步骤前面第0节已经提过,所以只升级gcc就可以了,通过一下命令升级gcc:

# root用户执行
cd ~
yum install centos-release-scl
yum install devtoolset-8-gcc devtoolset-8-gcc-c++
echo "source /opt/rh/devtoolset-8/enable" >> /etc/bashrc
source /etc/bashrc 
gcc -v
g++ -v

下载链接3中的文件,解压之后执行下面的命令:
wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6
strings libstdc++.so.6 | grep GLIBCXX

参考:
Centos 上将gcc和g++升级到8以上版本
GLIBCXX_3.4.26 not found
Centos 7 中高版本 libstdc++.so.6下载地址(解决报错:version’GLIBCXX_3.4.20’)

安装cmake

# root用户执行
yum install cmake3
ln -s /usr/bin/cmake3 /usr/bin/cmake
cmake --version

安装python3-dev

# root用户执行
yum install -y python3-devel.x86_64

参考:
How to install python3-devel on red hat 7

安装其他组件

# root用户执行
yum install mono-complete nodejs npm
yum install java-11-openjdk-devel
alternatives --config java
echo 'export PATH="/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.tl2.x86_64/bin/:$PATH"' >> /etc/bashrc
source /etc/bashrc

参考:
CentOS 7 安装 JDK 11.
从零开始vim搭建Java开发环境之coc.nvim 篇.

vim-plug安装YouCompleteMe

  • 基于vim-plug安装YouCompleteMe。
  • 编译YCM
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --all

参考:
YouCompleteMe 中容易忽略的配置
ycm-core/YouCompleteMe/README.md

5 NerdTree

  • 添加下面的代码到.vimrc文件中:
call plug#begin()
  " other plugs .....
  Plug 'preservim/nerdtree'
call plug#end()
  • 重启vim,运行 :PlugInstall 命令安装插件.

通过设置按键映射,或者直接执行:NERDTreeToggle<cr>命令可以打开或者关闭NerdTree
参考:
segmentfault: Vim的NerdTree插件

4 我的vimrc配置文件

最终的vimrc配置文件在仓库:codechina.csdn.net/tvim

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VIM简单配置step by step 的相关文章

随机推荐

  • C++与C语言的区别

    1 C 43 43 的创建历程 xff1a 20世纪70年代中期 xff0c Bjarne Stroustrup在剑桥大学计算机中心工作 他使用过Simula和ALGOL xff0c 接触过C 他对Simula的类体系感受颇深 xff0c
  • moment的startOf、endOf使用

    moment的startOf endOf使用 举例 xff1a 今天的日期 xff1a 2020 04 14 16 41 startOf语法 xff1a moment startOf String 通过将原始的 moment 设置为时单位的
  • 133道Java面试题及答案(面试必看)

    Java 面试随着时间的改变而改变 在过去的日子里 xff0c 当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试 xff0c 但是现在问题变得越来越高级 xff0c 面试官问的问题也更深入 在我初入职
  • JS的test()方法

    解析 解释 xff1a js的test 方法用于检测一个字符串是否匹配某个格式 语法 xff1a RegExpObject test string 返回值 xff1a 如果String中含有RegExpObject中匹配的字符返回true
  • 实时获取当前时间并展示在页面上

    简介 实时获取当前时间并展示在页面上 xff0c 是很多地方常用的 xff1b 在页面中做此展示以便查看时间 本文使用js通过一个小的demo实现效果 完整Code span class token operator lt span spa
  • Visual Studio Code提交代码提示“Make sure you configure your ‘user.name‘ and ‘user.email‘ in git.”

    使用VSCode编译器提交代码到gitlab xff0c 编译器提示 Make sure you configure your 39 user name 39 使用编译器VSCode提交代码到GitLab xff0c 提示 Make sur
  • React编译代码报错提示:React was passed “javascript:;“。

    React编译代码提示报错信息 xff1a React编译代码提示报错信息 xff1a Warning A future version of React will block javascript URLs as a security p
  • 如何添加Iconfont图标到项目及创建新项目?

    1 搜索图标 或者 选择自己上传图标 2 选择图标 xff0c 加入库 3 点击购物车图标 xff0c 如果已经创建项目直接选择点击确定 xff1b 如果没有创建项目点击 43 创建项目 4 输入新项目名称 xff0c 点击确定 5 确定后
  • antd icon 图标组件的使用

    antd提供的icon有限 xff0c 可以直接使用iconfont图标库的图标 1 安装图标组件包 npm install save 64 ant design icons 2 创建图标 import createFromIconfont
  • 字符串解析为指定格式

    将 张三 李四 王五 赵六 解析为 张三 李四 xff08 共4人 xff09 使用 xff1a let str 61 39 张三 李四 王五 赵六 39 empsDeal str 39 张三 李四 共4人 39 方法 xff1a cons
  • 清除redux数据(hooks写法)

    清除redux数据的场景 A页面初始化调用A接口 xff0c 希望在当前页面生效 xff0c 跳转页面不保存数据 xff0c 但redux中已经存有历史数据 xff0c 所以在页面销毁时清除redux数据 A页面请求A接口 useEffec
  • 跳转页面方法

    跳转页面 window location href 61 url 替换当前页面 window location replace url
  • 嵌入式面试总结

    毕业一年多了 xff0c 从事嵌入式开发工作不知不觉也一年多了 xff0c 题主主要从事单片机 xff08 STM32 xff09 应用开发工业类电子方向 xff0c 纯技术涉及到的内容主要是C语言 arm STM32驱动 FreeRTOS
  • 数据库ER图基础概念整理

    ER图分为实体 属性 关系三个核心部分 实体是长方形体现 xff0c 而属性则是椭圆形 xff0c 关系为菱形 ER图的实体 xff08 entity xff09 即数据模型中的数据对象 xff0c 例如人 学生 音乐都可以作为一个数据对象
  • 如何成为一个全能的机器人工程师

    大疆技术总监 xff1a 如何用六年成为一个全能的机器人工程师 机器人学的核心问题是做好和物理世界的交互 现在主流的机器人学分支里 xff0c 处理与物理世界的交互的学科分为三类 xff1a 传感器和处理算法 xff1b 多刚体系统动力学控
  • 任务调度算法

    可实现在单片机裸机下还能有很好的实时性 任务调度器 SCHEDULER TASK scheduler tasks 61 amp P loop 1000Hz 1000 0 0 amp P loop 500Hz 500 0 0 amp P lo
  • 阿里云云计算ACP学习(一)---弹性计算

    弹性计算 1 ECS的概念与定位 概念 xff1a 云服务器ECS xff08 Elastic Compute Service xff09 是一种可弹性伸缩的计算服务 xff0c 可以帮助降低IT成本 xff0c 提升运维效率 xff0c
  • 阿里云云计算ACP学习(二)---弹性存储

    弹性存储 1 阿里云盘古 盘古 飞天底层同一存储平台 盘古的优势 xff1a 盘古系统在一个核心基础层之上 xff0c 通过为不同应用场景而抽象的适配层设计 xff0c 提供了分布式块存储系统和分布式文件系统两种形态 xff0c 基于这一套
  • HDFS读写流程介绍,HDFS读数据和写数据的原理是什么?

    Client 客户端 对HDFS中的数据进行读写操作 xff0c 分别是Client从HDFS中查找数据 xff0c 即为Read 读 数据 Client从HDFS中存储数据 xff0c 即为Write 写 数据 下面我们对HDFS的读写流
  • VIM简单配置step by step

    0 更新vim 更新和安装vim xff0c 保证版本 gt 61 8 0即可 可按照如下命令安装 0 1 安装依赖 yum update y yum install epel release y yum install y git gcc