You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A highly modular, configurable, extensible and easy to use Neovim configuration wrapper written in Nix. Designed for flexibility and ease of use and with code quality in mind.
A highly modular, configurable, extensible and easy to use Neovim configuration
34
+
framework in Nix. Designed for flexibility and ease of use, this flake
35
+
allows you to easily configure your Neovim instance with a few lines of
36
+
Nix code.
37
+
</a>
39
38
</div>
40
39
<br/>
41
40
@@ -72,109 +71,81 @@
72
71
73
72
### Using `nix` CLI
74
73
75
-
If you would like to try out the configuration before even thinking about installing it, you can run the following command
74
+
If you would like to try out the configuration before even thinking about
75
+
installing it, you can run the following command
76
76
77
77
```console
78
-
nix run github:notashelf/neovim-flake
78
+
nix run github:notashelf/nvf
79
79
```
80
80
81
-
This will get you a feel for the base configuration and UI design. The flake exposes `#nix` as the default package, providing minimal language support and various
82
-
utilities.You may also use `#nix`, `#tidal` or `#maximal` to get try out different configurations.
81
+
This will get you a feel for the base configuration and UI design.
82
+
The flake exposes `#nix` as the default package, providing minimal
83
+
language support and various utilities.You may also use `#nix`,
84
+
`#tidal` or `#maximal` to get try out different configurations.
83
85
84
-
It is as simple as changing the target output to get a different configuration. For example, to get a configuration with `tidal` support, run:
86
+
It is as simple as changing the target output to get a different
87
+
configuration. For example, to get a configuration with `tidal` support, run:
85
88
86
89
```console
87
-
nix run github:notashelf/neovim-flake#tidal
90
+
nix run github:notashelf/nvf#tidal
88
91
```
89
92
90
-
Similar instructions will apply for `nix profile install`. However, you are recommended to instead use the module system as described in the manual.
93
+
Similar instructions will apply for `nix profile install`. However, you are
94
+
recommended to instead use the module system as described in the manual.
91
95
92
96
> [!NOTE]
93
97
> The `maximal` configuration is _massive_ and will take a while to build.
94
-
> To get a feel for the configuration, use the default `nix` or `tidal` configurations.
95
-
> Should you choose to try out the `maximal` configuration, using the binary cache as described
96
-
> in the manual is _strongly_ recommended.
97
-
98
-
### Docker
99
-
100
-
As of version 0.5, an image for the `nix` output is published to Dockerhub and GitHub packages with each tagged release. If you do not have Docker installed
101
-
on your system, you may run neovim within a container using your favorite tool. You are still recommended to use `nix` instead of Docker.
102
-
103
-
The following command will open the current directory in neovim with necessary tools bootstrapped.
104
-
105
-
```console
106
-
docker run -v `pwd`:/home/neovim/demo --rm -it notashelf/neovim-flake:latest
107
-
```
108
-
109
-
The available registeres are `ghcr.io` and `dockerhub` for the time being. Adjust to your liking.
98
+
> To get a feel for the configuration, use the default `nix` or `tidal`
99
+
> configurations. Should you choose to try out the `maximal` configuration,
100
+
> using the binary cache as described in the manual is _strongly_ recommended.
110
101
111
102
## Documentation
112
103
113
-
See the [neovim-flake Manual](https://notashelf.github.io/neovim-flake/) for detailed installation guides, configurations, available options, release notes
114
-
and more.
104
+
See the [**nvf** Manual](https://notashelf.github.io/nvf/) for
105
+
detailed installation guides, configurations, available options, release notes
106
+
and more. Tips for installing userspace plugins is also contained in the
107
+
documentation.
115
108
116
-
If you want to dive right into trying **neovim-flake** you can get a fully featured configuration with `nix`
117
-
language support by running:
109
+
If you want to dive right into trying **nvf** you can get a fully
110
+
featured configuration with `nix`language support by running:
118
111
119
112
```console
120
-
nix run github:notashelf/neovim-flake
113
+
nix run github:notashelf/nvf#nix
121
114
```
122
115
123
-
Please create an issue on the [issue tracker](../../../issues) if you find the documentation lacking or confusing.
124
-
I also appreciate any contributions to the documentation.
116
+
Please create an issue on the [issue tracker](../../../issues) if you find
117
+
the documentation lacking or confusing. I also appreciate any contributions
118
+
to the documentation.
125
119
126
120
## Help
127
121
128
-
You can create an issue on the [issue tracker](../../../issues) to ask questions or report bugs.
129
-
I am not yet on spaces like matrix or IRC, so please use the issue tracker for now.
122
+
You can create an issue on the [issue tracker](../../../issues) to ask questions
123
+
or report bugs. I am not yet on spaces like matrix or IRC, so please use the issue
124
+
tracker for now.
130
125
131
126
## Contributing
132
127
133
-
I am always looking for new ways to help improve this flake. If you would like to contribute, please read
134
-
the [contributing guide](CONTRIBUTING.md) before submitting a pull request. You can also create an
135
-
issue on the [issue tracker](../../../issues) before submitting a pull request if you would like to discuss
136
-
a feature or bug fix.
137
-
138
-
## Philosophy
139
-
140
-
The philosophy behind this flake configuration is to create an easily configurable and reproducible Neovim environment.
141
-
While it does sacrifice in size (which I know some users will find _disagreeable_), it offers a lot of flexibility and customizability in
142
-
exchange for the large size of the flake inputs. The "KISS" (Keep it simple, stupid) principle has mostly been abandoned here, however, you _can_
143
-
ultimately leverage the flexibility of this flake to declare a configuration that follows KISS principles, as it is very easy to bring your
144
-
own plugins and configurations from non-nix. What this flake is meant to be does eventually fall into your hands. Whether you are a
145
-
developer, writer, or live coder, you can quickly craft a config that suits every project's need. Think of it like a distribution of Neovim that you have
146
-
full control over. A distribution that takes advantage of pinning vim plugins and third party dependencies (such as tree-sitter grammars, language servers, and more).
147
-
148
-
One should never get a broken config when setting options. If setting multiple options results in a broken Neovim, file an issue!
149
-
Each plugin knows when another plugin which allows for smart configuration of keybindings and automatic setup of things
150
-
like completion sources and languages.
128
+
I am always looking for new ways to help improve this flake. If you would like
129
+
to contribute, please read the [contributing guide](CONTRIBUTING.md) before
130
+
submitting a pull request. You can also create an issue on the
131
+
[issue tracker](../../../issues) before submitting a pull request if you would
132
+
like to discuss a feature or bug fix.
151
133
152
134
## FAQ
153
135
154
-
**Q**: Why is this flake so big?
155
-
<br/>
156
-
**A**: I have sacrificed in size in order to provide a highly configurable and reproducible Neovim environment. A binary cache is provided to
157
-
eleminate the need to build the flake from source, but it is still a large flake. If you do not need all the features, you can use the default `nix` output
158
-
instead of the `maximal` output. This will reduce size by a lot, but you will lose some language specific features.
159
-
<br/><br/>
160
-
161
-
**Q**: Will you try to make this flake smaller?
136
+
**Q**: Can you add _X_?
162
137
<br/>
163
-
**A**: Yes. As a matter of fact, I am actively working on making this flake smaller. Unfortunately the process of providing everything
164
-
possible by itself makes the flake large. Best I can do is to optimize the flake as much as possible by selecting plugins that
165
-
are small and fast. And the binary cache, so at least you don't have to build it from source.
166
-
<br/><br/>
138
+
**A**: Maybe! It is not one of our goals to support each and every Neovim
139
+
plugin, however, I am always open to new modules and plugin setup additions
140
+
to **nvf**. Use the [appropritate issue
141
+
template](https://github.com/NotAShelf/nvf/issues/new/choose) and I will
142
+
consider a module addition.
167
143
168
-
**Q**: Will you use a plugin manager/language server installer?
144
+
**Q**: A plugin I need is not available in **nvf**. What to do?
169
145
<br/>
170
-
**A**: No. If you feel the need to ask that question, then you have missed the whole point of using nix and ultimately this flake.
171
-
The whole reason we use nix is to be able to handle EVERYTHING declaratively, well including the LSP and plugin installations.
172
-
<br/><br/>
173
-
174
-
**Q**: Can you add _X_?
175
-
<br/>
176
-
**A**: Maybe. Open an issue using the appropriate template and I will consider it. I do not intend to
177
-
add _every plugin that is in existence_, but I will consider it, should it offer something useful to the flake.
146
+
**A**: **nvf** exposes several APIs for you to be able to add your own
147
+
plugin configurations! Please see the documentation on how you may do
148
+
this.
178
149
179
150
## Credits
180
151
@@ -186,23 +157,31 @@ Special thanks to
186
157
-[@FlafyDev](https://github.com/FlafyDev) - For getting the home-manager to work
187
158
-[@n3oney](https://github.com/n3oney) - For making custom keybinds finally possible
188
159
-[@horriblename](https://github.com/horriblename) - For actively implementing planned features and quality of life updates
189
-
-[@Yavko](https://github.com/Yavko) - For the amazing neovim-flake logo
160
+
-[@Yavko](https://github.com/Yavko) - For the amazing **nvf** logo
190
161
-[@FrothyMarrow](https://github.com/FrothyMarrow) - For seeing mistakes that I could not
191
162
192
163
and everyone who has submitted issues or pull requests!
193
164
194
165
### Inspiration
195
166
196
-
This configuration borrows from and is based on a few other configurations, including:
167
+
This configuration borrows from and is based on a few other configurations,
168
+
including:
197
169
198
170
-[@jordanisaacs's](https://github.com/jordanisaacs)[neovim-flake](https://github.com/jordanisaacs/neovim-flake) that this flake is originally based on.
199
171
-[@sioodmy's](https://github.com/sioodmy)[dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design choices.
200
172
-[@wiltaylor's](https://github.com/wiltaylor)[neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and design ideas.
201
173
-[@gvolpe's](https://github.com/gvolpe)[neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and nix concepts.
202
174
203
-
I am grateful for their previous work and inspiration, and I wholeheartedly recommend checking their work out.
175
+
I am grateful for their previous work and inspiration, and I wholeheartedly
176
+
recommend checking their work out.
204
177
<br/>
205
178
179
+
## License
180
+
181
+
Following the [original neovim-flake](https://github.com/jordanisaacs/neovim-flake)
182
+
**nvf** has been made available under the **MIT License**. However, all assets
0 commit comments