config
This commit is contained in:
		
							parent
							
								
									2abcb39fae
								
							
						
					
					
						commit
						ab6de4d9e4
					
				
							
								
								
									
										298
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										298
									
								
								init.lua
								
								
								
								
							|  | @ -1,5 +1,4 @@ | |||
| --[[ | ||||
| 
 | ||||
| ===================================================================== | ||||
| ==================== READ THIS BEFORE CONTINUING ==================== | ||||
| ===================================================================== | ||||
|  | @ -7,7 +6,7 @@ | |||
| ========         .----------------------.   | === |          ======== | ||||
| ========         |.-""""""""""""""""""-.|   |-----|          ======== | ||||
| ========         ||                    ||   | === |          ======== | ||||
| ========         ||   KICKSTART.NVIM   ||   |-----|          ======== | ||||
| ========         ||      dino.NVIM     ||   |-----|          ======== | ||||
| ========         ||                    ||   | === |          ======== | ||||
| ========         ||                    ||   |-----|          ======== | ||||
| ========         ||:Tutor              ||   |:::::|          ======== | ||||
|  | @ -19,197 +18,20 @@ | |||
| ========                                                     ======== | ||||
| ===================================================================== | ||||
| ===================================================================== | ||||
| 
 | ||||
| What is Kickstart? | ||||
| 
 | ||||
|   Kickstart.nvim is *not* a distribution. | ||||
| 
 | ||||
|   Kickstart.nvim is a starting point for your own configuration. | ||||
|     The goal is that you can read every line of code, top-to-bottom, understand | ||||
|     what your configuration is doing, and modify it to suit your needs. | ||||
| 
 | ||||
|     Once you've done that, you can start exploring, configuring and tinkering to | ||||
|     make Neovim your own! That might mean leaving Kickstart just the way it is for a while | ||||
|     or immediately breaking it into modular pieces. It's up to you! | ||||
| 
 | ||||
|     If you don't know anything about Lua, I recommend taking some time to read through | ||||
|     a guide. One possible example which will only take 10-15 minutes: | ||||
|       - https://learnxinyminutes.com/docs/lua/ | ||||
| 
 | ||||
|     After understanding a bit more about Lua, you can use `:help lua-guide` as a | ||||
|     reference for how Neovim integrates Lua. | ||||
|     - :help lua-guide | ||||
|     - (or HTML version): https://neovim.io/doc/user/lua-guide.html | ||||
| 
 | ||||
| Kickstart Guide: | ||||
| 
 | ||||
|   TODO: The very first thing you should do is to run the command `:Tutor` in Neovim. | ||||
| 
 | ||||
|     If you don't know what this means, type the following: | ||||
|       - <escape key> | ||||
|       - : | ||||
|       - Tutor | ||||
|       - <enter key> | ||||
| 
 | ||||
|     (If you already know the Neovim basics, you can skip this step.) | ||||
| 
 | ||||
|   Once you've completed that, you can continue working through **AND READING** the rest | ||||
|   of the kickstart init.lua. | ||||
| 
 | ||||
|   Next, run AND READ `:help`. | ||||
|     This will open up a help window with some basic information | ||||
|     about reading, navigating and searching the builtin help documentation. | ||||
| 
 | ||||
|     This should be the first place you go to look when you're stuck or confused | ||||
|     with something. It's one of my favorite Neovim features. | ||||
| 
 | ||||
|     MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation, | ||||
|     which is very useful when you're not exactly sure of what you're looking for. | ||||
| 
 | ||||
|   I have left several `:help X` comments throughout the init.lua | ||||
|     These are hints about where to find more information about the relevant settings, | ||||
|     plugins or Neovim features used in Kickstart. | ||||
| 
 | ||||
|    NOTE: Look for lines like this | ||||
| 
 | ||||
|     Throughout the file. These are for you, the reader, to help you understand what is happening. | ||||
|     Feel free to delete them once you know what you're doing, but they should serve as a guide | ||||
|     for when you are first encountering a few different constructs in your Neovim config. | ||||
| 
 | ||||
| If you experience any errors while trying to install kickstart, run `:checkhealth` for more info. | ||||
| 
 | ||||
| I hope you enjoy your Neovim journey, | ||||
| - TJ | ||||
| 
 | ||||
| P.S. You can delete this when you're done too. It's your config now! :) | ||||
| --]] | ||||
| 
 | ||||
