# vimrc **Repository Path**: wild_coder/vimrc ## Basic Information - **Project Name**: vimrc - **Description**: 个人vim/gvim配置(.vimrc/_vimrc),主要用于C语言单片机开发 - **Primary Language**: C - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2021-10-04 - **Last Updated**: 2024-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * [vimrc使用说明](#vimrc使用说明) * [介绍](#介绍) * [最新版vim获取(linux)](#最新版vim获取linux) * [依赖](#依赖) * [使用说明](#使用说明) * [configVim90.py使用说明](#configvim90py使用说明) * [功能和自定义按键说明(<>内表示同时按,否则为顺序按)](#功能和自定义按键说明内表示同时按否则为顺序按) * [移动光标-插入模式](#移动光标-插入模式) * [移动窗口-普通模式](#移动窗口-普通模式) * [jk](#jkesc映射) * [工作区恢复](#工作区恢复) * [功能](#功能) * [coc](#coc) * [easymotion](#easymotion) * [对齐: Tabular](#对齐-tabular) * [vim-floaterm](#vim-floaterm) * [翻译](#翻译) * [窗口跳转和调整](#窗口跳转和调整) * [keil命令](#keil命令) * [全屏插件](#全屏插件) * [文件类命令](#文件类命令) * [帮助](#帮助) * [Debug](#debug) * [keil编码配置(可选)](#keil编码配置可选) * [其他](#其他) * [演示](#演示) # vimrc使用说明 ## 介绍 - 个人vimrc配置,主要用来C语言的单片机开发, 代码补全,语法检测,具有简单的调试能力,优先更新win平台下的gvim环境 - 适用于: - c/c++ - python - markdown - 二进制文件(.bin) - vim版本: gvim9.0 x64 - 使用平台: - win10 ## 最新版vim获取(linux) 执行下面命令,卸载重新安装即可 ```bash sudo add-apt-repository ppa:jonathonf/vim ``` ## 依赖 - python3,如果翻译插件异常可以尝试如下软链接,powershell中使用管理员运行 ```bash New-Item -ItemType SymbolicLink -Path C:\Users\PC\AppData\Local\Programs\Python\Python311\python3.exe -Target C:\Users\PC\AppData\Local\Programs\Python\Python311\python.exe ``` - nodejs >= 10.12 - clangd - [universal-ctags](https://github.com/universal-ctags/ctags-win32/releases) ## 使用说明 - font目录下的字体手动安装一下, 当前使用`Hack Nerd Font Mono Nerd Font`,在`hack.zip`内 - 确保D盘存在,并且把gvim的默认安装路径改为D盘`D:\Program Files\Vim`,如果安装在其他位置需要手动拷贝文件,或者修改配置脚本 - 依赖安装 - python3 - nodejs - [下载链接](http://nodejs.cn/download/) - clangd - [下载链接](https://clangd.llvm.org/), 手动添加bin目录到系统环境变量 - 把fzf和fzf依赖文件夹下的ag、bat、delta、fzf、ripgrep解压,可执行文件添加环境变量 - *添加程序链接*:`sudo ln -s /path/to/your/program/myprogram /usr/bin/myprogram` - 打开vim - 安装插件 ``` :PlugInstall ``` - 安装coc LSP, 按自己的需要 ``` :CocInstall coc-clangd :CocInstall coc-pyright ``` - 安装vimspector的c调试器(这个需要从github拉取,可以找不同时间段尝试或者连接手机热点尝试,推荐从镜像站手动下载文件后放到下载目录再执行此命令) ``` :VimspectorInstall --enable-c ``` - 安装markdown预览组件 - win平台: 管理员运行powershell:(依赖nodejs) ``` npm -g install instant-markdown-d ``` - 安装`compile_commands.json`生成工具`compiledb`, powershell: ```shell pip install compiledb ``` - 工具安装, 下载[Cygwin64](https://cygwin.com/index.html), 安装gcc、g++、make等工具,安装完成后把bin目录添加到环境变量 - 编译器安装, 下载[arm-none-eabi-gcc](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)交叉编译器,安装完成后把bin目录添加到环境变量 - 把keil可执行文件目录添加到环境变量,可用于调用keil编译和下载 ## configVim90.py使用说明 使用管理员运行即可, 注意根据自己的目录适当修改 ## 功能和自定义按键说明(<>内表示同时按,否则为顺序按) ### 移动光标-插入模式 - ``:插入模式下移光标 - ``:插入模式上移光标 - ``:插入模式左移光标 - ``:插入模式右移光标 ### 移动窗口-普通模式 - ``:普通模式下移窗口 - ``:普通模式上移窗口 - ``:普通模式左移窗口 - ``:普通模式右移窗口 ### jk - `jk`: esc ### 工作区恢复 - ``: 保存工作区 - ``: 恢复工作区(不恢复文件树插件) ### 功能 - ``: 未映射 - ``: 文件树 - ``: 符号导航 - `be`: buffer列表 #### coc - `gd`: 跳转到定义 - `gr`: 跳转到引用 - `rn`: 符号重命名 - `f`: 格式化选中的代码 - `qf`: 对当前行使用自动修复 - `a`: 语法检查列表 - `o`: 查找当前文档符号 - `s`: 查找工作区符号 - `e`: 已安装coc扩展列表 - coc-snippets: - 安装:`CocInstall coc-snippets` - 配置: `:CocCommand snippets.editSnippets` - 配置`:CocConfig` - 关闭头文件自动导入: ```json { "clangd.arguments": [ //"-j=4", "--completion-style=detailed", //"--header-insertion=iwyu", "--header-insertion=never", "--suggest-missing-includes" ] } ``` #### easymotion - `w`:按单词向后跳转 - `b`:按单词向前跳转 - `s`:跳转到指定字符 #### 对齐: Tabular - 对齐指定字符:先选中要操作范围,选中后冒号 ``` :Tabularize /{char} ``` #### vim-floaterm - ``: 打开/隐藏终端窗口 - ``: 关闭终端窗口,在窗口关闭前使用 #### 翻译 - `t`: 在底行翻译 - `tt`: 弹窗翻译 - ``: Ken翻译 ### 窗口跳转和调整 - ``:使用tags文件跳转 - `s/d`: 窗口跳转 - `w/e`:窗口调整 - `j`:窗口交换 - ``:窗口滚动 - ``:窗口滚动 - ``:窗口滚动 - ``:窗口滚动 - ``:窗口滚动 - ``:窗口滚动 - ``:切换buffer标签,自动补全时切换选项,加`shift`反向切换 ### keil命令 - `kb`:使用keil编译 - `kr`: 使用keil重新编译 - `kd`: 使用keil下载 ### 全屏插件 - ``: 全屏 - `:全屏减小透明度 - `:全屏增加透明度 ### 文件类命令 - `hex`:打开二进制文件(不能用于关闭) 详细映射查看配置文件 ### 帮助 - `K`: 打开帮助 ## Debug 调试使用vimspector插件,需要`.vimspector.json` 配置文件 - ``: 运行/继续 - ``: 停止调试 - ``: 复位调试 - ``: 暂停 - ``: 添加/取消断点 - ``: 添加函数断点 - ``: 单步跳过 - ``: 单步进入 - ``: 单步跳出 ## keil编码配置(可选) - 屏蔽printf中文报错, option->c/c++(ac6)->Misc Controls,文本框填入: ``` -Wno-invalid-source-encoding ``` ## 其他 - 8051使用ctags生成tags文件辅助跳转,其他使用make的工具使用`make compiledb`更新数据库文件 - vimspector插件安装--enable-c时提示权限问题: ``` sudo chown -R username:username filename ``` - makefile里面win平台库路径示例: ```c -I D:/GreenSoft/gcc-arm-none-eabi-5_4-2016q3-20160926-win32/arm-none-eabi/include ``` - wsl下所有光标都一样,单独加入下面配置,可以凑合使用 | 1 | 2 | 3 | 4 | 5 | 6 | | :----: | :----: | :----: | :----: | :----: | :----: | | 闪烁块 █ | 块 █ | 闪烁下划线 ▁ | 下划线 ▁ | 闪烁竖线 ┃ | 竖线 ┃ | ``` " 进入插入模式下的光标形状 let &t_SI.="\e[5 q" " 进入替换模式下的光标形状 let &t_SR.="\e[3 q" " 从插入模式或替换模式下退出,进入普通模式后的光标形状 let &t_EI.="\e[1 q" " 进入vim时,设置普通模式下的光标形状 autocmd VimEnter * silent !echo -ne "\e[1 q" " 离开vim后,恢复shell模式下的光标形状 autocmd VimLeave * silent !echo -ne "\e[5 q" ``` ## 中文输入法输入问题 推荐使用小狼毫输入法,有vim模式,跨平台,用户配置如下: ```yaml # example weasel.custom.yaml patch: app_options/gvim.exe: # 程序名字全用小寫字母 ascii_mode: true ``` - 输入框按`F4`或`ctrl+\``可以选择简体中文模式 ## 演示 代码补全 ![gpio1.png](https://www.z4a.net/images/2022/09/25/gpio1.png) 终端 ![make1.png](https://www.z4a.net/images/2022/09/25/make1.png) 调试 ![本地路径](./img/debug1.png "相对路径演示")