From 538590e84e0290a941a8f57967a261db67c18f47 Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Tue, 14 Dec 2021 16:45:03 -0500 Subject: [PATCH] add options --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++- init.lua | 3 +++ lua/user/options.lua | 46 ++++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 init.lua create mode 100644 lua/user/options.lua 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