-- IMPORTANT NOTE : This is default config, so dont change anything here. -- use custom/chadrc.lua instead local M = {} M.options, M.ui, M.mappings, M.plugin = {}, {}, {}, {} -- non plugin normal, available without any plugins M.options = { -- NeoVim/Vim options clipboard = "unnamedplus", cmdheight = 1, ruler = false, hidden = true, ignorecase = true, mapleader = " ", mouse = "a", number = true, -- relative numbers in normal mode tool at the bottom of options.lua numberwidth = 2, relativenumber = false, expandtab = true, shiftwidth = 2, smartindent = true, tabstop = 8, -- Number of spaces that a in the file counts for timeoutlen = 400, -- interval for writing swap file to disk, also used by gitsigns updatetime = 250, undofile = true, -- keep a permanent undo (across restarts) -- NvChad options nvChad = { copy_cut = true, -- copy cut text ( x key ), visual and normal mode copy_del = true, -- copy deleted text ( dd key ), visual and normal mode insert_nav = true, -- navigation in insertmode window_nav = true, theme_toggler = false, -- used for updater update_url = "https://github.com/NvChad/NvChad", update_branch = "main", }, } -- ui configs M.ui = { italic_comments = false, -- theme to be used, check available themes with ` + t + h` theme = "onedark", -- toggle between two themes, see theme_toggler mappings theme_toggler = { "onedark", "gruvchad", }, -- Enable this only if your terminal has the colorscheme set which nvchad uses -- For Ex : if you have onedark set in nvchad, set onedark's bg color on your terminal transparency = false, } -- these are plugin related options M.plugins = { -- enable and disable plugins (false for disable) plugin_status = { autosave = false, -- to autosave files blankline = true, -- show code scope with symbols bufferline = true, -- list open buffers up the top, easy switching too colorizer = false, -- color RGB, HEX, CSS, NAME color codes comment = true, -- easily (un)comment code, language aware dashboard = false, -- NeoVim 'home screen' on open esc_insertmode = true, -- map to with no lag feline = true, -- statusline gitsigns = true, -- gitsigns in statusline lspsignature = true, -- lsp enhancements neoformat = true, -- universal code formatter neoscroll = false, -- smooth scroll telescope_media = false, -- media previews within telescope finders truezen = false, -- distraction free & minimalist UI mode vim_fugitive = false, -- git integration & tooling vim_matchup = true, -- % operator enhancements }, options = { lspconfig = { servers = {}, -- eg: "html" }, nvimtree = { enable_git = 0, }, statusline = { -- statusline related options -- these are filetypes, not pattern matched -- shown filetypes will overrule hidden filetypes hidden = { "help", "dashboard", "NvimTree", "terminal", }, shown = {}, -- default, round , slant , block , arrow style = "default", }, autosave = false, -- autosave on changed text or insert mode leave -- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape esc_insertmode_timeout = 300, }, default_plugin_config_replace = {}, } -- mappings -- don't use a single keymap twice -- -- non plugin mappings M.mappings = { -- custom = {}, -- all custom user mappings -- close current focused buffer close_buffer = "x", copy_whole_file = "", -- copy all contents of the current buffer line_number_toggle = "n", -- show or hide line number new_buffer = "", -- open a new buffer new_tab = "b", -- open a new vim tab save_file = "", -- save file using :w theme_toggler = "tt", -- for theme toggler, see in ui.theme_toggler -- navigation in insert mode, only if enabled in options insert_nav = { backward = "", end_of_line = "", forward = "", next_line = "", prev_line = "", top_of_line = "", }, --better window movement window_nav = { moveLeft = "", moveRight = "", moveUp = "", moveDown = "", }, -- terminal related mappings terminal = { -- multiple mappings can be given for esc_termmode and esc_hide_termmode -- get out of terminal mode esc_termmode = { "jk" }, -- multiple mappings allowed -- get out of terminal mode and hide it esc_hide_termmode = { "JK" }, -- multiple mappings allowed -- show & recover hidden terminal buffers in a telescope picker pick_term = "W", -- below three are for spawning terminals new_horizontal = "h", new_vertical = "v", new_window = "w", }, -- update nvchad from nvchad, chadness 101 update_nvchad = "uu", } -- all plugins related mappings M.mappings.plugins = { -- list open buffers up the top, easy switching too bufferline = { next_buffer = "", -- next buffer prev_buffer = "", -- previous buffer }, -- easily (un)comment code, language aware comment = { toggle = "/", -- toggle comment (works on multiple lines) }, -- NeoVim 'home screen' on open dashboard = { bookmarks = "bm", new_file = "fn", -- basically create a new buffer open = "db", -- open dashboard session_load = "l", -- load a saved session session_save = "s", -- save a session }, -- map to with no lag better_escape = { -- will still work esc_insertmode = { "jk" }, -- multiple mappings allowed }, -- file explorer/tree nvimtree = { toggle = "", focus = "e", }, -- universal code formatter neoformat = { format = "fm", }, -- multitool for finding & picking things telescope = { buffers = "fb", find_files = "ff", find_hiddenfiles = "fa", git_commits = "cm", git_status = "gt", help_tags = "fh", live_grep = "fw", oldfiles = "fo", themes = "th", -- NvChad theme picker -- media previews within telescope finders telescope_media = { media_files = "fp", }, }, -- distraction free & minimalist UI mode truezen = { ataraxis_mode = "zz", -- center focus_mode = "zf", minimalistic_mode = "zm", -- as it is }, -- git integration & tooling vim_fugitive = { diff_get_2 = "gh", diff_get_3 = "gl", git = "gs", git_blame = "gb", }, } return M