diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 1544ef9..0000000 --- a/.gitmodules +++ /dev/null @@ -1,6 +0,0 @@ -[submodule "pack/vendor/start/vim-wakatime"] - path = pack/vendor/start/vim-wakatime - url = https://github.com/wakatime/vim-wakatime.git -[submodule "pack/vendor/start/vimwiki"] - path = pack/vendor/start/vimwiki - url = https://github.com/vimwiki/vimwiki.git diff --git a/README.md b/README.md index b63b70e..56c1a81 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # Neovim Config ## Getting Started -`git clone https://github.com/saeedafzal/neovim-config.git ~/.config/nvim --recursive` +Requires nightly version of Neovim with built-in plugin manager. + +`git clone https://github.com/saeedafzal/neovim-config.git ~/.config/nvim` ## Plugins * [Wakatime](https://github.com/wakatime/vim-wakatime) -* [Vimwiki](https://github.com/vimwiki/vimwiki) diff --git a/init.lua b/init.lua index bfe8a13..55ed5ca 100644 --- a/init.lua +++ b/init.lua @@ -1,10 +1,48 @@ --- Core configuration -require "core" +-- Settings +vim.g.mapleader = " " --- Vimwiki -vim.g.vimwiki_list = { - { path = "~/Documents/Notes", index = "index" } -} +vim.o.swapfile = false +vim.o.number = true +vim.o.relativenumber = true +vim.o.wrap = false +vim.o.clipboard = "unnamedplus" +vim.o.signcolumn = "yes" + +-- Indentation +vim.o.expandtab = true +vim.o.smartindent = true +vim.o.shiftwidth = 4 +vim.o.tabstop = 4 +vim.o.list = true +vim.o.listchars = "lead:·,tab:··" + +-- Search +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.hlsearch = true +vim.o.incsearch = true + +-- Keybindings +vim.keymap.set("n", "o", ":update:source") +vim.keymap.set("n", "", ":bnext") +vim.keymap.set("n", "", ":bprevious") +vim.keymap.set("n", "x", ":bd!") +vim.keymap.set("n", "h", ":noh") + +vim.keymap.set("n", "", ":Oil") +vim.keymap.set("n", "f", ":Pick files") +vim.keymap.set("n", "b", ":Pick buffers") + +-- Plugins +vim.pack.add({ + { src = "https://github.com/wakatime/vim-wakatime" }, + { src = "https://github.com/stevearc/oil.nvim" }, + { src = "https://github.com/echasnovski/mini.pick" } +}) + +-- Setup plugins +require("mini.pick").setup() +require("oil").setup() -- Theme vim.cmd [[ @@ -12,4 +50,7 @@ vim.cmd [[ hi NonText guibg=none hi Normal ctermbg=none hi NonText ctermbg=none + + hi statusline guibg=none + hi statusline guifg=white ]] diff --git a/lua/core/autocmds.lua b/lua/core/autocmds.lua deleted file mode 100644 index ebdc4c1..0000000 --- a/lua/core/autocmds.lua +++ /dev/null @@ -1,29 +0,0 @@ -local api = vim.api - -api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { - pattern = "*.rs", - command = "compiler cargo" -}) - -api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { - pattern = "*.go", - command = "Tabs 4" -}) - -api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { - pattern = "*.dart", - callback = function() - vim.cmd [[Spaces 2]] - vim.cmd [[compiler dart]] - end -}) - -api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { - pattern = "*.md", - command = "set conceallevel=3" -}) - -api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { - pattern = { "*.ts", "*.tsc" }, - command = "compiler tsc" -}) diff --git a/lua/core/commands.lua b/lua/core/commands.lua deleted file mode 100644 index b0f98aa..0000000 --- a/lua/core/commands.lua +++ /dev/null @@ -1,28 +0,0 @@ -local api, opt = vim.api, vim.opt - -local function indent(n, expand) - local size = 4 - if n ~= "" then size = n end - - local num = tonumber(size) - if num then - size = num - end - - opt.expandtab = expand - opt.shiftwidth = size - opt.tabstop = size -end - -api.nvim_create_user_command("Tabs", function(v) - indent(v.args, false) -end, { nargs = "?" }) - -api.nvim_create_user_command("Spaces", function(v) - indent(v.args, true) -end, { nargs = "?" }) - -api.nvim_create_user_command("TE", function(v) - vim.cmd("split") - vim.cmd("term " .. v.args) -end, { nargs = "*", force = true }) diff --git a/lua/core/init.lua b/lua/core/init.lua deleted file mode 100644 index de884ab..0000000 --- a/lua/core/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -require "core.settings" -require "core.commands" -require "core.autocmds" -require "core.keys" -require "core.statusline" diff --git a/lua/core/keys.lua b/lua/core/keys.lua deleted file mode 100644 index b53bb9e..0000000 --- a/lua/core/keys.lua +++ /dev/null @@ -1,32 +0,0 @@ -local function map(mode, lhs, rhs) - vim.api.nvim_set_keymap(mode, lhs, rhs, {}) -end - --- Buffer navigation -map("n", "", ":bnext") -map("n", "", ":bprevious") -map("n", "x", ":bd!") - --- Resize buffer splits -map("n", "", ":vertical resize +3") -map("n", "", ":vertical resize -3") -map("n", "", ":horizontal resize +3") -map("n", "", ":horizontal resize -3") - --- Netrw -map("n", "", ":Exp") - --- Remove highlights -map("n", "h", ":noh") - --- Replace (visual) -map("v", "r", "\"hy:%s/h//g") - --- Neovide -if vim.g.neovide == true then - map("n", "", ":lua vim.g.neovide_scale_factor = math.min(vim.g.neovide_scale_factor + 0.1, 1.0)") - map("n", "", ":lua vim.g.neovide_scale_factor = math.max(vim.g.neovide_scale_factor - 0.1, 0.1)") -end - --- Theme toggling -map("n", "t", ":lua require('theme_switcher').toggle()") diff --git a/lua/core/settings.lua b/lua/core/settings.lua deleted file mode 100644 index 0a3c119..0000000 --- a/lua/core/settings.lua +++ /dev/null @@ -1,45 +0,0 @@ -local g, opt, o = vim.g, vim.opt, vim.o - --- Settings -g.mapleader = " " - -opt.backup = false -opt.swapfile = false -opt.termguicolors = true -opt.number = true -opt.relativenumber = true -opt.scrolloff = 8 -opt.sidescrolloff = 8 -opt.title = true -opt.titlestring = "%t - NVIM" -opt.wrap = false -opt.clipboard = "unnamedplus" -opt.splitbelow = true -opt.splitright = true -opt.showmode = false -opt.binary = false - -opt.path = ".,**" -opt.wildignore:append({ - "**/node_modules/**", - "**/target/**" -}) - --- Indentation -opt.expandtab = true -opt.smartindent = true -opt.shiftwidth = 4 -opt.tabstop = 4 -opt.list = true -opt.listchars = "lead:·,tab:··" - --- Search -opt.ignorecase = true -opt.smartcase = true -opt.hlsearch = true -opt.incsearch = true - --- Code Folding -opt.foldmethod = "expr" -opt.foldexpr = "nvim_treesitter#foldexpr()" -opt.foldlevel = 99 diff --git a/lua/core/statusline.lua b/lua/core/statusline.lua deleted file mode 100644 index 8e0d3e9..0000000 --- a/lua/core/statusline.lua +++ /dev/null @@ -1,40 +0,0 @@ -local fn, api, o, bo = vim.fn, vim.api, vim.o, vim.bo - -local modes = { - ["n"] = "NORMAL", - ["v"] = "VISUAL", - ["V"] = "VISUAL LINE", - [""] = "VISUAL BLOCK", - ["i"] = "INSERT", - ["R"] = "REPLACE", - ["Rv"] = "VISUAL REPLACE", - ["c"] = "COMMAND", - ["nt"] = "TERMINAL" -} - -local function mode() - local current_mode = api.nvim_get_mode().mode - return string.format(" %s ", modes[current_mode]):upper() -end - -function StatusLine() - local filename = fn.expand("%:t") - local filetype = bo.filetype - local lineinfo = fn.line(".") .. ":" .. fn.col(".") - local percent = fn.line(".") / fn.line("$") * 100 - - return table.concat { - mode(), - " ", - filename, - "%=%#StatusLineExtra#", - filetype, - " ", - string.format("%3.0f", percent) .. "%% ", - lineinfo - } -end - -o.statusline = "%!v:lua.StatusLine()" - -api.nvim_set_hl(0, "StatusLine", { bg = "#1D293D", fg = "#CAD5E2" }) diff --git a/pack/vendor/start/vim-wakatime b/pack/vendor/start/vim-wakatime deleted file mode 160000 index e46d7c4..0000000 --- a/pack/vendor/start/vim-wakatime +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e46d7c4f98ee0f40782008dd60cb2a79c377fb1d diff --git a/pack/vendor/start/vimwiki b/pack/vendor/start/vimwiki deleted file mode 160000 index 7279261..0000000 --- a/pack/vendor/start/vimwiki +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 72792615e739d0eb54a9c8f7e0a46a6e2407c9e8