summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristianchiarulli <chrisatmachine@gmail.com>2021-12-14 16:45:03 -0500
committerchristianchiarulli <chrisatmachine@gmail.com>2021-12-14 16:45:03 -0500
commit538590e84e0290a941a8f57967a261db67c18f47 (patch)
tree462fb654ea31d1c68ba68e2512a6ee9f2c4892ba
parentd1b2f56a7f30532c016a7622640b656502eda539 (diff)
add options
-rw-r--r--README.md59
-rw-r--r--init.lua3
-rw-r--r--lua/user/options.lua46
3 files changed, 107 insertions, 1 deletions
diff --git a/README.md b/README.md
index 130cf34..8e66982 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,58 @@
-# neovim-from-scratch \ No newline at end of file
+# Neovim from scratch
+
+## Try out this config
+
+Make sure to remove or move your current `nvim` directory
+
+```
+git clone git@github.com:ChristianChiarulli/Neovim-from-scratch.git ~/.config/nvim
+```
+
+Run `nvim` and wait for the plugins to be installed
+
+**NOTE** (You will notice treesitter pulling in a bunch of parsers the next time you open Neovim)
+
+
+each video will be associated with a branch so checkout the one you are interested in
+
+## Get healthy
+
+Open `nvim` and enter the following:
+
+```
+:checkhealth
+```
+
+You'll probably notice you don't have support for copy/paste also that python and node haven't been setup
+
+So let's fix that
+
+First we'll fix copy/paste
+
+- On mac `pbcopy` should be builtin
+
+- On Ubuntu
+
+ ```
+ sudo apt install xsel
+ ```
+
+- On Arch Linux
+
+ ```
+ sudo pacman -S xsel
+ ```
+
+Next we need to install python support (node is optional)
+
+- Neovim python support
+
+ ```
+ pip install pynvim
+ ```
+
+- Neovim node support
+
+ ```
+ npm i -g neovim
+ ```
diff --git a/init.lua b/init.lua
new file mode 100644
index 0000000..1bb93ae
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,3 @@
+require "user.options"
+
+
diff --git a/lua/user/options.lua b/lua/user/options.lua
new file mode 100644
index 0000000..6b38e23
--- /dev/null
+++ b/lua/user/options.lua
@@ -0,0 +1,46 @@
+local options = {
+ backup = false, -- creates a backup file
+ clipboard = "unnamedplus", -- allows neovim to access the system clipboard
+ cmdheight = 2, -- more space in the neovim command line for displaying messages
+ completeopt = { "menuone", "noselect" }, -- mostly just for cmp
+ conceallevel = 0, -- so that `` is visible in markdown files
+ fileencoding = "utf-8", -- the encoding written to a file
+ hlsearch = true, -- highlight all matches on previous search pattern
+ ignorecase = true, -- ignore case in search patterns
+ mouse = "a", -- allow the mouse to be used in neovim
+ pumheight = 10, -- pop up menu height
+ showmode = false, -- we don't need to see things like -- INSERT -- anymore
+ showtabline = 2, -- always show tabs
+ smartcase = true, -- smart case
+ smartindent = true, -- make indenting smarter again
+ splitbelow = true, -- force all horizontal splits to go below current window
+ splitright = true, -- force all vertical splits to go to the right of current window
+ swapfile = false, -- creates a swapfile
+ -- termguicolors = true, -- set term gui colors (most terminals support this)
+ timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds)
+ undofile = true, -- enable persistent undo
+ updatetime = 300, -- faster completion (4000ms default)
+ writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
+ expandtab = true, -- convert tabs to spaces
+ shiftwidth = 2, -- the number of spaces inserted for each indentation
+ tabstop = 2, -- insert 2 spaces for a tab
+ cursorline = true, -- highlight the current line
+ number = true, -- set numbered lines
+ relativenumber = false, -- set relative numbered lines
+ numberwidth = 4, -- set number column width to 2 {default 4}
+ signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
+ wrap = false, -- display lines as one long line
+ scrolloff = 8, -- is one of my fav
+ sidescrolloff = 8,
+ guifont = "monospace:h17", -- the font used in graphical neovim applications
+}
+
+vim.opt.shortmess:append "c"
+
+for k, v in pairs(options) do
+ vim.opt[k] = v
+end
+
+vim.cmd "set whichwrap+=<,>,[,],h,l"
+vim.cmd [[set iskeyword+=-]]
+vim.cmd [[set formatoptions-=cro]] -- TODO: this doesn't seem to work