Linux 的编辑器--vim

打印 上一主题 下一主题

主题 2053|帖子 2053|积分 6159



1.Linux编辑器-vim使⽤

   vi/vim的区别简单点来说,它们都是多模式编辑器,差别的是vim是vi的升级版本,它不仅兼容vi的全部指令,⽽且另有⼀些新的特性在⾥⾯。比方语法加亮,可视化利用不仅可以在终端运⾏,也可以运⾏于x window、 mac os、 windows。  
2.vim的根本概念

   vim的三种模式(其实有很多多少模式,前期把握这3种即可),分别是命令模式(command     mode)、插⼊模式(Insert mode)和底⾏模式(last line mode)  
   •   正常/普通/命令模式(Normal mode)           控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,大概到 last line mode         •   插⼊模式(Insert mode)           只有在Insert mode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤的最频繁的编辑模式。         •   末⾏模式(last line mode)       ⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等利用。        在命令模式下,*shift+:* 即可进⼊该模式。要查看你的全部模式:打开 vim,底⾏模式直接输⼊ :help vim-modes    实际vim总共有12种模式,六种基础模式和六种新增模式,以为就是six BASIC modes和six ADDITIONAL modes.


3.vim的根本利用

模式间的利用
进入vim
      $ vim test.c           不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才可以或许输⼊⽂字。         [正常模式]切换⾄[插⼊模式]       •    输⼊a        •    输⼊i        •    输⼊o      •   [插⼊模式]切换⾄[正常模式]           •     ⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。         •   [正常模式]切换⾄[末⾏模式]       •   「shift + ;」, 其实就是输⼊「:」      •   退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」       •    : w (保存当前⽂件)        •    : wq (输⼊「wq」,存盘并退出vim)        •    : q! (输⼊q!,不存盘欺压退出vim)    4.命令模式的命令

   进入  插⼊模式:           •     按「i」切换进⼊插⼊模式「insert mode」,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊⽂件;           •     按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;           •     按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。         移动光标:       上下:       •    按[gg]:进⼊到⽂本开始       •    按「G」:移动到⽂章的末了       •    按「n+G」:移动到第n行         左右:       •    按「^」:移动到光标所在⾏的“⾏⾸”       •    按「 $    」:移动到光标所在⾏的“⾏尾”       •    vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移⼀格        •    按「w」:光标跳到下个字的开头           其他:       •    按「e」:光标跳到下个字的字尾        •    按「b」:光标回到上个字的开头        •    按「#l」:光标移到该⾏的第#个位置,如:5l,56l          •    按「ctrl」+「b」:屏幕往“后”移动⼀⻚        •    按「ctrl」+「f」:屏幕往“前”移动⼀⻚        •    按「ctrl」+「u」:屏幕往“后”移动半⻚        •    按「ctrl」+「d」:屏幕往“前”移动半⻚      删除⽂字:       •    「x」:每按⼀次,删除光标所在位置的⼀个字符        •    「#x」:比方,「6x」表⽰删除光标所在位置的“后⾯(包含⾃⼰在内)”6个字符        •    「X」:⼤写的X,每按⼀次,删除光标所在位置的“前⾯”⼀个字符        •    「#X」:比方,「20X」表⽰删除光标所在位置的“前⾯”20个字符        •    「dd」:删除光标所在⾏       •    「#dd」:从光标所在⾏开始删除#⾏      复制:           •     「yw」:将光标所在之处到字尾的字符复制到缓冲区中。           •     「#yw」:复制#个字到缓冲区           •     「yy」:复制光标所在⾏到缓冲区。           •     「#yy」:比方,「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字。           •     「p」:将缓冲区内的字符贴到光标所在位置。注意:全部与“y”有关的复制命令都必须           与“p”配合才能完成复制与粘贴功能。         粘贴:       •    「yy」:复制光标所在⾏到缓冲区。        •    「dd」:删除光标所在⾏,所在⾏到缓冲区。           •     「p」:将缓冲区内的字符贴到光标所在位置。注意:全部与“y”有关的复制命令都必须           与“p”配合才能完成复制与粘贴功能。         替换:           •     「r」:替换光标所在处的字符。           •     「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。         取消上⼀次利用:           •     「u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个利用。按多次“u”可以执⾏多次回复。           •     「ctrl + r」: 取消的恢复         更改       •    「cw」:更改光标所在处的字,输入一个新的字,esc退出。       •    「c#w」:比方,「c3w」表⽰更改3个字    切换巨细写:
   shift+`==~:切换巨细写
   查找:
   shift+1==#:光标所在单词的下一个位置。
  5.vim末⾏模式命令集

在使⽤末⾏模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进⼊末⾏模式。
   列出⾏号           •     「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。         跳到⽂件中的某⼀⾏           •     「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该⾏了,如输⼊数字15,再回⻋,就会跳到⽂章的第15⾏。         查找字符           •     「/关键字」: 先按「/」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往后寻找到您要的关键字为⽌。           •     「?关键字」:先按「?」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往前寻找到您要的关键字为⽌。           •     问题:∕ 和 ?查找有和区别?利用实行⼀下      


 保存⽂件
      •    「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来      脱离vim       •    「q」:按「q」就是退出,如果⽆法脱离vim,可以在「q」后跟⼀个「!」欺压脱离vim。        •    「wq」:⼀般发起脱离时,搭配「w」⼀起使⽤,如许在退出的时候还可以保存⽂件。    批量替换:
   %s /scr/dst/g 
  分屏:
   vs  文件名:分屏光标在哪边就是对哪边利用 、
  ctrl+ww    :切换光标所在文件
  6.批量解释利用


这里我们需要用到新的模式,视图模式了解即可
批量化解释:
   1.ctrl+v  :进入视图模式
  2.hjkl     :移动光标
  3.shift+i :进入插入模式。
  4.输入//
  5.ESC返回
  批量化去解释:
   1.ctrl+v  :进入视图模式
  2.hjkl     :移动光标
  3.d         :删除。
  hjkl选中区域就是我们视图模式利用的区域。 
7.vim的配置

以下是一份专为 C/C++ 开辟优化的 Vim 配置流程,涵盖代码补全、调试、格式化、项目管理等关键功能,适合在终端高效开辟。

1. 安装 Vim(确保版本 ≥ 8.2)

  1. # Ubuntu/Debian
  2. sudo apt update && sudo apt install vim-gtk  # 支持剪贴板
  3. # macOS
  4. brew install vim
  5. # Windows (通过 Chocolatey)
  6. choco install vim
复制代码

2. 创建 ~/.vimrc 并配置基础选项

  1. " === 基础设置 ===
  2. set nocompatible    " 禁用 Vi 兼容模式
  3. filetype plugin indent on  " 启用文件类型检测
  4. syntax enable       " 语法高亮
  5. set number          " 显示行号
  6. set relativenumber  " 相对行号(方便跳转)
  7. set tabstop=4       " Tab 显示为 4 空格
  8. set shiftwidth=4    " 自动缩进 4 空格
  9. set expandtab       " Tab 转空格
  10. set smartindent     " 智能缩进
  11. set cursorline      " 高亮当前行
  12. set mouse=a         " 启用鼠标支持(可选)
  13. " === 搜索优化 ===
  14. set incsearch       " 实时搜索
  15. set ignorecase      " 忽略大小写
  16. set smartcase       " 包含大写时区分大小写
  17. " === 快捷键映射 ===
  18. let mapleader = " " " 设置 Leader 键为空格
  19. nnoremap <leader>w :w<CR>   " 快速保存
  20. nnoremap <leader>q :q<CR>   " 快速退出
  21. inoremap jj <Esc>           " 用 jj 退出插入模式
复制代码

3. 安装插件管理器 Vim-Plug

  1. # Linux/macOS
  2. curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
  3.     https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  4. # Windows (PowerShell)
  5. iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
  6.     ni "$env:USERPROFILE/vimfiles/autoload/plug.vim" -Force
复制代码

4. 配置 C/C++ 专用插件(添加到 ~/.vimrc)

  1. call plug#begin('~/.vim/plugged')
  2. " === 主题 & UI ===
  3. Plug 'gruvbox-community/gruvbox'  " 经典主题
  4. Plug 'vim-airline/vim-airline'    " 状态栏美化
  5. " === 代码补全 & LSP ===
  6. Plug 'neoclide/coc.nvim', {'branch': 'release'}  " 强大的 LSP 支持
  7. " === 代码导航 & 分析 ===
  8. Plug 'preservim/tagbar'           " 显示代码结构(依赖 ctags)
  9. Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }  " 模糊搜索
  10. Plug 'junegunn/fzf.vim'
  11. " === C/C++ 增强 ===
  12. Plug 'rhysd/vim-clang-format'     " 自动格式化(需安装 clang-format)
  13. Plug 'bfrg/vim-cpp-modern'        " C++ 语法高亮增强
  14. " === 调试 ===
  15. Plug 'puremourning/vimspector'    " 图形化调试(类似 VS Code)
  16. " === 项目管理 ===
  17. Plug 'preservim/nerdtree'         " 文件树
  18. call plug#end()
  19. " === 主题设置 ===
  20. colorscheme gruvbox
  21. set background=dark
复制代码

5. 安装插件


  • 保存 ~/.vimrc 后,打开 Vim。
  • 运行 lugInstall 安装全部插件。

6. 配置 LSP(C/C++ 语言服务器)

安装依赖

  1. # 安装 clangd(C/C++ LSP 后端)
  2. # Ubuntu/Debian
  3. sudo apt install clangd-12
  4. # macOS
  5. brew install llvm
复制代码
配置 coc.nvim

在 Vim 中运行 :CocConfig,添加以下内容(JSON 格式):
  1. {
  2.   "languageserver": {
  3.     "clangd": {
  4.       "command": "clangd",
  5.       "rootPatterns": ["compile_commands.json", ".git"],
  6.       "filetypes": ["c", "cpp", "objc", "objcpp"]
  7.     }
  8.   }
  9. }
复制代码
常用 Coc 命令



  • :CocList diagnostics 查看错误
  • :CocCommand clangd.switchSourceHeader 切换 .h/.cpp
  • Ctrl+Space 触发补全

7. 配置 Clang-Format(代码格式化)


  • 安装 clang-format:
    1. sudo apt install clang-format  # Ubuntu/Debian
    2. brew install clang-format     # macOS
    复制代码
  • 在 ~/.vimrc 中添加速捷键:
    1. " 按 \= 格式化当前行或选区
    2. nmap <leader>= :ClangFormat<CR>
    3. vmap <leader>= :ClangFormat<CR>
    复制代码

8. 配置调试(Vimspector)


  • 安装调试器(如 gdb):
    1. sudo apt install gdb  # Ubuntu/Debian
    2. brew install gdb     # macOS
    复制代码
  • 在项目根目录创建 .vimspector.json:
    1. {
    2.   "configurations": {
    3.     "C++ Launch": {
    4.       "adapter": "vscode-cpptools",
    5.       "configuration": {
    6.         "request": "launch",
    7.         "program": "${workspaceRoot}/a.out",  " 修改为你的可执行文件路径
    8.         "args": [],
    9.         "stopAtEntry": true
    10.       }
    11.     }
    12.   }
    13. }
    复制代码
  • 快捷键:

    • F5 开始调试
    • F9 断点
    • F10 单步跳过


9. 常用快捷键总结

快捷键功能<Leader> + n打开/关闭文件树 (NERDTree)<Leader> + t打开 Tagbar(代码结构)<Leader> + f模糊搜索文件 (FZF)Ctrl + ]跳转到界说(LSP)Ctrl + o返回上一个位置gd查看界说(LSP)
10. 最终效果



  • 代码补全:coc.nvim + clangd
  • 调试:vimspector 图形化界面
  • 格式化:clang-format 一键美化
  • 导航:fzf + tagbar 快速跳转

附:快速恢复配置(备份与共享)

  1. # 备份配置
  2. cp ~/.vimrc ~/vimrc_backup
  3. # 在新机器恢复
  4. curl -fLo ~/.vimrc https://your-config-url/vimrc
  5. vim +PlugInstall +qall
复制代码
如许配置后,你的 Vim 将成为一个强大的 C/C++ IDE!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表