Skip to content

Latest commit

 

History

History
243 lines (188 loc) · 10.3 KB

readme_cn.md

File metadata and controls

243 lines (188 loc) · 10.3 KB

my-vimrc

该仓库保存我的 VIM 配置文件,平时主要是用 VIM 写 Golang 、 Python 、 Markdown 较多。

目前有两个分支, master 分支是旧版本 VIM 的配置,已不再维护。

vim-8 分支是当前正在 macOS 上使用 VIM 8.1 版本使用的配置。

VIM 版本信息

VIM - Vi IMproved 8.1 (2018 May 18, compiled Oct 15 2019 10:20:59)
macOS version

特性

  • 自动检测并安装 vim-plug 插件管理器
  • 正确解析中文编码不乱码
  • 取消备份,不自动生成 swap 文件
  • 状态栏使用 airline 外观优美,信息丰富
  • 配置修改后自动加载立刻生效,已打开文件被修改后自动载入
  • 使用 ALE 自动语法检测并可自动修复
  • 文本搜索支持高亮和键入即时搜索并智能忽略大小写
  • 支持使用鼠标操作
  • 快捷切换文件行号显示
  • 保存文件是自动删除行尾空白和文件末尾空行
  • 使用 4 个空格填充 tab ,智能缩进,退格键智能删除空格
  • 支持代码按缩进折叠
  • 退出 VIM 后,内容显示在终端屏幕, 可以用于查看和复制
  • 打开文件时始终跳转到上次光标所在位置
  • 退出 VIM 后,仍然可以 undo 上次编辑
  • 拥有大量功能丰富,易记易按的按键映射
  • j|k 移动行的时候光标始终保持在屏幕中间
  • Ctrl + c normal 模式下复制文件全部内容到系统剪贴板, visual 模式下复制选中内容到系统剪贴板
  • Ctrl + v 按原样粘贴剪贴板内容
  • 支持查看文件目录树
  • 使用 LeaderF 显示函数列表
  • 一键运行当前 python 脚本,支持 virtualenv
  • 一键格式化 JSON
  • 中文之间夹杂的英文和数字之间可一键添加空格
  • 快速移动窗口或改变窗口大小
  • 使用 LeaderF 支持文件模糊查找
  • 支持一键添加或取消注释
  • 随机主题配色并支持一键切换
  • 优雅的启动界面
  • 集成 vim-go 插件, Gopher VIM 党标配
  • 支持括号配对高亮
  • 支持 Table 模式快速编辑、格式化 Markdown 表格
  • 支持颜色值预览
  • 支持异步执行 shell 命令
  • 支持显示 git diff 标记
  • 支持多行编辑
  • 支持快速修改单词两端的包裹字符
  • 使用 YouCompleteMe 支持代码自动补全
  • 自动配对编辑括号、引号
  • 支持展示屏幕日历
  • 支持 Nginx 配置高亮显示
  • 支持 Markdown 实时预览
  • 支持时序图

插件列表

使用 vim-plug 管理插件,会通过 .vimrc 自动下载,无需手动安装

