<commit_before># [IndexVim](https://github.com/IndexXuan/wow-my-dotfiles)

[![time tracker](https://wakatime.com/badge/github/IndexXuan/wow-my-dotfiles.svg)](https://wakatime.com/badge/github/IndexXuan/wow-my-dotfiles)

## 特性
- 基于 [coc.nvim](https://github.com/neoclide/coc.nvim) 强大特性，完整 LSP 支持，异步无阻塞代码补全
- 专注前端以及 Node.js 开发，精选 Vim 插件以及 coc.nvim 扩展
- 极速启动，延时加载 & 按需加载几乎全部插件（基于 Timer 特性）
* 启动时间 `nvim --startuptime ~/vimstart.log`:

  PluginCount | StartupTime | File
  ----------- | ----------- |---------
     26+24    | 77 ~ 86ms   | empty (2021.03.05)
     26+24    | 86 ~ 100ms  | 700~ lines *.ts file (2021.03.05)
     26+24    | 103 ~ 111ms  | 1800~ lines *.ts file (2021.06.24)

## 必要环境
* Mac OS
* neovim >= 0.4.0 ( floatwindow feature )
* python3 support for neovim

### 必要工具
- python

```bash
pip3 install --user pynvim
```

- fonts
* [Node](https://github.com/nvm-sh/nvm) and Yarn(https://yarnpkg.com/zh-Hant/)
* [NerdFont](https://github.com/ryanoasis/nerd-fonts#option-4-homebrew-fonts)
* 安装完毕记得 Iterm2 里的 profile -> text 选择导入和使用新字体

```bash
brew tap homebrew/cask-fonts
brew install --cast font-hack-nerd-font
```

- rg (Ripgrep): [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) | CtrlP & CtrlSF
- Universal ctags: [ctags.io](https://ctags.io/)，比如 coc outline 为 markdown 生成大纲，算是一种兜底

## 结构
- [.vimrc](https://github.com/IndexXuan/IndexVim/blob/master/.vimrc) 基础配置，可开关是否加载插件 ( 基础配置已调优，足够在无插件情况下使用 )
- [.plug.vim](https://github.com/IndexXuan/IndexVim/blob/master/.plug.vim) 插件配置
    - 插件由两部分构成，vim-plug 方法块之间的声明以及对应的配置区域 ( 使用双花括号标记每个插件配置，便于导航 )

## 正常初始化加载插件 - 1
Name           | Description
-------------- | ----------------------
[neoclide/coc.nvim](https://github.com/neoclide/coc.nvim) | 基础插件，包含补全，LSP 等强大特性

## 延时加载插件 - 15<commit_msg>docs: update README<commit_after># [IndexVim](https://github.com/IndexXuan/wow-my-dotfiles)

[![time tracker](https://wakatime.com/badge/github/IndexXuan/wow-my-dotfiles.svg)](https://wakatime.com/badge/github/IndexXuan/wow-my-dotfiles)

## 特性
- 基于 [coc.nvim](https://github.com/neoclide/coc.nvim) 强大特性，完整 LSP 支持，异步无阻塞代码补全
- 专注前端以及 Node.js 开发，精选 Vim 插件以及 coc.nvim 扩展
- 极速启动，延时加载 & 按需加载几乎全部插件（基于 Timer 特性）
* 启动时间 `nvim --startuptime ~/vimstart.log`:

  PluginCount | StartupTime | File
  ----------- | ----------- |---------
     26+24    | 77 ~ 86ms   | empty (2021.03.05)
     26+24    | 86 ~ 100ms  | 700~ lines *.ts file (2021.03.05)
     26+24    | 103 ~ 111ms | 1800~ lines *.ts file (2021.06.24)
     26+24    | 55ms        | 100~ lines *.vue file (2021.08.20 MacBookAir M1)

## 必要环境
* Mac OS
* neovim >= 0.4.0 ( floatwindow feature )
* python3 support for neovim

### 必要工具
- python

```bash
pip3 install --user pynvim
```

- fonts
  - [Node](https://github.com/nvm-sh/nvm) and Yarn(https://yarnpkg.com/zh-Hant/)
  - [NerdFont](https://github.com/ryanoasis/nerd-fonts#option-4-homebrew-fonts)
  - 安装完毕记得 Iterm2 里的 profile -> text 选择导入和使用新字体

```bash
brew tap homebrew/cask-fonts
brew install --cast font-hack-nerd-font
```

- rg (Ripgrep): [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) | CtrlP & CtrlSF
- Universal ctags: [ctags.io](https://ctags.io/)，比如 coc outline 为 markdown 生成大纲，算是一种兜底

## 结构
- [.vimrc](https://github.com/IndexXuan/IndexVim/blob/master/.vimrc) 基础配置，可开关是否加载插件 ( 基础配置已调优，足够在无插件情况下使用 )
- [.plug.vim](https://github.com/IndexXuan/IndexVim/blob/master/.plug.vim) 插件配置
    - 插件由两部分构成，vim-plug 方法块之间的声明以及对应的配置区域 ( 使用双花括号标记每个插件配置，便于导航 )

## 正常初始化加载插件 - 1
Name           | Description
-------------- | ----------------------
[neoclide/coc.nvim](https://github.com/neoclide/coc.nvim) | 基础插件，包含补全，LSP 等强大特性

## 延时加载插件 - 15
{'fraction_non_alphanumeric': 0.2021570796460177, 'fraction_numerical': 0.042588495575221236, 'mean_word_length': 2.992273730684327, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 24, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2154447', 'n_tokens_mistral': 1913, 'n_tokens_neox': 1868, 'n_words': 244}