当前位置: 首页 > 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

编译成功


http://www.mrgr.cn/news/92497.html

相关文章:

  • Mysql基础-多表查询(详细版)
  • RabbitMQ系列(零)概要
  • 实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能
  • C# | GDI+图像测距辅助线的实现思路
  • AI人工智能机器学习之神经网络
  • 虚拟机 | Ubuntu 安装流程以及界面太小问题解决
  • 网络运维学习笔记(DeepSeek优化版)005网工初级(HCIA-Datacom与CCNA-EI)链路层发现协议与VLAN技术
  • 大数据SQL调优专题——调优切入
  • 脚本无法获取响应主体(原因:CORS Missing Allow Credentials)
  • 算法day1 dfs搜索2题
  • 0—QT ui界面一览
  • Codeforces Round 1006 (Div. 3)(部分题解)
  • FreeRTOS动态任务和静态任务创建
  • DeepSeek本地部署+自主开发对话Web应用
  • LLC谐振变换器恒压恒流双竞争闭环simulink仿真
  • React面试(一)
  • Redis缓存淘汰算法——LRU
  • 企业之IT安全管控概览和实践案例
  • 计算机视觉(opencv-python)入门之常见图像处理基本操作(待补充)
  • 2023年6月 GESP C ++ 试卷(二级)