Code Monkey home page Code Monkey logo

dotfiles's Introduction

vim as a programming IDE

The init.lua is highly optimized for loading performance. Packer lazy loading + After rendering async plugin loading. Maybe the only one that can render multiple files with treesitter in less than 100ms with ~80 plugins installed

Please check branches of this repo

  • plug branch (plug, coc)
  • lspsaga branch (lspsaga, packer, lspconfig)
  • nvim-comple branch (dein, nvim-complete)
  • master latest

I used to use slickedit, qt-creator, idea (webstorm, goland), vscode, but I am back to vi now. Thanks for Dein.vim I do not need to configure my setup everytime....... I am still using sublime edit(as a notepad)

vimr is one of the best nvim-gui. But it does not in active development(It is hard for a one developer project), some of the crash durning coding is annoying. I only use nvim(nightly) + kitty now.

The Plug config is located in branch Plug branch

  • nvim+kitty configured with pop menu:

    vim_ide with nvim+kitty

  • nvim clap preview:

    vim_ide with nvim+kitty

  • nvim+kitty + compe :

    vim_ide with nvim+kitty

Neovim Plugins

There are lots of amazing plugins, I used following plugin a lots

  • Plug -> Dein -> Lua-Packer Dein is a great tool. Very fast and very well support for vim/neovim lazy loading. Change to Lua-Packer does not bring as great improvements as Plug -> Dein. But still about 80ms faster (~20%) for Golang codes loading. If you interested in Dein version, Please refer to Dein. This was the last Dein/Packer dual supports version I have (init.vim has a flag to choose). ATM, minium support for vim. Most plugins only works under neovim 0.5.0+.

    I followed Raphael(a.k.a glepnir) https://github.com/glepnir/nvim dotfiles. He provides a good wrapper for Packer. I have an overwrite folder which will override the settings. Also, lots of changes in modules/plugins. luarock setup A.T.M. nvim-cmp as a completion engine with LSP, LSP saga. vim-multi-cursor, clap/telescope. treesitter, lazy load vim-go. So, other than module folder, I could copy/paste everything else from glepnir's configure file, which make my life easier.

  • vim-clap

    One of the best plugin for search anything. I used it to replace fzf, leaderF, leaderP, defx, Ag/Ack/Rg, yank(ring), project management. undolist and many more.

  • nvim-lsp with navigator.lua

    I turn off vim-go auto-complete/LSP and turn to nvim-lsp. It adds around 200ms bootup time and some of the extensions might crash when I using coc (but it hard to check which becuase ~4 node.js services coc forked) Some useful script from TJ, and glepnir

    nvim-tree: file-explorer (lightweight and fast) hrsh7th/nvim-compe: auto-complete vsnip: code snipts(Load snippet from VSCode extension). It is a full featured IDE.

    document symbol

  • ALE

    Well, I am still using ALE and configure lint tools with it. It is good to find something compiler missed. But more and more task will move to efm-server

  • Programming support: Treesitter, nvim-lsp and navigator.lua, for golang, use go.nvim

  • Debug:

    vimspector, dlv, nvim-dap

  • Theme, look&feel:

    home cooked Aurora, galaxyline (lua), devicons(lua), blankline(indent), Random load theme from aurora, tokyonight, moonlight, sonokai etc. I think aurora is great, but from time to time, I may get bored.

  • Color:

    Primary with treesitter from nvim nightly (nvim-lsp and this make it hard for me to turn back to vim), log-highlight, limelight, interestingwords, hexokinase as a replacement for colorizer (display hex and color in highlight)

  • Git:

    fugitive, gv, nvimtree, gitsigns.nvim, git-blame.nvim

  • Format:

    tabular, lsp based code formating (or, sometimes prettier), auto-pair

  • Menu and tab: quickui(created a menu for the function/keybind I used less often. I can not remember all the commands and keybinds....) But Damn it, I spend lots of time to configure it, however, I rarely use it. So I end up delete the plugin. nvim-bufferline.lua: Yes, with lua and neovim only

  • Tools: floatterm, scrollview

  • Move and Edit:

    easymotion -> hop, hlslens + vim-multi-cursor , vim-anyfold (better folding), Far for complex find and replace

Shell

  • OhMyZshell is good, iterm2 is popular, but I turned to zim(Zsh IMproved FrameWork ) + powerlevel10 + kitty. It is cooool and faster. nvim+kitty split view:

    vim_ide with nvim+kitty

zimfw is faster than oh-my-zh and zpreztor regarding the loading speed.

Parking lots

These tools are good, but due to confliction, less use, or, not suite to my workflow

  • vim/gvim
  • YCM you complete me
  • easymotion
  • oh-my-zh, iterm2
  • zpreztor
  • rainbow
  • defx

Brew bundles

Brew is managed by

brew bundle dump
brew bundle install

Check the bundle file Brewfile

dotfiles's People

Contributors

ray-x avatar ray-xu-deltatre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

dgiacomo burhan e6a5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.