haelle.vimrc
Ansible vimrc
一个用于安装 NeoVim 及一些插件的 Ansible 角色。
需要 Ansible 社区任务:
ansible-galaxy collection install community.general
依赖
目标
对以下语言/语法提供完整/无缝支持:
- Ruby/RoR
- HTML
- Javascript
- VueJS
- React
- Ansible
- JSON
- YAML
- Markdown
- C#
目标是实现 0 错误行为
主题与字体
当前主题为 slate(desert、industry 也不错);可以通过 :colorscheme xxx
更改,使用 Tab
查看可用主题。
当前字体为 MesloLGS NF Regular(支持表情符号),设置在 Zsh 中。
插件
安装插件::PlugInstall
(已由 Ansible 安装)
导航
帮助:使用 :help keycodes
显示 vim 键码名称
可以使用分屏、标签页和 Tmux 导航:
<C-w f>
: 在分屏中打开<C-w gf>
: 在标签页中打开<C-⬅,⬆,⬇,➡>
: 面板导航<C-w-⬅,⬆,⬇,➡>
: 移动面板gt
: 切换 vim 标签页<C-b>
: 触发 Tmux 导航
活动功能
gd
: 跳转到定义gi
: 跳转到实现gr
: 浏览引用gf
: 跳转到文件(仅限 Ruby/Rails)gg=G
: 重新格式化代码F2
: 重命名变量/方法/类<C-k>
: 显示方法定义qf
: 运行 linter 修复 - 工作不太好...fr
: 对当前行运行格式化器(不适用于 Solargraph/Ruby)fa
: 对整个文件运行格式化器<C-o>
: 返回<C-s>
: 保存<C-space>
: 触发自动补全引擎<tab>
: 在补全建议中导航<C-c>
: 注释/取消注释(行或选区)bufdo!
: 使用!
以避免保存文件(在此配置下是强制的...)
Ruby & Rails 相关:
<C-q>
: 切换 Ruby 测试与文件<C-w>t/s/l/a
运行测试/规范(文件、最近、最后、所有)
其他:
- 暂停 vim
Ctrl+z
并用 fg 返回
自动/被动功能
- 拼写检查
- 语法高亮
- 自动 lint 在边缘和浮动窗口
- 所有地方使用 2 个空格作为 tab
- 在会话之间记住光标位置
- 保存时删除尾部空行
- 修剪空格
- 显示所有不可见字符
- 高亮显示 'TODO/FIXME/XXX' 关键字
- 改善 vim 尺寸调整
- 添加所有类型的括号对()、[] 标签...
- 添加 Ruby 对(def/end,do/end)
- 在边缘添加 Git 信息
- 在边缘或下划线中添加 linter 信息
- 当可用时显示方法定义(使用
<C-a>
和<C-b>
向后和向前滚动)
搜索
活动:
<C-f>
: 在当前文件中搜索(基本 vim)<Shift-f>
: 在所有文件中搜索(使用 fzf.vim / ag)- 警告 : 你可能需要禁用终端搜索以使其工作
<Esc>
: 取消搜索(取消高亮)<C-p>
: 按名称搜索文件(使用 fzf.vim)Enter
: 打开<C-t>
: 在新标签页中打开<C-x>
: 在水平分屏中打开<C-v>
: 在垂直分屏中打开
被动:
- 高亮结果为 深绿色
- 高亮当前选中区域,光标闪烁
侧边栏 (NerdTree)
活动
<C-n>
: 打开/关闭 NerdTreeEnter
: 打开文件i
: 在水平分屏中打开s
: 在垂直分屏中打开- ... 详见 NerdTree 文档
被动
- 文件的图标
- 基于 Git 状态的符号
- 忽略某些文件夹(
node_modules
,.gitignore
)
Ruby - 眼见为实
F4/F5/F6/F7
标记/运行/标记并运行/清除标记代码
完成的征服
插件将在首次启动时安装。
对于 Solargraph,你需要为每个 Ruby 版本安装:
:InstallGems
有用的命令:
:CocInfo
:CocList commands
:checkhealth
:CocList extensions
:call CocAction('format')
:CocList marketplace python
请记住 可用扩展:
- javascriptreact
- typescript
- typescriptreact
- typescript.tsx
- graphql
角色变量
没有强制参数,所有参数在 defaults/main.yml
中。
示例剧本
- hosts: localhost
roles:
- role: vimrc
vim_user: foo
开发使用
要在本地运行,请创建符号链接:cd /etc/ansible/roles & sudo ln -s /path/to/vimrc .
许可证
BSD