ACG | Spaceline |
---|---|
- ๐Fatest StartupTime(Plugins Total:58 40-60ms)
- ๐Modular Plugin Config
- โ Easy to use Easy to hack
- ๐95% plugins lazyload with dein
- โก๏ธCenterd on Coc.nvim, Denite auxiliary
- ๐ฑAutocompletion by lsp which coc.nvim support
- โ๏ธ Fully customizable
- ๐Comfortable theme gruvbox9
- macos or linux
- neovim >= 0.4.0๏ผcause i used floatwindow,this feature support by neovim 0.4.0 above)
- python3 support
- pip3 install --user pynvim
- node and yarn
- NerdFont
- rg (Ripgrep): BurntSushi/ripgrep
- Universal ctags: ctags.io
- mac
brew install --HEAD universal-ctags/universal-ctags/universal-ctags
- ubuntu
# install libjansson first sudo apt-get install libjansson-dev # then compile and install ctags
- mac
- Rouge :
sudo gem install rouge
1.
git clone --depth=1 https://github.com/taigacute/ThinkVim.git ~/.config/nvim
- Note: If your system sets $XDG_CONFIG_HOME, use that instead of ~/.config in the code above. Nvim follows the XDG base-directories convention.
2. open the nvim ,it will auto install dein and plugins,when the plugins install success,it will install coc extensions.
3. if you see the coc extesions installed success in your vim commandline .Congratulations
- Completion use LanguageServerProtocol by CoC.nvim.
- Whats is Language servers
- More about Coc
- ThinkVim support javascript typescript python.you dont need to install js ts python server(python you need jedi or Mpls).
- Supported features
- Register custom language servers
- Checkout the languageserverprotocol list which coc.nvim support,Coc Wiki
CoC support
๐ Click
Dart C/C++/Objective-C Rust Go PHP Dockerfile Bash Lua OCaml and ReasonML PureScript Flow Haskell vim/erb/markdown Elixir Python Ruby Scala Latext Elm Fortran clojure julia
-
CocExtensions
- The list is coc extensions which ThinkVim didnt installed,you can found the list that i installed coc extensions under the doc
CoC Extensions
๐ Click
coc-vetur for vue
coc-phpls for php
coc-java for java
coc-solargraph for ruby
coc-rls for rust
coc-yaml for yaml
coc-yank provides yank highlights
coc-fsharp for fsharp
.
coc-svg for svg
.
coc-tailwindcss for tailwindcss
.
coc-angular for angular
.
coc-vimlsp for viml
.
- autoload
- core/ - core config file
- dein - Plugins list!
- plugins.yaml - ThinkVim plugins
- local - your custom settings
- local_plugins.yaml - your plugins
- local_settings.vim - your vim settings
- plugins - Plugins Config!
- init.vim -
runtimepath
- dein.vim - Dein Config
- general.vim - Vim settings
- mappings.vim - Vim keymap
- themes - Colors
- dein - Plugins list!
- colors - Colorscheme
- ftplugin - filetypePlugin
- plugin - Some easy plugin
Normal Load Plugins
๐ Click
Name | Description |
---|---|
neoclide/coc.nvim | Autocompletaion |
hona/vim-snippets | Snippets |
Lazy Load Plugins
๐ Click
Name | Description |
---|---|
ludovicchabant/vim-gutentags | Provide ctags/gtags |
mhinz/vim-startify | Startify |
tyru/caw.vim | Comment Plugins |
t9md/vim-choosewin | Easy to jump window |
ryanoasis/vim-devicons | Provide the Icons |
tpope/vim-fugitive | Git Plugins |
junegunn/fzf.vim | Search File Word |
hona/dockerfile.vim | Dockerfile Supporte |
junegunn/vim-easyalign | Easy Align |
junegunn/goyo.vim | Distraction-free writing |
junegunn/limelight | Hyperfocus-writing |
Yggdroot/indentLine | Indent Line |
tpope/vim-repeat | Operate Repeat |
sbdchd/neoformat | Format |
yuttie/comfortable-motion.vim | Scroll |
chemzqm/vim-easygit | Git wrapper focus on simplity and usability |
chemzqm/denite-git | gitlog, gitstatus and gitchanged sources |
thinca/quickrun | Quick Run |
tpope/vim-markdown | Markdown syntax highlighting |
junegunn/vim-emoji | emoji |
simnalamburt/vim-mundo | Ultimate mundo history visualizer |
kana/vim-textobj-user | Create your own text objects |
kana/vim-operator-user | Define your own custom operators |
osyo-manga/vim-textobj-multiblock | Handle bracket objects |
machakann/vim-sandwich | set of operatorandtextobject plugins to search/select/edit sandwiched textobjects. |
kana/vim-operator-replace | Operator to replace text with register content |
rhysd/accelerated-jk | Up/down movement acceleration |
mg979/vim-visual-multi | Multiple cursors project |
terryma/vim-expand-region | Visually select increasingly larger regions of text |
liuchengxu/vim-which-key | Find the key |
easymotion/vim-easymotion | Vim motions on speed |
Shougo/defx.nvim | Dark powered file explorer implementation |
kristijanhusak/defx-icons | Filetype icons for Defx |
scrooloose/nerdtree | File manager |
Xuyuanp/nerdtree-git-plugin | Nerdtree git plugin |
tiagofumo/vim-nerdtree-syntax-highlight | Nerdtree Synatax Highlight |
scrooloose/nerdtree | File manager |
airblade/vim-gitgutter | Git status implementation for Defx |
airblade/vim-rooter | Changes Vim working directory to project root |
majutsushi/tagbar | Displays tags in a window, ordered by scope |
liuchengxu/vista.vim | Viewer & Finder for LSP symbols and tags |
mattn/emmet-vim | coc-emmet instead |
Shougo/denite.nvim | Dark powered asynchronous unite all interfaces |
w0rp/ale | Check syntax in Vim asynchronously and fix files |
othree/html5.vim | HTML5 omnicomplete and syntax Worked with coc-html |
neoclide/vim-jsx-improve | js jsx |
vim-python/python-syntax | Enhanced version of the original Python syntax |
Vimjas/vim-python-pep8-index | A nicer Python indentation style |
vim-scripts/python_match.vx | Extend the % motion for Python files |
tmhedberg/SimpylFold | No-BS Python code folding |
fatih/vim-go | go development |
elzr/vim-json | json |
cespare/vim-toml | toml |
vim-scripts/xml.vim | xml |
- Installed CoC Extensions
CoC Extensions
๐ Click
Name | Description |
---|---|
coc-html | html extensins |
coc-emmet | emmet |
coc-css | css |
coc-imselect | enhance input |
coc-emoji | emoji completion |
coc-lists | coclists |
coc-snippets | snippets extension instead Utilsnippets |
coc-prettier | Format |
coc-eslint | eslint check |
coc-stylelint | stylelint check |
coc-tsserver | js/ts lsp |
coc-pairs | pairs completion |
coc-json | json server |
coc-python | Python server |
coc-highlight | Highlight the cursors word, Show the css color |
coc-git | git extension |
coc-post | easy to use like postman |
- Custom
โผ๏ธ - if you need some plugins which not in Thinkvim ,you can add them into the
local/local_plugins.yaml
, theplugins.yaml
is thinkvim plugins file. - i think split the user plugins and thinkvim plugins in two files looks like good. this way cant break the thinkvim and easy to use.if you dont like
local
you can delete it .it doesnt effect thinkvim. but my advice is you can uselocal
unless you have vimscript skill and you grasp this config
- if you need some plugins which not in Thinkvim ,you can add them into the
- ColorScheme
- The theme is gruvbox9๏ผWorks fine with neoclide/vim-jsx-improve๏ผI create a new syntax group which provide the highlight of
jsxEndComponentName
in neoclide/vim-jsx-improve,if you wirte js/jsx, you will find the color very similar like vscode-gruvbox - The Color of other Languages are same as gruvbox,maybe some little change.
- The theme is gruvbox9๏ผWorks fine with neoclide/vim-jsx-improve๏ผI create a new syntax group which provide the highlight of
- Spaceline
- check out the spaceline config
- Startify can only set the header and footer centerd๏ผyou can edit the
core/plugins/startify.vim
,changed this numberlet g:startify_padding_left = 40
until the file area centerd on your screen
- Default leader
SPACE
localleader;
,The vim keymap inmappings.vim
,Plugins keymap incore/plugins/allkey.vim
- Insertkey like emacs
- if you find the keymap doesnt work , Or the keymap doesnt show in this keylist but in
allkey.vim
,you can create a isse. Welcome PR.
Operation
๐ Click
Keys | Mode | Description |
---|---|---|
Ctrl + w | Insert | delete the whole word |
Ctrl + h | Insert | delete BackSpace |
Ctrl + d | Insert | delete a single char |
Ctrl + u | Insert | delete to the beginning of the line |
Ctrl + b | Insert | move left |
Ctrl + f | Insert | move rght |
Ctrl + a | Insert | move the head of line |
Ctrl + e | Insert | move the end of line |
Ctrl + p | Command | move up |
Ctrl + b | Command | move left |
Ctrl + f | Command | move right |
Ctrl + a | Command | move the head of line |
Ctrl + e | Command | move the end of line |
Ctrl + d | Command | move the cursors char |
Ctrl + h | Command | delete BackSpace |
Ctrl + S | Insert | save |
Ctrl + Q | Insert | save and exit |
Ctrl + o | Insert | create a new line |
] + b | Normal | pre buffer |
[ + b | Normal | next buffer |
Ctrl + x | Normal | delte buffer |
Y | Normal | copy utils the end |
j | Normal | gj |
k | Normal | gk |
j | Visual | gj |
k | Visual | gj |
- | Noraml | ChooseWin |
, + Space |
Normal | Delete trailing spaces |
[ + a | Normal | Ale next |
] + a | Normal | Ale pre |
[ + c | Normal | coc next |
] + c | Normal | coc prev |
] + ] | Normal | jump to prev go func |
[ + [ | Normal | jump to next go func |
gc | Normal | caw.vim comment |
gcc | Normal | caw.vim uncomment |
ga | Normal | EasyAlign |
ga | Visual | EasyAlign |
sa | Normal | vim-sandwich prefix +{iw/is/ip}+{i/f/t} |
sd | Normal | vim-sandwich prefix +{iw/is/ip}+{i/f/t} |
sr | Normal | vim-sandwich prefix +{iw/is/ip}+{i/f/t} |
sdb | Normal | vim-sandwich prefix +{iw/is/ip}+{i/f/t} |
srb | Normal | vim-sandwich prefix +{iw/is/ip}+{i/f/t} |
v | Visual | vim-expand-region |
V | Visual | vim-expand-region |
zl | Normal | Denite Outline for golang |
zT | Normal | Denite Goroot for golang |
Window
๐ Click
Keys | Mode | Description |
---|---|---|
Ctrl + h | Normal | move to left window |
Ctrl + l | Noraml | move to right window |
Ctrl + j | Normal | move to down window |
Ctrl + k | Normal | move to up window |
Ctrl + w [ | Normal | the width of window reduce 3 |
Ctrl + w ] | Normal | the width of window increase 3 |
Ctrl + f | Normal | Window scrolling down |
Ctrl + b | Normal | Window scrolling up |
Ctrl + d | Normal | Window scrolls down half a screen |
Ctrl + u | Normal | Window scrolls up half a screen |
Tab
๐ Click
Keys | Mode | Description |
---|---|---|
<Leader> + tn |
Normal | create tab |
<Leader> + te |
Normal | edit tab |
<Leader> + tm |
Normal | move tab |
LeaderKey
๐ Click
Keys | Mode | Description |
---|---|---|
<Leader> + number |
Normal | number[0-9] choose buffer |
<Leader> + ca |
Normal | CocDiagnostics |
<Leader> + cc |
Normal | CocCommands |
<Leader> + ce |
Normal | CocExtensions |
<Leader> + cj |
Normal | Cocnext |
<Leader> + ck |
Normal | CocPrev |
<Leader> + co |
Normal | CocOutline |
<Leader> + cr |
Normal | CocResume |
<Leader> + cs |
Normal | CocIsymbols |
<Leader> + G |
Normal | open Goyo |
<Leader> + m |
Normal | open mundo |
<Leader> + w |
Normal | save file |
<Leader> + - |
Normal | ChooseWin |
<Leader> + s |
Normal | open Startify |
<Leader> + d |
Normal | open Dash |
<Leader> + p |
Normal | Edit the file which in plugins folder |
<Leader> + cf |
Normal | coc Format |
<Leader> + fc |
Normal | fzf chage vim colorscheme |
<Leader> + ff |
Normal | fzf find files |
<Leader> + fr |
Normal | fzf rg search |
<Leader> + fv |
Normal | fzf Vista Finder |
<Leader> + b |
Normal | fzf find buffer |
<Leader> + fw |
Normal | fzf rg search the cursor word |
<Leader> + fgc |
Normal | fzf gitcommits |
<Leader> + fbc |
Normal | fzf gitbcommits |
<Leader> + <Leader> + w |
Normal | Easymotion jump to donw |
<Leader> + <Leader> + b |
Normal | Easymotion jump to up |
<Leader> + <Leader> + f |
Normal | Easymotion search for jump |
<Leader> + gr |
Normal | vim-go GoRename |
<Leader> + goi |
Normal | vim-go GoInfo |
<Leader> + god |
Normal | vim-go GoDoc |
<Leader> + gor |
Normal | vim-go GoRun |
<Leader> + gob |
Normal | vim-go GoBuild |
<Leader> + got |
Normal | vim-go GoTest |
<Leader> + goc |
Normal | vim-go GoCoverage |
<Leader> + gov |
Normal | vim-go GoDef |
LocalLeaderKey
๐ Click
Keys | Mode | Description |
---|---|---|
<LocalLeader> + t |
Normal | Open Tagbar |
<LocalLeader> + r |
Normal | QuickRun |
<LocalLeader> + v |
Normal | Open Vista |
<LocalLeader> + da |
Normal | TodoAdd Add todo |
<LocalLeader> + ga |
Normal | Gadd |
<LocalLeader> + gd |
Normal | Gdiff |
<LocalLeader> + gc |
Normal | Gcommit |
<LocalLeader> + gb |
Normal | Gblame |
<LocalLeader> + gB |
Normal | GBrowse |
<LocalLeader> + gS |
Normal | GStatus |
<LocalLeader> + gp |
Normal | Gpush |
<LocalLeader> + gl |
Normal | Denite show all git log |
<LocalLeader> + gh |
Normal | Denite show git branch |
Denite
๐ Click
Keys | Mode | Description |
---|---|---|
<LocalLeader> + m |
Normal | Denite Menu |
Denite | Doaction | |
i | Denite | Open filter buffer |
d | Denite | Delete |
p | Denite | Preview |
st | Denite | tabopen |
sv | Denite | Vsplit |
si | Denite | Split |
' |
Denite | QuickMove |
q | Denite | Quit |
r | Denite | RedRaw |
yy | Denite | Yank |
<Esc> |
Denite | Quit |
<C-u> |
Denite | Restore Source |
<C-f> |
Denite | call Defx |
<C-x> |
Denite | Choose Action |
<Space> |
Denite | Toggle Select |
<Esc> |
Denite Filter | Quit |
q | Denite Filter | Quit |
<C-c> |
Denite Filter | Quit filter |
<kk> |
Denite Filter insert | move window |
<kk> |
Denite Filter normal | move window |
<jj> |
Denite Filter insert | move window |
<jj> |
Denite Filter normal | move window |
Defx
๐ Click
Keys | Mode | Description |
---|---|---|
<Leader> + e |
Normal | open defx |
N | Defx | touch new file |
K | Defx | touch new folder |
<CR> |
Defx | open file or folder |
l |
Defx | open file or folder |
dd | Defx | delete |
r | Defx | rename |
. | Defx | show ignore files |
h | Defx | Return to the parent directory |
q | Defx | exit defx |
s | Defx | Open in rightwindow vs |
i | Defx | Open file sp |
yy | Defx | copy the path of file |
\ | Defx | show the path of file |
c | Defx | copy |
m | Defx | move |
p | Defx | paste |
<Space> |
Defx | multi |
gf | Defx | open in denite |
gr | Defx | search in denite |
w | Defx | increase the width |
CoC
๐ Click
Keys | Mode | Description |
---|---|---|
Tab | Select | Jump |
Tab | Insert | completion donw |
Shit + Tab | Insert | completion up |
Ctrl + n | Insert | completion down |
Ctrl + p | Insert | completion up |
Ctrl + Space | Normal | Forced trigger completion |
<CR> |
Insert/Select | Confirm |
K | Normal | Show the function doc |
gd | Normal | jump to defined |
gy | Normal | coc-type-definition |
gi | Normal | coc-implementation |
gr | Normal | coc-references |
[ + g |
Normal | coc-git-prechunk |
] + g |
Normal | coc-git-nextchunk |
gs | Normal | git chunkinfo |
Do you like ThinkVim? keep it alive by donating funds๐!