自定义按键映射

  • 切换 buffer: ]b [b
  • 切换 tab: ]t [t
  • 复制(全部|选中)、粘贴:Ctrl-cCtrl-v
  • 写入只读文件: w!!
  • 关闭(打开)行号显示: <F2>
  • 打开(关闭)文件目录树: <F3>
  • 打开函数列表: <F4> (目前不支持一键关闭,需要在列表窗口中使用 :q退出)
  • 运行当前打开的 Python 脚本: <F5>
  • 新建 tab 标签页: <F6>
  • 一键 lint fix: <F8>
  • 格式化当前打开的 json 文件: <F9>
  • 中文中夹杂的英文和数字添加空格: <F10>
  • 给当前单词添加引号: \w'\w"
  • 快速编辑单词包裹字符: csXY dsX
  • 大小写转换并自动在前面加 _ (用于 abcDef -> abc_def ): !
  • 删除当前字符并对后面的字符进行大小写转换 (用于 abc_def -> abcDef ): @
  • 在 Normal Mode 和 Visual/Select Mode 下,利用 > 键和 < 键来缩进文本: > <
  • 上下左右切换窗口: Ctrl-k Ctrl-j Ctrl-h Ctrl-l
  • 调整窗口大小: Ctrl-Shift-方向键
  • 关闭 quickfix 窗口: \q
  • 模糊查找文件: \f \m
  • 格式化显示单行 JSON: \wj \pj
  • 多行注释编辑: \cc \cu
  • markdown 表格模式: \tm
  • 编译 go 文件: \gb
  • 运行 go 文件: \gr
  • 运行 go 单元测试: \gT
  • 运行 go 函数单元测试: \gt
  • 显示 Golang 代码引用列表: \r
  • 显示 Golang 代码接口函数的实现: \i
  • 增加 Golang 结构体 JSON tag: \t
  • 删除 Golang 结构体 JSON tag: \T
  • 填充 golang 结构体字段:\fs
  • 添加 Golang if err 检查代码: Ctrl-e
  • 跳转到 Golang 代码声明位置: gd
  • 代码补全: Ctrl-z
  • 切换随机主题配色: \c
  • 复制内容到系统剪贴板: Ctrl-c
  • 显示 git 提交信息: \gm
  • 打开 markdown 预览:\p
  • 关闭 markdown 预览:\q
  • 按文件名查找文件: \ff
  • 查找最近使用的文件: \fm
  • 按文件内容查找文件: \fg
  • .seq.sequence的时序图文件预览:\t

屏幕截图

有的截图可能不是最新的,仅供参考。

启动界面

日常编码截图

打开一个 go 文件

打开 Python 文件并一键运行

打开 Nginx 配置文件

代码补全

文件搜索

查看日历

颜色值预览

Markdown 预览

彩色括号

格式化文本中的单行 json

Markdown 表格模式

安装及使用

!!! VIM 版本必须在 8 以上 且 Python 版本是 3.x.x

VIM 升级可参考 wiki: https://github.com/axiaoxin/my-vimrc/wiki/Upgrade-VIM-to-8.x

Python 升级可参考 wiki: https://github.com/axiaoxin/my-vimrc/wiki/Upgrade-Python-to-3.x

系统剪贴板支持 wiki: https://github.com/axiaoxin/my-vimrc/wiki/note-for-ubuntu#ctrl-c%E5%A4%8D%E5%88%B6%E5%88%B0%E7%B3%BB%E7%BB%9F%E5%89%AA%E8%B4%B4%E6%9D%BF

外部依赖

使用该配置需要执行以下命令安装一些外部依赖:

brew install cmake python mono go nodejs pygments global cppcheck
brew unlink ctags && brew install --HEAD universal-ctags/universal-ctags/universal-ctags
[sudo] pip3 install isort flake8 autopep8 pylint mypy balck
npm -g install instant-markdown-d prettier markdownlint

安装插件

  1. 复制 .vimrc 文件到你的 $HOME目录下,打开 VIM ,执行 :PlugInstall ,等待插件安装完成。
  2. 安装 vim-go 依赖的二进制文件: 打开一个 go 文件执行 :GoInstallBinaries
  3. 安装 vim-go go_fmt_command 工具: go get -u github.com/segmentio/golines
  4. 配置 YouCompleteMe: https://github.com/ycm-core/YouCompleteMe#macos 执行 install.py 脚本前,可能你需要先安装好 go 、 rust 、 java 、 npm ,未安装可参考:https://github.com/axiaoxin/my-vimrc/wiki/YouCompleteMe-install-all-dependencies
cd ~/.vim/plugged/YouCompleteMe
python3 install.py --all
  1. 安装 nerdfont 字体: https://www.nerdfonts.com/font-downloads
  2. 安装 LeaderF C 扩展(可选)::LeaderfInstallCExtension
  3. 安装 Markdown 预览依赖: [sudo] npm -g install instant-markdown-d

Stargazers over time

Stargazers over time