| -- Set <space> as the leader key | ||||
| -- See `:help mapleader` | ||||
| --  NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) | ||||
| vim.g.mapleader = ' ' | ||||
| vim.g.maplocalleader = ' ' | ||||
| 
 | ||||
| -- Set to true if you have a Nerd Font installed and selected in the terminal | ||||
| vim.g.have_nerd_font = false | ||||
| vim.g.have_nerd_font = true | ||||
| 
 | ||||
| -- [[ Setting options ]] | ||||
| -- See `:help vim.opt` | ||||
| -- NOTE: You can change these options as you wish! | ||||
| --  For more options, you can see `:help option-list` | ||||
| 
 | ||||
| -- Make line numbers default | ||||
| vim.opt.number = true | ||||
| -- You can also add relative line numbers, to help with jumping. | ||||
| --  Experiment for yourself to see if you like it! | ||||
| -- vim.opt.relativenumber = true | ||||
| 
 | ||||
| -- Enable mouse mode, can be useful for resizing splits for example! | ||||
| vim.opt.mouse = 'a' | ||||
| 
 | ||||
| -- Don't show the mode, since it's already in the status line | ||||
| vim.opt.showmode = false | ||||
| 
 | ||||
| -- Sync clipboard between OS and Neovim. | ||||
| --  Schedule the setting after `UiEnter` because it can increase startup-time. | ||||
| --  Remove this option if you want your OS clipboard to remain independent. | ||||
| --  See `:help 'clipboard'` | ||||
| vim.schedule(function() | ||||
|   vim.opt.clipboard = 'unnamedplus' | ||||
| end) | ||||
| 
 | ||||
| -- Enable break indent | ||||
| vim.opt.breakindent = true | ||||
| 
 | ||||
| -- Save undo history | ||||
| vim.opt.undofile = true | ||||
| 
 | ||||
| -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term | ||||
| vim.opt.ignorecase = true | ||||
| vim.opt.smartcase = true | ||||
| 
 | ||||
| -- Keep signcolumn on by default | ||||
| vim.opt.signcolumn = 'yes' | ||||
| 
 | ||||
| -- Decrease update time | ||||
| vim.opt.updatetime = 250 | ||||
| 
 | ||||
| -- Decrease mapped sequence wait time | ||||
| vim.opt.timeoutlen = 300 | ||||
| 
 | ||||
| -- Configure how new splits should be opened | ||||
| vim.opt.splitright = true | ||||
| vim.opt.splitbelow = true | ||||
| 
 | ||||
| -- Sets how neovim will display certain whitespace characters in the editor. | ||||
| --  See `:help 'list'` | ||||
| --  and `:help 'listchars'` | ||||
| vim.opt.list = true | ||||
| vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } | ||||
| 
 | ||||
| -- Preview substitutions live, as you type! | ||||
| vim.opt.inccommand = 'split' | ||||
| 
 | ||||
| -- Show which line your cursor is on | ||||
| vim.opt.cursorline = true | ||||
| 
 | ||||
| -- Minimal number of screen lines to keep above and below the cursor. | ||||
| vim.opt.scrolloff = 10 | ||||
| 
 | ||||
| -- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), | ||||
| -- instead raise a dialog asking if you wish to save the current file(s) | ||||
| -- See `:help 'confirm'` | ||||
| vim.opt.confirm = true | ||||
| 
 | ||||
| -- [[ Basic Keymaps ]] | ||||
| --  See `:help vim.keymap.set()` | ||||
| 
 | ||||
| -- Clear highlights on search when pressing <Esc> in normal mode | ||||
| --  See `:help hlsearch` | ||||
| vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') | ||||
| 
 | ||||
| -- Diagnostic keymaps | ||||
| vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) | ||||
| 
 | ||||
| -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier | ||||
| -- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which | ||||
| -- is not what someone will guess without a bit more experience. | ||||
| -- | ||||
| -- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping | ||||
| -- or just use <C-\><C-n> to exit terminal mode | ||||
| vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) | ||||
| 
 | ||||
| -- TIP: Disable arrow keys in normal mode | ||||
| -- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>') | ||||
| -- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>') | ||||
| -- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>') | ||||
| -- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>') | ||||
| 
 | ||||
| -- Keybinds to make split navigation easier. | ||||
| --  Use CTRL+<hjkl> to switch between windows | ||||
| -- | ||||
| --  See `:help wincmd` for a list of all window commands | ||||
| vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) | ||||
| vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' }) | ||||
| vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' }) | ||||
| vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' }) | ||||
| 
 | ||||
