-- IMPORTANT NOTE : This is default config, so dont change anything here. -- use custom/chadrc.lua instead local M = {} M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {} -- non plugin ui configs, available without any plugins M.ui = { italic_comments = false, -- theme to be used, to see all available themes, open the theme switcher by + th theme = "onedark", -- theme toggler, toggle between two themes, see theme_toggleer mappings theme_toggler = { enabled = false, fav_themes = { "onedark", "one-light", }, }, -- 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, } -- plugin related ui options M.ui.plugin = { -- statusline related options statusline = { -- these are filetypes, not pattern matched -- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden hidden = { "help", "dashboard", "NvimTree", "terminal", }, shown = {}, -- default, round , slant , block , arrow style = "default", }, } -- non plugin normal, available without any plugins M.options = { clipboard = "unnamedplus", cmdheight = 1, copy_cut = true, -- copy cut text ( x key ), visual and normal mode copy_del = true, -- copy deleted text ( dd key ), visual and normal mode expandtab = true, hidden = true, ignorecase = true, insert_nav = true, -- navigation in insertmode mapleader = " ", mouse = "a", number = true, -- relative numbers in normal mode tool at the bottom of options.lua numberwidth = 2, permanent_undo = true, shiftwidth = 2, smartindent = true, tabstop = 8, -- Number of spaces that a in the file counts for timeoutlen = 400, relativenumber = false, ruler = false, updatetime = 250, -- used for updater update_url = "https://github.com/NvChad/NvChad", update_branch = "main", } -- these are plugin related options M.options.plugin = { 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, } -- enable and disable plugins (false for disable) M.plugin_status = { autosave = false, -- to autosave files blankline = true, -- beautified blank lines bufferline = true, -- buffer shown as tabs cheatsheet = true, -- fuzzy search your commands/keymappings colorizer = true, comment = true, -- universal commentor dashboard = false, -- a nice looking dashboard esc_insertmode = true, -- escape from insert mode using custom keys feline = true, -- statusline gitsigns = true, -- gitsigns in statusline lspsignature = true, -- lsp enhancements neoformat = true, -- universal formatter neoscroll = true, -- smooth scroll telescope_media = false, -- see media files in telescope picker truezen = false, -- no distraction mode for nvim vim_fugitive = false, -- git in nvim vim_matchup = true, -- % magic, match it but improved } -- mappings -- don't use a single keymap twice -- -- non plugin mappings M.mappings = { -- close current focused buffer close_buffer = "x", copy_whole_file = "", -- copy all contents of the current buffer -- navigation in insert mode, only if enabled in options insert_nav = { backward = "", end_of_line = "", forward = "", next_line = "", prev_line = "", top_of_line = "", }, 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 -- 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 -- it does not close it, see pick_term mapping to see hidden terminals esc_hide_termmode = { "JK" }, -- multiple mappings allowed -- show 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 -- to get short info about a plugin, see the respective string in plugin_status, if not present, then info here M.mappings.plugin = { bufferline = { next_buffer = "", -- next buffer prev_buffer = "", -- previous buffer --TODO move out of bufferline --better window movement moveLeft = "", moveRight = "", moveUp = "", moveDown = "", }, cheatsheet = { default_keys = "dk", user_keys = "uk", }, comment = { toggle = "/", -- trigger comment on a single/selected lines/number prefix }, 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 }, -- note: this is an edditional mapping to escape, escape key will still work better_escape = { esc_insertmode = { "jk" }, -- multiple mappings allowed }, nvimtree = { -- file tree toggle = "", focus = "e", }, neoformat = { format = "fm", }, 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", }, telescope_media = { media_files = "fp", }, truezen = { -- distraction free modes mapping, hide statusline, tabline, line numbers ataraxis_mode = "zz", -- center focus_mode = "zf", minimalistic_mode = "zm", -- as it is }, vim_fugitive = { diff_get_2 = "gh", diff_get_3 = "gl", git = "gs", git_blame = "gb", }, } -- user custom mappings -- e.g: name = { "mode" , "keys" , "cmd" , "options"} -- name: can be empty or something unique with repect to other custom mappings -- { mode, key, cmd } or name = { mode, key, cmd } -- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes, -- keys: multiple keys allowed, same synxtax as modes -- cmd: for vim commands, must use ':' at start and add at the end if want to execute -- options: see :h nvim_set_keymap() opts section M.custom.mappings = { -- clear_all = { -- "n", -- "cc", -- "gg0vG$d", -- }, } M.plugins = { lspconfig = { -- servers = {"html", "cssls"} servers = {}, }, } return M