New cleaner nvim config. Added config for LF
This commit is contained in:
109
nvim/lua/keymaps.lua
Normal file
109
nvim/lua/keymaps.lua
Normal file
@@ -0,0 +1,109 @@
|
||||
local set = vim.opt
|
||||
local opt = { noremap = true }
|
||||
local opts = { noremap = true, silent = true }
|
||||
local term_opts = { silent = true }
|
||||
|
||||
-- shorten function name
|
||||
local keymap = vim.api.nvim_set_keymap
|
||||
|
||||
-- Modes
|
||||
-- normal_mode = 'n',
|
||||
-- insert_mode = 'i',
|
||||
-- visual_mode = 'v',
|
||||
-- visual_block_mode = 'x',
|
||||
-- term_mode = 't',
|
||||
-- command_mode = 'c',
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
-- set space as leader key
|
||||
vim.g.mapleader = " " -- Set space as the leader key
|
||||
vim.g.maplocalleader = " " -- Optional: set local leader key to space as well
|
||||
-- switch colon to semicolon
|
||||
keymap("n", ";", ":", opt)
|
||||
keymap("n", ":", ";", opt)
|
||||
|
||||
-- no arrows, move the vim way
|
||||
keymap("n", "<up>", "<nop>", opts)
|
||||
keymap("n", "<down>", "<nop>", opts)
|
||||
keymap("n", "<left>", "<nop>", opts)
|
||||
keymap("n", "<right>", "<nop>", opts)
|
||||
keymap("i", "<up>", "<nop>", opts)
|
||||
keymap("i", "<down>", "<nop>", opts)
|
||||
keymap("i", "<left>", "<nop>", opts)
|
||||
keymap("i", "<right>", "<nop>", opts)
|
||||
|
||||
-- lazy write / quit
|
||||
keymap("n", "<leader>w", ":w<cr>", opts)
|
||||
keymap("n", "<leader>q", ":q<cr>", opts)
|
||||
keymap("n", "<leader>wq", ":wq<cr>", opts)
|
||||
keymap("n", "<leader>W", ":w!<cr>", opts)
|
||||
keymap("n", "<leader>Q", ":q!<cr>", opts)
|
||||
keymap("n", "<leader>WQ", ":wq!<cr>", opts)
|
||||
|
||||
-- navigate properly when lines are wrapped
|
||||
keymap("n", "j", "gj", opts)
|
||||
keymap("n", "k", "gk", opts)
|
||||
|
||||
-- toggle relativenumber
|
||||
keymap("n", "<leader>r", ":set invrnu<cr>", opts)
|
||||
|
||||
-- easy folding
|
||||
-- toggle fold under cursor no jumping around
|
||||
keymap("n", "z", "za<space>0", opts)
|
||||
|
||||
-- maintaining visual mode after shifting > and <
|
||||
keymap("v", ">", ">gv", opts)
|
||||
keymap("v", "<", "<gv", opts)
|
||||
|
||||
-- -- move text up and down in visual block mode
|
||||
-- keymap("x", "<s-j>", ":move '>+1<CR>gv-gv", opts)
|
||||
-- keymap("x", "<s-k>", ":move '<-2<CR>gv-gv", opts)
|
||||
|
||||
-- navigate buffers
|
||||
keymap("n", "<s-l>", ":bnext<cr>", opts)
|
||||
keymap("n", "<s-h>", ":bprevious<cr>", opts)
|
||||
|
||||
-- scrolling command-line history
|
||||
keymap("c", "<c-j>", "<c-n>", opts)
|
||||
keymap("c", "<c-k>", "<c-p>", opts)
|
||||
|
||||
-- open the current file in the default program
|
||||
keymap("n", "<leader>x", [[:!xdg-open %<cr><cr>]], opts)
|
||||
|
||||
-- -- no ex mode for me
|
||||
-- keymap("n", "Q", "<nop>", opts)
|
||||
|
||||
-- prevent accidentally record functionality
|
||||
keymap("n", "q", "<nop>", opts)
|
||||
keymap("n", "qq", "q", opts)
|
||||
|
||||
-- redirect change operations to blackhole avoid spoiling 'y' register content
|
||||
keymap("n", "c", '"_c', opts)
|
||||
keymap("n", "C", '"_C', opts)
|
||||
|
||||
-- toggle cursorcolumn
|
||||
keymap("n", "<leader>c", ":set cursorcolumn!<cr>", opts)
|
||||
|
||||
-- toggle netrw
|
||||
keymap("n", "<leader>nd", ":Lexplore %:p:h<cr>", opts)
|
||||
keymap("n", "<leader>n", ":Lexplore<cr>", opts)
|
||||
|
||||
-- clear highlighting from the search
|
||||
keymap("n", "<esc>", ":nohlsearch<cr><esc>", opts)
|
||||
|
||||
-- toggle spell checking
|
||||
keymap("n", "<leader>s", ":setlocal spell! spelllang=en_us,nl<cr>", opts)
|
||||
|
||||
-- date time stamp
|
||||
keymap("n", "<leader>dt", [[i<c-r>=strftime("%a %d %Y %H:%M")<cr><space>]], opts)
|
||||
|
||||
-- double space over word to find and replace
|
||||
keymap("n", "<space><space>", [[:%s/\<<c-r>=expand("<cword>")<cr>\>/]], opt)
|
||||
|
||||
-- search and replace all
|
||||
-- write file if you forgot to give it sudo permission
|
||||
keymap("c", "w!!", [[w !sudo tee %]], opt)
|
||||
|
||||
-- diff since last save
|
||||
keymap("n", "<leader>df", [[:w !diff % -<cr>]], opt)
|
||||
136
nvim/lua/plugins.lua
Normal file
136
nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,136 @@
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
require('packer').startup(function(use)
|
||||
|
||||
-- {{{ Packer manages itself
|
||||
use 'wbthomason/packer.nvim' -- Packer manages itself
|
||||
-- }}}
|
||||
|
||||
-- {{{ VIM AutoSave
|
||||
use({
|
||||
'okuuva/auto-save.nvim',
|
||||
tag = 'v1*',
|
||||
config = function()
|
||||
require('auto-save').setup({
|
||||
-- your config goes here
|
||||
-- or just leave it empty :)
|
||||
})
|
||||
end,
|
||||
})
|
||||
-- }}}
|
||||
|
||||
-- {{{ Headlines for Markdown and TeX
|
||||
use {
|
||||
'lukas-reineke/headlines.nvim',
|
||||
after = 'nvim-treesitter',
|
||||
config = function()
|
||||
require('headlines').setup()
|
||||
end,
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Nvim-Tree
|
||||
use {
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
config = function()
|
||||
require('plugins.nvim-tree').setup()
|
||||
end,
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Themes
|
||||
use 'gruvbox-community/gruvbox' -- Gruvbox theme
|
||||
use 'folke/tokyonight.nvim' -- Tokyo Night theme
|
||||
-- }}}
|
||||
|
||||
-- {{{ Treesitter
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate' -- Keep parsers up to date
|
||||
}
|
||||
require('plugins.treesitter')
|
||||
-- }}}
|
||||
|
||||
-- {{{ Rainbow Delimiters
|
||||
use 'HiPhish/rainbow-delimiters.nvim'
|
||||
require('plugins.rainbow_delimiters')
|
||||
-- }}}
|
||||
|
||||
-- {{{ Git Integration
|
||||
use 'lewis6991/gitsigns.nvim' -- Git decorations in the gutter
|
||||
use 'tpope/vim-fugitive' -- Git commands in Neovim
|
||||
-- }}}
|
||||
|
||||
-- {{{ Status Line
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
requires = { 'kyazdani42/nvim-web-devicons', opt = true } -- Optional icons
|
||||
}
|
||||
require('plugins.lualine')
|
||||
-- }}}
|
||||
|
||||
-- {{{ HardTime
|
||||
use {
|
||||
'm4xshen/hardtime.nvim',
|
||||
requires = { 'MunifTanjim/nui.nvim' }
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ FZF
|
||||
use {
|
||||
'junegunn/fzf',
|
||||
run = function() vim.fn['fzf#install']() end
|
||||
}
|
||||
use 'junegunn/fzf.vim'
|
||||
-- }}}
|
||||
|
||||
-- {{{ Todo Comments
|
||||
use {
|
||||
"folke/todo-comments.nvim",
|
||||
requires = "nvim-lua/plenary.nvim",
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Cool Startup Dashboard
|
||||
use {
|
||||
'glepnir/dashboard-nvim',
|
||||
requires = { 'kyazdani42/nvim-web-devicons' }
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Productivity
|
||||
use 'numToStr/Comment.nvim'
|
||||
use 'windwp/nvim-autopairs'
|
||||
use 'tpope/vim-surround'
|
||||
-- }}}
|
||||
|
||||
-- {{{ LaTeX
|
||||
use 'lervag/vimtex'
|
||||
require('plugins.vimtex')
|
||||
-- }}}
|
||||
|
||||
-- {{{ Telescope
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
requires = { {'nvim-lua/plenary.nvim'} },
|
||||
config = function()
|
||||
-- Leader key mappings for Telescope
|
||||
vim.api.nvim_set_keymap('n', '<leader>ff', ':Telescope find_files<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>fg', ':Telescope live_grep<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>fb', ':Telescope buffers<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>fh', ':Telescope help_tags<CR>', { noremap = true, silent = true })
|
||||
end
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Outline
|
||||
use {
|
||||
'hedyhli/outline.nvim',
|
||||
config = function()
|
||||
require('plugins.outline').setup()
|
||||
end
|
||||
}
|
||||
-- }}}
|
||||
|
||||
end)
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
require("todo-comments").setup {
|
||||
signs = true, -- show icons in the signs column
|
||||
keywords = {
|
||||
TODO = { icon = " ", color = "info" },
|
||||
FIXME = { icon = " ", color = "error" },
|
||||
HACK = { icon = " ", color = "warning" },
|
||||
WARN = { icon = " ", color = "warning" },
|
||||
NOTE = { icon = " ", color = "hint" },
|
||||
},
|
||||
highlight = {
|
||||
before = "fg", -- highlight the keyword
|
||||
keyword = "wide", -- highlight the whole keyword
|
||||
after = "fg", -- highlight the message
|
||||
},
|
||||
search = {
|
||||
command = "rg", -- ripgrep as the default search command
|
||||
args = {
|
||||
"--color=never", "--no-heading", "--with-filename", "--line-number", "--column"
|
||||
},
|
||||
},
|
||||
signs = true, -- Show icons in the signs column
|
||||
keywords = {
|
||||
TODO = { icon = "", color = "info" },
|
||||
FIXME = { icon = "", color = "error" },
|
||||
HACK = { icon = "", color = "warning" },
|
||||
WARN = { icon = "", color = "warning" },
|
||||
NOTE = { icon = "", color = "hint" },
|
||||
},
|
||||
highlight = {
|
||||
before = "", -- Don't highlight before the keyword
|
||||
keyword = "wide", -- Highlight the keyword itself
|
||||
after = "fg", -- Highlight after the keyword
|
||||
},
|
||||
search = {
|
||||
command = "rg", -- Use ripgrep for searching
|
||||
args = {
|
||||
"--color=never", "--no-heading", "--with-filename", "--line-number", "--column",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
8
nvim/lua/settings.lua
Normal file
8
nvim/lua/settings.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Global settings
|
||||
vim.opt.tabstop = 4 -- Number of spaces that a <Tab> counts for
|
||||
vim.opt.shiftwidth = 4 -- Number of spaces for indentation
|
||||
vim.opt.expandtab = true -- Use spaces instead of tabs
|
||||
|
||||
-- Coloscheme
|
||||
vim.cmd [[colorscheme tokyonight]]
|
||||
|
||||
Reference in New Issue
Block a user