| -- [[ Basic Autocommands ]] | ||||
| --  See `:help lua-guide-autocommands` | ||||
| 
 | ||||
| -- Highlight when yanking (copying) text | ||||
| --  Try it with `yap` in normal mode | ||||
| --  See `:help vim.highlight.on_yank()` | ||||
| vim.api.nvim_create_autocmd('TextYankPost', { | ||||
|   desc = 'Highlight when yanking (copying) text', | ||||
|   group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), | ||||
|   callback = function() | ||||
|     vim.highlight.on_yank() | ||||
|   end, | ||||
| }) | ||||
| require 'custom.settings' | ||||
| require 'custom.keymaps' | ||||
| require 'custom.basic-autocommands' | ||||
| 
 | ||||
| -- [[ Install `lazy.nvim` plugin manager ]] | ||||
| --    See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info | ||||
| local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' | ||||
| if not (vim.uv or vim.loop).fs_stat(lazypath) then | ||||
|   local lazyrepo = 'https://github.com/folke/lazy.nvim.git' | ||||
|  | @ -221,42 +43,9 @@ end ---@diagnostic disable-next-line: undefined-field | |||
| vim.opt.rtp:prepend(lazypath) | ||||
| 
 | ||||
| -- [[ Configure and install plugins ]] | ||||
| -- | ||||
| --  To check the current status of your plugins, run | ||||
| --    :Lazy | ||||
| -- | ||||
| --  You can press `?` in this menu for help. Use `:q` to close the window | ||||
| -- | ||||
| --  To update plugins you can run | ||||
| --    :Lazy update | ||||
| -- | ||||
| -- NOTE: Here is where you install your plugins. | ||||
| require('lazy').setup({ | ||||
|   -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). | ||||
|   'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically | ||||
| 
 | ||||
|   -- NOTE: Plugins can also be added by using a table, | ||||
|   -- with the first argument being the link and the following | ||||
|   -- keys can be used to configure plugin behavior/loading/etc. | ||||
|   -- | ||||
|   -- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded. | ||||
|   -- | ||||
| 
 | ||||
|   -- Alternatively, use `config = function() ... end` for full control over the configuration. | ||||
|   -- If you prefer to call `setup` explicitly, use: | ||||
|   --    { | ||||
|   --        'lewis6991/gitsigns.nvim', | ||||
|   --        config = function() | ||||
|   --            require('gitsigns').setup({ | ||||
|   --                -- Your gitsigns configuration here | ||||
|   --            }) | ||||
|   --        end, | ||||
|   --    } | ||||
|   -- | ||||
|   -- Here is a more advanced example where we pass configuration | ||||
|   -- options to `gitsigns.nvim`. | ||||
|   -- | ||||
|   -- See `:help gitsigns` to understand what the configuration keys do | ||||
|   { -- Adds git related signs to the gutter, as well as utilities for managing changes | ||||
|     'lewis6991/gitsigns.nvim', | ||||
|     opts = { | ||||
|  | @ -270,27 +59,13 @@ require('lazy').setup({ | |||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- NOTE: Plugins can also be configured to run Lua code when they are loaded. | ||||
|   -- | ||||
|   -- This is often very useful to both group configuration, as well as handle | ||||
|   -- lazy loading plugins that don't need to be loaded immediately at startup. | ||||
|   -- | ||||
|   -- For example, in the following configuration, we use: | ||||
|   --  event = 'VimEnter' | ||||
|   -- | ||||
|   -- which loads which-key before all the UI elements are loaded. Events can be | ||||
|   -- normal autocommands events (`:help autocmd-events`). | ||||
|   -- | ||||
|   -- Then, because we use the `opts` key (recommended), the configuration runs | ||||
|   -- after the plugin has been loaded as `require(MODULE).setup(opts)`. | ||||
| 
 | ||||
|   { -- Useful plugin to show you pending keybinds. | ||||
|     'folke/which-key.nvim', | ||||
|     event = 'VimEnter', -- Sets the loading event to 'VimEnter' | ||||
|     opts = { | ||||
|       -- delay between pressing a key and opening which-key (milliseconds) | ||||
|       -- this setting is independent of vim.opt.timeoutlen | ||||
|       delay = 0, | ||||
|       delay = 300, | ||||
|       icons = { | ||||
|         -- set icon mappings to true if you have a Nerd Font | ||||
|         mappings = vim.g.have_nerd_font, | ||||
|  | @ -330,24 +105,18 @@ require('lazy').setup({ | |||
| 
 | ||||
|       -- Document existing key chains | ||||
|       spec = { | ||||
|         { '<leader>c', group = '[C]ode', mode = { 'n', 'x' } }, | ||||
|         { '<leader>d', group = '[D]ocument' }, | ||||
|         { '<leader>c', group = '[C]lose buffer', mode = { 'n', 'x' } }, | ||||
|         { '<leader>d', group = '[D]iagnostics' }, | ||||
|         { '<leader>l', group = '[L]sp' }, | ||||
|         { '<leader>r', group = '[R]ename' }, | ||||
|         { '<leader>s', group = '[S]earch' }, | ||||
|         { '<leader>w', group = '[W]orkspace' }, | ||||
|         { '<leader>w', group = '[W]save' }, | ||||
|         { '<leader>t', group = '[T]oggle' }, | ||||
|         { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } }, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- NOTE: Plugins can specify dependencies. | ||||
|   -- | ||||
|   -- The dependencies are proper plugin specifications as well - anything | ||||
|   -- you do for a plugin at the top level, you can do for a dependency. | ||||
|   -- | ||||
|   -- Use the `dependencies` key to specify the dependencies of a particular plugin | ||||
| 
 | ||||
|   { -- Fuzzy Finder (files, lsp, etc) | ||||
|     'nvim-telescope/telescope.nvim', | ||||
|     event = 'VimEnter', | ||||
|  | @ -373,27 +142,7 @@ require('lazy').setup({ | |||
|       { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, | ||||
|     }, | ||||
|     config = function() | ||||
|       -- Telescope is a fuzzy finder that comes with a lot of different things that | ||||
|       -- it can fuzzy find! It's more than just a "file finder", it can search | ||||
|       -- many different aspects of Neovim, your workspace, LSP, and more! | ||||
|       -- | ||||
|       -- The easiest way to use Telescope, is to start by doing something like: | ||||
|       --  :Telescope help_tags | ||||
|       -- | ||||
|       -- After running this command, a window will open up and you're able to | ||||
|       -- type in the prompt window. You'll see a list of `help_tags` options and | ||||
|       -- a corresponding preview of the help. | ||||
|       -- | ||||
|       -- Two important keymaps to use while in Telescope are: | ||||
|       --  - Insert mode: <c-/> | ||||
|       --  - Normal mode: ? | ||||
|       -- | ||||
|       -- This opens a window that shows you all of the keymaps for the current | ||||
|       -- Telescope picker. This is really useful to discover what Telescope can | ||||
|       -- do as well as how to actually do it! | ||||
| 
 | ||||
|       -- [[ Configure Telescope ]] | ||||
|       -- See `:help telescope` and `:help telescope.setup()` | ||||
|       require('telescope').setup { | ||||
|         -- You can put your default mappings / updates / etc. in here | ||||
|         --  All the info you're looking for is in `:help telescope.setup()` | ||||
|  | @ -428,15 +177,6 @@ require('lazy').setup({ | |||
|       vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) | ||||
|       vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' }) | ||||
| 
 | ||||
|       -- Slightly advanced example of overriding default behavior and theme | ||||
|       vim.keymap.set('n', '<leader>/', function() | ||||
|         -- You can pass additional configuration to Telescope to change the theme, layout, etc. | ||||
|         builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { | ||||
|           winblend = 10, | ||||
|           previewer = false, | ||||
|         }) | ||||
|       end, { desc = '[/] Fuzzily search in current buffer' }) | ||||
| 
 | ||||
|       -- It's also possible to pass additional configuration options. | ||||
|       --  See `:help telescope.builtin.live_grep()` for information about particular keys | ||||
|       vim.keymap.set('n', '<leader>s/', function() | ||||
|  | @ -734,7 +474,7 @@ require('lazy').setup({ | |||
|     cmd = { 'ConformInfo' }, | ||||
|     keys = { | ||||
|       { | ||||
|         '<leader>f', | ||||
|         '<leader>lf', | ||||
|         function() | ||||
|           require('conform').format { async = true, lsp_format = 'fallback' } | ||||
|         end, | ||||
|  | @ -829,8 +569,10 @@ require('lazy').setup({ | |||
|         mapping = cmp.mapping.preset.insert { | ||||
|           -- Select the [n]ext item | ||||
|           ['<C-n>'] = cmp.mapping.select_next_item(), | ||||
|           ['<C-j>'] = cmp.mapping.select_next_item(), | ||||
|           -- Select the [p]revious item | ||||
|           ['<C-p>'] = cmp.mapping.select_prev_item(), | ||||
|           ['<C-k>'] = cmp.mapping.select_prev_item(), | ||||
| 
 | ||||
|           -- Scroll the documentation window [b]ack / [f]orward | ||||
|           ['<C-b>'] = cmp.mapping.scroll_docs(-4), | ||||
|  | @ -923,14 +665,14 @@ require('lazy').setup({ | |||
|       --  - va)  - [V]isually select [A]round [)]paren | ||||
|       --  - yinq - [Y]ank [I]nside [N]ext [Q]uote | ||||
|       --  - ci'  - [C]hange [I]nside [']quote | ||||
|       require('mini.ai').setup { n_lines = 500 } | ||||
|       -- require('mini.ai').setup { n_lines = 500 } | ||||
| 
 | ||||
|       -- Add/delete/replace surroundings (brackets, quotes, etc.) | ||||
|       -- | ||||
|       -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren | ||||
|       -- - sd'   - [S]urround [D]elete [']quotes | ||||
|       -- - sr)'  - [S]urround [R]eplace [)] ['] | ||||
|       require('mini.surround').setup() | ||||
|       -- require('mini.surround').setup() | ||||
| 
 | ||||
|       -- Simple and easy statusline. | ||||
|       --  You could remove this setup call if you don't like it, | ||||
|  | @ -957,7 +699,7 @@ require('lazy').setup({ | |||
|     main = 'nvim-treesitter.configs', -- Sets main module to use for opts | ||||
|     -- [[ Configure Treesitter ]] See `:help nvim-treesitter` | ||||
|     opts = { | ||||
|       ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, | ||||
|       ensure_installed = { 'bash', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, | ||||
|       -- Autoinstall languages that are not installed | ||||
|       auto_install = true, | ||||
|       highlight = { | ||||
|  | @ -989,15 +731,15 @@ require('lazy').setup({ | |||
|   -- require 'kickstart.plugins.debug', | ||||
|   -- require 'kickstart.plugins.indent_line', | ||||
|   -- require 'kickstart.plugins.lint', | ||||
|   -- require 'kickstart.plugins.autopairs', | ||||
|   -- require 'kickstart.plugins.neo-tree', | ||||
|   -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps | ||||
|   require 'kickstart.plugins.autopairs', | ||||
|   require 'kickstart.plugins.neo-tree', | ||||
|   require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps | ||||
| 
 | ||||
|   -- 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. | ||||
|   -- | ||||
|   --  Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. | ||||
|   -- { import = 'custom.plugins' }, | ||||
|   { import = 'custom.plugins' }, | ||||
|   -- | ||||
|   -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` | ||||
|   -- Or use telescope! | ||||
|  |  | |||
|  | @ -0,0 +1,14 @@ | |||
| -- [[ Basic Autocommands ]] | ||||
| -- | ||||
| --  See `:help lua-guide-autocommands` | ||||
| 
 | ||||
| -- Highlight when yanking (copying) text | ||||
| --  Try it with `yap` in normal mode | ||||
| --  See `:help vim.highlight.on_yank()` | ||||
| vim.api.nvim_create_autocmd('TextYankPost', { | ||||
|   desc = 'Highlight when yanking (copying) text', | ||||
|   group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), | ||||
|   callback = function() | ||||
|     vim.highlight.on_yank() | ||||
|   end, | ||||
| }) | ||||
|  | @ -0,0 +1,46 @@ | |||
| -- [[ Basic Keymaps ]] | ||||
| vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') | ||||
| vim.keymap.set('n', '<leader>h', '<cmd>nohlsearch<CR>') | ||||
| vim.keymap.set('i', 'jj', '<Esc>') | ||||
| 
 | ||||
| -- Normal -- | ||||
| -- Better window navigation | ||||
| vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) | ||||
| vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' }) | ||||
| vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' }) | ||||
| vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' }) | ||||
| 
 | ||||
| -- Navigate buffers | ||||
| vim.keymap.set('n', '<S-l>', '<cmd>bnext<CR>', { desc = 'Next buffer' }) | ||||
| vim.keymap.set('n', '<S-h>', '<cmd>bprevious<CR>', { desc = 'Previous buffer' }) | ||||
| 
 | ||||
| -- diagnostics | ||||
| vim.keymap.set('n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>', { desc = 'Show diagnostic float' }) | ||||
| 
 | ||||
| -- Files | ||||
| vim.keymap.set('n', '<leader>q', '<cmd>q!<cr>', { desc = '[Q]uit' }) | ||||
| vim.keymap.set('n', '<leader>w', '<cmd>w!<cr>', { desc = '[W]rite file' }) | ||||
| vim.keymap.set('n', '<leader>/', '<Plug>(comment_toggle_linewise_current)', { desc = 'Toggle comment line' }) | ||||
| vim.keymap.set('n', '<leader>.', '<cmd>luafile %<CR>', { desc = 'Source Lua file' }) | ||||
| vim.keymap.set('v', '<leader>/', '<Plug>(comment_toggle_linewise_visual)', { desc = 'Toggle comment for selection' }) | ||||
| 
 | ||||
| -- delete single character without copying into register | ||||
| vim.keymap.set('n', 'x', '"_x', { desc = 'Delete character without yanking' }) | ||||
| 
 | ||||
| -- Visual -- | ||||
| -- Stay in indent mode | ||||
| vim.keymap.set('v', '<', '<gv', { desc = 'Indent left and stay in visual mode' }) | ||||
| vim.keymap.set('v', '>', '>gv', { desc = 'Indent right and stay in visual mode' }) | ||||
| 
 | ||||
| -- buffers | ||||
| vim.keymap.set('n', '<leader>bh', '<cmd>BufferLineCloseLeft<cr>', { desc = 'Close buffers to the left' }) | ||||
| vim.keymap.set('n', '<leader>bl', '<cmd>BufferLineCloseRight<cr>', { desc = 'Close buffers to the right' }) | ||||
| vim.keymap.set('n', '<leader>bf', '<cmd>Telescope buffers<cr>', { desc = 'Find buffers' }) | ||||
| vim.keymap.set('n', '<leader>c', '<cmd>bd!<CR>', { desc = 'Close buffer' }) | ||||
| 
 | ||||
| --- lsp | ||||
| vim.keymap.set('n', '<leader>la', '<cmd>lua vim.lsp.buf.code_action()<cr>', { desc = 'Code actions' }) | ||||
| vim.keymap.set('n', '<leader>lj', '<cmd>lua vim.diagnostic.goto_next()<cr>', { desc = 'Next diagnostic' }) | ||||
| vim.keymap.set('n', '<leader>lk', '<cmd>lua vim.diagnostic.goto_prev()<cr>', { desc = 'Previous diagnostic' }) | ||||
| vim.keymap.set('n', '<leader>lf', '<cmd>lua vim.lsp.buf.format{async = true}<cr>', { desc = 'Format buffer' }) | ||||
| vim.keymap.set('n', '<leader>lr', '<cmd>lua vim.lsp.buf.rename()<cr>', { desc = 'Rename symbol' }) | ||||
|  | @ -2,4 +2,53 @@ | |||
| --  I promise not to create any merge conflicts in this directory :) | ||||
| -- | ||||
| -- See the kickstart.nvim README for more information | ||||
| return {} | ||||
| return { | ||||
|   { | ||||
|     'akinsho/bufferline.nvim', | ||||
|     version = '*', | ||||
|     dependencies = 'nvim-tree/nvim-web-devicons', | ||||
|     config = function() | ||||
|       require('bufferline').setup {} | ||||
|     end, | ||||
|   }, | ||||
|   { | ||||
|     'mikavilpas/yazi.nvim', | ||||
|     event = 'VeryLazy', | ||||
|     keys = { | ||||
|       -- 👇 in this section, choose your own keymappings! | ||||
|       { | ||||
|         '<leader>y', | ||||
|         mode = { 'n', 'v' }, | ||||
|         '<cmd>Yazi<cr>', | ||||
|         desc = 'Open yazi at the current file', | ||||
|       }, | ||||
|     }, | ||||
|     opts = { | ||||
|       -- if you want to open yazi instead of netrw, see below for more info | ||||
|       open_for_directories = false, | ||||
|       keymaps = { | ||||
|         show_help = '<f1>', | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   'moll/vim-bbye', | ||||
|   { | ||||
|     'folke/flash.nvim', | ||||
|     event = 'VeryLazy', | ||||
|     ---@type Flash.Config | ||||
|     opts = {}, | ||||
|     -- stylua: ignore | ||||
|     keys = { | ||||
|       { "s",     mode = { "n", "x", "o" }, function() require("flash").jump() end,              desc = "Flash" }, | ||||
|       { "S",     mode = { "n", "x", "o" }, function() require("flash").treesitter() end,        desc = "Flash Treesitter" }, | ||||
|       { "r",     mode = "o",               function() require("flash").remote() end,            desc = "Remote Flash" }, | ||||
|       { "R",     mode = { "o", "x" },      function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, | ||||
|       { "<c-s>", mode = { "c" },           function() require("flash").toggle() end,            desc = "Toggle Flash Search" }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -------------------------------------COLORS------------------------------------- | ||||
|   --- | ||||
|   { 'catppuccin/nvim', as = 'catppuccin' }, | ||||
|   { 'rose-pine/neovim', name = 'rose-pine' }, | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,67 @@ | |||
| -- [[ Setting options ]] | ||||
| -- See `:help vim.opt` | ||||
| -- NOTE: You can change these options as you wish! | ||||
| --  For more options, you can see `:help option-list` | ||||
| 
 | ||||
| -- Make line numbers default | ||||
| vim.opt.number = true | ||||
| -- You can also add relative line numbers, to help with jumping. | ||||
| --  Experiment for yourself to see if you like it! | ||||
| -- vim.opt.relativenumber = true | ||||
| 
 | ||||
| -- Enable mouse mode, can be useful for resizing splits for example! | ||||
| vim.opt.mouse = 'a' | ||||
| 
 | ||||
| -- Don't show the mode, since it's already in the status line | ||||
| vim.opt.showmode = false | ||||
| 
 | ||||
| -- Sync clipboard between OS and Neovim. | ||||
| --  Schedule the setting after `UiEnter` because it can increase startup-time. | ||||
| --  Remove this option if you want your OS clipboard to remain independent. | ||||
| --  See `:help 'clipboard'` | ||||
| vim.schedule(function() | ||||
|   vim.opt.clipboard = 'unnamedplus' | ||||
| end) | ||||
| 
 | ||||
| -- Enable break indent | ||||
| vim.opt.breakindent = true | ||||
| 
 | ||||
| -- Save undo history | ||||
| vim.opt.undofile = true | ||||
| 
 | ||||
| -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term | ||||
| vim.opt.ignorecase = true | ||||
| vim.opt.smartcase = true | ||||
| 
 | ||||
| -- Keep signcolumn on by default | ||||
| vim.opt.signcolumn = 'yes' | ||||
| 
 | ||||
| -- Decrease update time | ||||
| vim.opt.updatetime = 250 | ||||
| 
 | ||||
| -- Decrease mapped sequence wait time | ||||
| vim.opt.timeoutlen = 300 | ||||
| 
 | ||||
| -- Configure how new splits should be opened | ||||
| vim.opt.splitright = true | ||||
| vim.opt.splitbelow = true | ||||
| 
 | ||||
| -- Sets how neovim will display certain whitespace characters in the editor. | ||||
| --  See `:help 'list'` | ||||
| --  and `:help 'listchars'` | ||||
| vim.opt.list = true | ||||
| vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } | ||||
| 
 | ||||
| -- Preview substitutions live, as you type! | ||||
| vim.opt.inccommand = 'split' | ||||
| 
 | ||||
| -- Show which line your cursor is on | ||||
| vim.opt.cursorline = true | ||||
| 
 | ||||
| -- Minimal number of screen lines to keep above and below the cursor. | ||||
| vim.opt.scrolloff = 10 | ||||
| 
 | ||||
| -- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), | ||||
| -- instead raise a dialog asking if you wish to save the current file(s) | ||||
| -- See `:help 'confirm'` | ||||
| vim.opt.confirm = true | ||||
|  | @ -11,7 +11,7 @@ return { | |||
|   }, | ||||
|   cmd = 'Neotree', | ||||
|   keys = { | ||||
|     { '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true }, | ||||
|     { '<leader>e', ':Neotree toggle<CR>', desc = 'NeoTree reveal', silent = true }, | ||||
|   }, | ||||
|   opts = { | ||||
|     filesystem = { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue