{"id":16933744,"url":"https://github.com/neozenith/dotfiles","last_synced_at":"2025-03-23T17:30:57.349Z","repository":{"id":31963571,"uuid":"35533561","full_name":"neozenith/dotfiles","owner":"neozenith","description":"Personal Vim configuration and plugins under version control","archived":false,"fork":false,"pushed_at":"2024-12-12T04:44:43.000Z","size":20875,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-18T22:12:00.859Z","etag":null,"topics":["dotfile","vim"],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neozenith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-13T07:04:14.000Z","updated_at":"2024-12-12T04:44:48.000Z","dependencies_parsed_at":"2024-10-17T16:53:42.947Z","dependency_job_id":null,"html_url":"https://github.com/neozenith/dotfiles","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neozenith%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neozenith%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neozenith%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neozenith%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neozenith","download_url":"https://codeload.github.com/neozenith/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245140781,"owners_count":20567448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfile","vim"],"created_at":"2024-10-13T20:50:19.023Z","updated_at":"2025-03-23T17:30:52.330Z","avatar_url":"https://github.com/neozenith.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NeoZenith Vim dotFiles\n\n## Brief\n\n\u003cimg \n  align=\"right\"\n  alt=\"Vim Bonsai SVG Logo\"\n  src=\"https://neozenith.github.io/images/vim-bonsai.svg\" \n/\u003e\n\nThis is not intended as a public example of *good* management of VIM dotFiles \nalthough I do make every attempt to apply best practices in maintaining this \nconfiguration purely for my own ease of use and reference. \n\nLike the Vim bonsai logo, it all starts with a seed and then you nurture \nand prune it for your own environment. Each person's Vim journey is different\nfor this reason.\n\n\n----\n\n## Quick Start\n\nA lot of this has evolved since I first started so the tooling and dev dependencies need updating.\n\n### Some basics\n\n - https://brew.sh/\n\n```sh\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n```\n\n```sh\nbrew install neovim node python3 pyenv\n```\n\n- https://ohmyz.sh/\n\n```sh\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"\n```\n\n### The dotfiles\n\nFor now the thing that is constant is cloning this repo and copying some key _dotfiles_ that source into this repo.\n\nSymlinks aren't always available so I have chosen to always cop these files that act as the symlinks.\n\n```sh\nDOTFILES=$HOME/dotfiles\n[ ! -d \"$HOME/dotfiles/.git\" ] \u0026\u0026 git clone https://github.com/neozenith/dotfiles $HOME/dotfiles\n[ ! -d \"$HOME/dotfiles/zsh/scripts/aliases_work.sh\" ] \u0026\u0026 touch $HOME/dotfiles/zsh/scripts/aliases_work.sh\n[ ! -d \"$HOME/dotfiles/bash/aliases_work.sh\" ] \u0026\u0026 touch $HOME/dotfiles/scripts/aliases_work.sh\n[ ! -d \"$HOME/dotfiles/.vim/autoload/.git\" ] \u0026\u0026 git clone https://github.com/junegunn/vim-plug.git $HOME/dotfiles/.vim/autoload\n```\n\n```sh\ncp -rv $DOTFILES/.gitconfig ~/.gitconfig\n\ncp -rv $DOTFILES/.zshrc_link ~/.zshrc\ncp -rv $DOTFILES/.bashrc_link ~/.bashrc\n\ncp -rv $DOTFILES/.vimrc_link ~/.vimrc\ncp -rv $DOTFILES/.tmux_link.conf ~/.tmux.conf\ncp -rv $DOTFILES/nvim ~/.config/nvim\n```\n\n```sh\neval \"$(pyenv init --path)\"\ncurl -fsSL https://raw.githubusercontent.com/neozenith/python-onboarding-guide/main/latest_penv_versions.py | python3\n```\n\n```sh\n# Plugins: Install / Update / Prune\nnvim +PlugInstall +PlugUpdate +PlugClean! +qall\nnvim +checkhealth\n```\n\n\nList latest available Python3 versions in PyEnv\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/neozenith/python-onboarding-guide/main/latest_penv_versions.py | python3\n```\n\nFrom here you'll have to manually explore the respective `\u003cshell\u003e/scripts/` folders for what is needed.\n\nTo change default shell to `zsh`.\n\n```sh\nsudo chsh -s /bin/zsh \u003cmyUserName\u003e\n```\n\n----\n\n## Highlights\n\n - **Font**: [Sauce Code Pro][sauce-code-pro] [(Download link)][sauce-code-pro-download]\n - **Plugin Manager**: [Vim Plug `junegunn/vim-plug`][vim-plug]\n   - Use any github repo slug to reference a plugin and it downloads in parallel. Quickest setup.\n - **Autocomplete**: [YouCompleteMe `Valloric/YouCompleteMe`][ycm]\n   - Hooks into Vim's autocomplete API and depending upon filetype, it asynchronously uses the right parsing engine to reference the best autocomplete and even load documentation for function specs.\n - **Linting Engine**: [ALE (Async Linting Engine) `w0rp/ale`][ale]\n   - I used to use [Syntastic][syntastic] for years but linting takes time and syntastic would lock up Vim. [ALE][ale] will dispatch async jobs so I can save and eventually it'll let me know whats up. \n   - Really good when paired with the following to have a cool status bar summary of failed lints:\n     - [Lightline `itchyny/lightline.vim`][lightline]\n     - [Lightline-ALE `maximbaz/lightline-ale`][lightline-ale]\n - **File Management / Git**:\n   - [NerdTree `scrooloose/nerdtree`][nerdtree]\n   - [Vim-DevIcons `ryanoasis/vim-devicons`][vim-devicons]\n   - [NerdTree Git Plugin `Xuyuanp/nerdtree-git-plugin`][nerdtree-git]\n   - [Git Gutter `airblade/vim-gitgutter`][git-gutter]\n\n[sauce-code-pro]: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/SourceCodePro\n[sauce-code-pro-download]: https://github.com/ryanoasis/nerd-fonts/releases/download/v1.2.0/SourceCodePro.zip\n[vim-plug]: https://github.com/junegunn/vim-plug\n[ycm]: https://github.com/Valloric/YouCompleteMe \n[ale]: https://github.com/w0rp/ale\n[syntastic]: https://github.com/vim-syntastic/syntastic\n[lightline]: https://github.com/itchyny/lightline.vim\n[lightline-ale]: https://github.com/maximbaz/lightline-ale\n[nerdtree]: https://github.com/scrooloose/nerdtree\n[vim-devicons]: https://github.com/ryanoasis/vim-devicons\n[nerdtree-git]: https://github.com/Xuyuanp/nerdtree-git-plugin\n[git-gutter]: https://github.com/airblade/vim-gitgutter\n\n----\n\n## Screenshots\n\n![Vim sample with file explorer][sample1]\n\n![Vim sample with autocomplete][sample2]\n\n\n[sample1]: https://raw.githubusercontent.com/neozenith/vim-dotfiles/master/images/example1.png\n[sample2]: https://raw.githubusercontent.com/neozenith/vim-dotfiles/master/images/example2.png\n\n----\n\n## Git Bash Prompt \n\n![Screenshot of Git Prompt][gitprompt]\n\nInspired by the beautiful piece of bash scripting that is [Git Radar](https://github.com/michaeldfallen/git-radar) \nyet having been in companies where due to their git security setup it made git-radar unusable.\n\nSo I have built out a basic version of `git-radar`. This version does not run \ngit fetch automatically in the background so you will need to run that manually.\n\n[gitprompt]: https://raw.githubusercontent.com/neozenith/vim-dotfiles/master/images/git-prompt.png\n\nIf you want it without my complete dotfiles setup then: \n\nDownload [`bash-scripts/function_parse_git_prompt.sh`](https://github.com/neozenith/dotfiles/blob/master/bash-scripts/function_parse_git_prompt.sh)\nto your home directory \n\n```bash\ncurl -o $HOME/function_parse_git_prompt.sh https://github.com/neozenith/dotfiles/blob/master/bash-scripts/function_parse_git_prompt.sh\n```\n\nand add the following to your `.bash_profile` or `.bashrc`.\n\n```bash\nsource $HOME/function_parse_git_prompt.sh\nexport PS1=\"\\e[0;32m\\w\\e[m\"\nexport PS1=\"$PS1 \\$(parse_git_prompt)\"\nexport PS1=\"$PS1\\nλ \"\n```\n\n----\n\n## Developing and Maintaining\n\n**.vimrc**\n - The key entry file for vim configuration. \n - This should only source vim scripts for features and commenting \n out one shouldn't affect others. \n\n**.vim/mysubcript.vim**\n - Supporting files are located in `.vim/` and are *sourced* using the `runtime` \npath.\n\n**install.sh / install.bat**\n - These have 5-7 goals:\n   - Install supporting tools like Ruby / Python / CMake / Node\n   - *(Optional)* Install and build latest Vim from Source\n   - Install `.vimrc`\n   - Install `.vim/` and associated `.vim/*.vim` scripts.\n   - Install Vim-Plug into `.vim/bundle/Plug.vim/autoload`\n   - Start Vim to run `vim +PlugInstall +PlugUpdate +qall` to install \n   plugins managed by Plug.\n   - *(Optional)* Build and install [YouCompleteMe][ycm]\n - Rerunning the *install.sh / install.bat* should shortcut the install\n and just update plugins.\n\n **nvim/init.vim**\n  - This file should not change but will get symlinked to `~/.config/nvim/init.vim`\n  - This file will `source ~/.vimrc` and match existing plugin configuration.\n\n----\n## Plugins\n### Update Plugins\n\n```\nvim +PlugUpdate +qall\n```\n\n## Adding Plugins\n\nSee [Plug documentation][plug-docs]\n\n[plug-docs]:  https://github.com/junegunn/vim-plug#example\n\n----\n## Resources and Training\n\n_Getting Started and Getting Advanced with Vim_\n\nThese blogs have been hugely influential and informative in making the switch.\n\n**Onboarding**\n\n - `vimtutor`\n - [Vim Adventures][vim-adventures] - Online game of Vim Tutor\n\n**Core**\n\n - [VimCasts][vimcasts] - Video Tutorials\n    - [VimCasts Modal Editting and Repetition][vimcasts-repetition]\n    - [VimCasts Sharpening the Saw][vimcasts-sharpeningthesaw]\n - [Vim Text Objects: The Definitive Guide][text-objects]\n - [Vim Revisted][vim-revisited] - Good for explaining core navigation shortcuts\n - [Coming Home to Vim - Steve Losh][coming-home]\n\n**Extending**\n\n - [Doug Black - A Good Vimrc][dougblack-goodvimrc]\n - [Thorsten Ball's Vim Resources][thorsten-ball-vim-resources]\n\n[vimcasts]: http://vimcasts.org/\n[vimcasts-repetition]: http://vimcasts.org/episodes/modal-editing-undo-redo-and-repeat/\n[vimcasts-sharpeningthesaw]: http://vimcasts.org/blog/2012/08/on-sharpening-the-saw/\n[text-objects]: http://blog.carbonfive.com/2011/10/17/vim-text-objects-the-definitive-guide/\n[vim-revisited]: http://mislav.net/2011/12/vim-revisited/\n[coming-home]: http://stevelosh.com/blog/2010/09/coming-home-to-vim/\n[dougblack-goodvimrc]: https://dougblack.io/words/a-good-vimrc.html\n[thorsten-ball-vim-resources]: https://thorstenball.com/blog/2012/07/09/vim-learning-resources/\n[vim-adventures]: https://vim-adventures.com/\n\n----\n\n## Credits\n\n - [Tim Pope](https://github.com/tpope)\n - [Drew Neil](https://github.com/nelstrom)\n - [Steve Losh](https://bitbucket.org/sjl/)\n - [Thorsten Ball](https://github.com/mrnugget) \n - [Alessandro Pezzato](https://github.com/alepez)\n - [Mislav Marohnić](https://github.com/mislav)\n\nHuge thanks for everything you have done for the VIM community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneozenith%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneozenith%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneozenith%2Fdotfiles/lists"}