diff --git a/README.md b/README.md
index 0f0bb1b3..e9d31703 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,8 @@ External Requirements:
- etc.
> **NOTE**
-> See [Windows Installation](#Windows-Installation) to double check any additional Windows notes
+> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
+> and quick install snippets
Neovim's configurations are located under the following paths, depending on your OS:
@@ -182,8 +183,15 @@ return {
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
-### Windows Installation
+### Install Recipes
+Below you can find OS specific install instructions for Neovim and dependencies.
+
+After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
+
+#### Windows Installation
+
+Windows with Microsoft C++ Build Tools and CMake
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
@@ -195,7 +203,8 @@ This requires:
```lua
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
```
-
+
+Windows with gcc/make using chocolatey
Alternatively, one can install gcc and make which don't require changing the config,
the easiest way is to use choco:
@@ -211,5 +220,41 @@ open a new one so that choco path is set, and run in cmd as **admin**:
```
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
```
+
+WSL (Windows Subsystem for Linux)
+
+```
+wsl --install
+wsl
+sudo add-apt-repository ppa:neovim-ppa/unstable -y
+sudo apt update
+sudo apt install make gcc ripgrep unzip neovim
+```
+
+
+#### Linux Install
+Ubuntu Install Steps
+
+```
+sudo add-apt-repository ppa:neovim-ppa/unstable -y
+sudo apt update
+sudo apt install make gcc ripgrep unzip neovim
+```
+
+Debian Install Steps
+
+```
+sudo apt update
+sudo apt install make gcc ripgrep unzip git
+echo "deb https://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
+sudo apt update
+sudo apt install -t unstable neovim
+```
+
+Fedora Install Steps
+
+```
+sudo dnf install -y gcc make git ripgrep fd-find neovim
+```
+
-Then, continue with the [Install Kickstart](#Install-Kickstart) step.
diff --git a/init.lua b/init.lua
index 76da114e..5331ade3 100644
--- a/init.lua
+++ b/init.lua
@@ -554,7 +554,7 @@ require('lazy').setup({
lua_ls = {
-- cmd = {...},
- -- filetypes { ...},
+ -- filetypes = { ...},
-- capabilities = {},
settings = {
Lua = {
@@ -829,8 +829,9 @@ require('lazy').setup({
-- Here are some example plugins that I've included in the kickstart repository.
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
--
- require 'kickstart.plugins.debug',
- require 'kickstart.plugins.indent_line',
+ -- require 'kickstart.plugins.debug',
+ -- require 'kickstart.plugins.indent_line',
+ -- require 'kickstart.plugins.lint',
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- This is the easiest way to modularize your config.
diff --git a/lua/kickstart/plugins/lint.lua b/lua/kickstart/plugins/lint.lua
new file mode 100644
index 00000000..7f0dc42f
--- /dev/null
+++ b/lua/kickstart/plugins/lint.lua
@@ -0,0 +1,55 @@
+return {
+
+ { -- Linting
+ 'mfussenegger/nvim-lint',
+ event = { 'BufReadPre', 'BufNewFile' },
+ config = function()
+ local lint = require 'lint'
+ lint.linters_by_ft = {
+ markdown = { 'markdownlint' },
+ }
+
+ -- To allow other plugins to add linters to require('lint').linters_by_ft,
+ -- instead set linters_by_ft like this:
+ -- lint.linters_by_ft = lint.linters_by_ft or {}
+ -- lint.linters_by_ft['markdown'] = { 'markdownlint' }
+ --
+ -- However, note that this will enable a set of default linters,
+ -- which will cause errors unless these tools are available:
+ -- {
+ -- clojure = { "clj-kondo" },
+ -- dockerfile = { "hadolint" },
+ -- inko = { "inko" },
+ -- janet = { "janet" },
+ -- json = { "jsonlint" },
+ -- markdown = { "vale" },
+ -- rst = { "vale" },
+ -- ruby = { "ruby" },
+ -- terraform = { "tflint" },
+ -- text = { "vale" }
+ -- }
+ --
+ -- You can disable the default linters by setting their filetypes to nil:
+ -- lint.linters_by_ft['clojure'] = nil
+ -- lint.linters_by_ft['dockerfile'] = nil
+ -- lint.linters_by_ft['inko'] = nil
+ -- lint.linters_by_ft['janet'] = nil
+ -- lint.linters_by_ft['json'] = nil
+ -- lint.linters_by_ft['markdown'] = nil
+ -- lint.linters_by_ft['rst'] = nil
+ -- lint.linters_by_ft['ruby'] = nil
+ -- lint.linters_by_ft['terraform'] = nil
+ -- lint.linters_by_ft['text'] = nil
+
+ -- Create autocommand which carries out the actual linting
+ -- on the specified events.
+ local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
+ vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
+ group = lint_augroup,
+ callback = function()
+ require('lint').try_lint()
+ end,
+ })
+ end,
+ },
+}