当前位置: 首页 > news >正文

【Linux】vim 设置

【Linux】vim 设置

零、起因

刚学Linux,有时候会重装Linux系统,然后默认的vi不太好用,需要进行一些设置,本文简述如何配置一个好用的vim。

壹、软件安装

sudo apt-get install vim

贰、配置路径

对所有用户生效:

sudo vi /etc/vim/vimrc

对当前用户生效:

vi ~/.vimrc

查看配置位置:
打开vim,输入:version

叁、常用配置

" 显示行号
set number

" 显示光标行横线
set cursorline

" 高亮打开
syntax on

" 打开文件检测
filetype on

" 设置 tab 键的宽度为 4 个空格
set tabstop=4

" 设置当输入 tab 时,实际插入的空格数为 4
set shiftwidth=4

" 将 tab 转换为空格
set expandtab

" (可选)设置自动缩进时使用空格而不是 tab
set softtabstop=4

" 设置自动缩进
set autoindent

" 设置使用 c/c++ 语言的自动缩进方式
set cindent

vi配置

肆、C/C++代码自动补全

YouCompleteMe 是一个功能强大的语义级代码补全插件,支持 C/C++ 的智能提示和跳转。本文介绍 YouCompleteMe 如何配置。

安装依赖

基础工具链

sudo apt install g++ gcc cmake git python3-dev clangd

Vim 插件管理器 Vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

配置 .vimrc

添加以下内容到 ~/.vimrc

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/nerdtree'        " 可选:文件树插件
call vundle#end()

" YCM 配置
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
let g:ycm_clangd_binary_path = 'clangd'
let g:ycm_auto_trigger = 1               " 自动触发补全
let g:ycm_key_list_select_completion = ['<Tab>', '<Down>']
let g:ycm_key_list_previous_completion = ['<S-Tab>', '<Up>']

" 通用设置
syntax on
set number
set tabstop=4
set shiftwidth=4
set expandtab

安装 YCM

在 Vim 中执行插件安装命令(VIM会显示正在处理插件,等处理完再退出):

:PluginInstall

安装完成后,进入 YCM 目录编译:

cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clangd-completer

编译成功

相关文章:

  • 深入理解 Linux 中的 last 和 lastb 命令
  • OpenGL 04--GLSL、数据类型、Uniform、着色器类
  • Unity XR-XR Interaction Toolkit开发使用方法(十一)组件介绍(XR Interactable)
  • 在单位,领导不说,但自己得懂的7个道理
  • LSM-Tree (日志结构合并树)
  • Linux 运维工具-下载多个链接wget,aria2c
  • 06.【C++】模板初阶(template<typename T>,充分复用函数,函数模板和类模板的使用)
  • C#实现本地Deepseek模型及其他模型的对话
  • 在服务器Ubuntu22.04系统下,ComfyUI的部署
  • JavaScript系列(89)--前端模块化工程详解
  • centos和ubuntu安装mysql教程
  • 基于 Python 的网络监控系统开发全解
  • Android-创建mipmap-anydpi-v26的Logo
  • Activiti 5 + Spring Boot全流程开发指南
  • web安全——分析应用程序
  • java基本常识
  • 2025最新Flask学习笔记(对照Django做解析)
  • vue3-06vue2(Object.defineProperty)与vue3(基于ES6的Proxy)的响应式原理对比
  • 【注解】Java自定义注解
  • 跟着官方文档学习UE C++ TArray容器系列 迭代
  • 模板网站建设价位/百度小说排行榜总榜
  • 轻淘客 轻网站怎么做/中国网站访问量排行
  • 网站开发设计与实现/站长之家网站查询
  • iis 临时网站/网站优化师
  • 杭州做网站建设/百度关键词优化手段
  • 指纹锁在什么网站做宣传好/网推接单平台有哪些