|
1 | | -# kickstart.nvim |
| 1 | +Setting up Dev Environment |
2 | 2 |
|
3 | | -https://github.com/kdheepak/kickstart.nvim/assets/1813121/f3ff9a2b-c31f-44df-a4fa-8a0d7b17cf7b |
| 3 | +# Operating System |
4 | 4 |
|
5 | | -### Introduction |
6 | | - |
7 | | -A starting point for Neovim that is: |
8 | | - |
9 | | -* Small |
10 | | -* Single-file (with examples of moving to multi-file) |
11 | | -* Documented |
12 | | -* Modular |
13 | | - |
14 | | -This repo is meant to be used by **YOU** to begin your Neovim journey; remove the things you don't use and add what you miss. |
15 | | - |
16 | | -Kickstart.nvim targets *only* the latest ['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest ['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim. If you are experiencing issues, please make sure you have the latest versions. |
17 | | - |
18 | | -Distribution Alternatives: |
19 | | -- [LazyVim](https://www.lazyvim.org/): A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here) |
20 | | - |
21 | | -### Installation |
22 | | - |
23 | | -> **NOTE** |
24 | | -> [Backup](#FAQ) your previous configuration (if any exists) |
| 5 | +## Installing Fonts |
| 6 | +```bash |
| 7 | +wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf |
| 8 | +wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf |
| 9 | +wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf |
| 10 | +wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf |
| 11 | +``` |
25 | 12 |
|
26 | | -Requirements: |
27 | | -* Make sure to review the readmes of the plugins if you are experiencing errors. In particular: |
28 | | - * [ripgrep](https://github.com/BurntSushi/ripgrep#installation) is required for multiple [telescope](https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies) pickers. |
29 | | -* See [Windows Installation](#Windows-Installation) if you have trouble with `telescope-fzf-native` |
| 13 | +## Install command line stuff |
| 14 | +fd |
| 15 | +ripgrep |
| 16 | +tmux |
30 | 17 |
|
31 | | -Neovim's configurations are located under the following paths, depending on your OS: |
| 18 | +# Shell |
32 | 19 |
|
33 | | -| OS | PATH | |
34 | | -| :- | :--- | |
35 | | -| Linux | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` | |
36 | | -| MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` | |
37 | | -| Windows | `%userprofile%\AppData\Local\nvim\` | |
| 20 | +## ZSH (standard with mac) |
| 21 | +https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH |
38 | 22 |
|
39 | | -Clone kickstart.nvim: |
| 23 | +## Oh-My-Zsh |
| 24 | +The plugin management for ZSH |
| 25 | +https://github.com/ohmyzsh/ohmyzsh |
40 | 26 |
|
41 | | -```sh |
42 | | -# on Linux and Mac |
43 | | -git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim |
| 27 | +```bash |
| 28 | +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
44 | 29 | ``` |
45 | 30 |
|
| 31 | +## Powerlevel10k |
| 32 | +https://github.com/romkatv/powerlevel10k#oh-my-zsh |
46 | 33 |
|
| 34 | +```bash |
| 35 | +git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
47 | 36 | ``` |
48 | | -# on Windows |
49 | | -git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\ |
50 | | -``` |
51 | | - |
52 | | -### Post Installation |
53 | | - |
54 | | -Start Neovim |
55 | 37 |
|
56 | | -```sh |
57 | | -nvim |
| 38 | +In `~/.zshrc` |
58 | 39 | ``` |
59 | | - |
60 | | -The `Lazy` plugin manager will start automatically on the first run and install the configured plugins - as can be seen in the introduction video. After the installation is complete you can press `q` to close the `Lazy` UI and **you are ready to go**! Next time you run nvim `Lazy` will no longer show up. |
61 | | - |
62 | | -If you would prefer to hide this step and run the plugin sync from the command line, you can use: |
63 | | - |
64 | | -```sh |
65 | | -nvim --headless "+Lazy! sync" +qa |
| 40 | +ZSH_THEME="powerlevel10k/powerlevel10k" |
66 | 41 | ``` |
67 | 42 |
|
68 | | -### Recommended Steps |
| 43 | +# Terminal Management |
69 | 44 |
|
70 | | -[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo (so that you have your own copy that you can modify) and then installing you can install to your machine using the methods above. |
| 45 | +Install tmux |
| 46 | +https://github.com/tmux/tmux/wiki |
71 | 47 |
|
72 | | -> **NOTE** |
73 | | -> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git` |
| 48 | +Install TPM |
| 49 | +https://github.com/tmux-plugins/tpm |
74 | 50 |
|
75 | | -### Configuration And Extension |
76 | | - |
77 | | -* Inside of your copy, feel free to modify any file you like! It's your copy! |
78 | | -* Feel free to change any of the default options in `init.lua` to better suit your needs. |
79 | | -* For adding plugins, there are 3 primary options: |
80 | | - * Add new configuration in `lua/custom/plugins/*` files, which will be auto sourced using `lazy.nvim` (uncomment the line importing the `custom/plugins` directory in the `init.lua` file to enable this) |
81 | | - * Modify `init.lua` with additional plugins. |
82 | | - * Include the `lua/kickstart/plugins/*` files in your configuration. |
83 | | - |
84 | | -You can also merge updates/changes from the repo back into your fork, to keep up-to-date with any changes for the default configuration. |
85 | | - |
86 | | -#### Example: Adding an autopairs plugin |
87 | | - |
88 | | -In the file: `lua/custom/plugins/autopairs.lua`, add: |
89 | | - |
90 | | -```lua |
91 | | --- File: lua/custom/plugins/autopairs.lua |
92 | | - |
93 | | -return { |
94 | | - "windwp/nvim-autopairs", |
95 | | - -- Optional dependency |
96 | | - dependencies = { 'hrsh7th/nvim-cmp' }, |
97 | | - config = function() |
98 | | - require("nvim-autopairs").setup {} |
99 | | - -- If you want to automatically add `(` after selecting a function or method |
100 | | - local cmp_autopairs = require('nvim-autopairs.completion.cmp') |
101 | | - local cmp = require('cmp') |
102 | | - cmp.event:on( |
103 | | - 'confirm_done', |
104 | | - cmp_autopairs.on_confirm_done() |
105 | | - ) |
106 | | - end, |
107 | | -} |
| 51 | +```bash |
| 52 | +git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm |
108 | 53 | ``` |
109 | 54 |
|
110 | | - |
111 | | -This will automatically install [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) and enable it on startup. For more information, see documentation for [lazy.nvim](https://github.com/folke/lazy.nvim). |
112 | | - |
113 | | -#### Example: Adding a file tree plugin |
114 | | - |
115 | | -In the file: `lua/custom/plugins/filetree.lua`, add: |
116 | | - |
117 | | -```lua |
118 | | --- Unless you are still migrating, remove the deprecated commands from v1.x |
119 | | -vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]]) |
120 | | - |
121 | | -return { |
122 | | - "nvim-neo-tree/neo-tree.nvim", |
123 | | - version = "*", |
124 | | - dependencies = { |
125 | | - "nvim-lua/plenary.nvim", |
126 | | - "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended |
127 | | - "MunifTanjim/nui.nvim", |
128 | | - }, |
129 | | - config = function () |
130 | | - require('neo-tree').setup {} |
131 | | - end, |
132 | | -} |
| 55 | +At bottom of `~/.tmux.conf` |
| 56 | +``` |
| 57 | +# List of plugins |
| 58 | +set -g @plugin 'tmux-plugins/tpm' |
| 59 | +set -g @plugin 'tmux-plugins/tmux-sensible' |
| 60 | +
|
| 61 | +# Other examples: |
| 62 | +# set -g @plugin 'github_username/plugin_name' |
| 63 | +# set -g @plugin 'github_username/plugin_name#branch' |
| 64 | +# set -g @plugin '[email protected]:user/plugin' |
| 65 | +# set -g @plugin '[email protected]:user/plugin' |
| 66 | +
|
| 67 | +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) |
| 68 | +run '~/.tmux/plugins/tpm/tpm' |
133 | 69 | ``` |
134 | 70 |
|
135 | | -This will install the tree plugin and add the command `:Neotree` for you. You can explore the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) for more information. |
136 | | - |
137 | | -### Contribution |
| 71 | +## Plugins |
| 72 | +The installation of these should be covered by the included .tmux.conf |
| 73 | +To install plugins, use prefix + I (capital ) |
| 74 | +https://draculatheme.com/tmux |
138 | 75 |
|
139 | | -Pull-requests are welcome. The goal of this repo is not to create a Neovim configuration framework, but to offer a starting template that shows, by example, available features in Neovim. Some things that will not be included: |
| 76 | +# Once ZSH is setup, then add this to the bottom of ~/.zshrc to open tmux with new terminals. |
| 77 | +if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then |
| 78 | + exec tmux new-session -A -s main |
| 79 | +fi |
140 | 80 |
|
141 | | -* Custom language server configuration (null-ls templates) |
142 | | -* Theming beyond a default colorscheme necessary for LSP highlight groups |
| 81 | +# Editor |
143 | 82 |
|
144 | | -Each PR, especially those which increase the line count, should have a description as to why the PR is necessary. |
| 83 | +Install neovim |
145 | 84 |
|
146 | | -### FAQ |
| 85 | +## Plugin Management |
147 | 86 |
|
148 | | -* What should I do if I already have a pre-existing neovim configuration? |
149 | | - * You should back it up, then delete all files associated with it. |
150 | | - * This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/` |
151 | | - * You may also want to look at the [migration guide for lazy.nvim](https://github.com/folke/lazy.nvim#-migration-guide) |
152 | | -* What if I want to "uninstall" this configuration: |
153 | | - * See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information |
154 | | -* Are there any cool videos about this plugin? |
155 | | - * Current iteration of kickstart (coming soon) |
156 | | - * Here is one about the previous iteration of kickstart: [video introduction to Kickstart.nvim](https://youtu.be/stqUbv-5u2s). Note the install via init.lua no longer works as specified. Please follow the install instructions in this file instead as they're up to date. |
| 87 | +Using Packer |
| 88 | +https://github.com/wbthomason/packer.nvim#bootstrapping |
157 | 89 |
|
158 | | -### Windows Installation |
159 | 90 |
|
160 | | -Installation may require installing build tools, and updating the run command for `telescope-fzf-native` |
| 91 | +# Important Config Files |
| 92 | +~/.zshrc |
| 93 | +~/.tmux.conf |
| 94 | +~/.config/nvim |
161 | 95 |
|
162 | | -See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation) |
| 96 | +# Useful Videos |
| 97 | +https://www.youtube.com/watch?v=H70lULWJeig |
163 | 98 |
|
164 | | -This requires: |
| 99 | +# Java Debugging Setup |
| 100 | +Following steps from here |
| 101 | +https://sookocheff.com/post/vim/neovim-java-ide/ |
165 | 102 |
|
166 | | -- Install CMake, and the Microsoft C++ Build Tools on Windows |
| 103 | +Clone this repo |
| 104 | +https://github.com/microsoft/java-debug |
167 | 105 |
|
168 | | -```lua |
169 | | -{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } |
170 | | -``` |
| 106 | +cd into the repo |
| 107 | +`./mvnw clean install` |
171 | 108 |
|
0 commit comments