initial
parent
72364ad9ac
commit
d708bfce70
@ -0,0 +1,107 @@
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.colorcolumn = '120'
|
||||
|
||||
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<CR>')
|
||||
vim.keymap.set('n', '<leader>f', ':NvimTreeFindFile<CR>')
|
||||
|
||||
|
||||
-- indent via Tab
|
||||
vim.keymap.set('n', '<Tab>', '>>_')
|
||||
vim.keymap.set('n', '<S-Tab>', '<<_')
|
||||
vim.keymap.set('v', '<Tab>', '>>_')
|
||||
vim.keymap.set('v', '<S-Tab>', '<<_')
|
||||
vim.keymap.set('i', '<Tab>', '\t')
|
||||
vim.keymap.set('i', '<S-Tab>', '\b')
|
||||
|
||||
-- Mapping U to Redo.
|
||||
vim.keymap.set('', 'U', '<C-r>')
|
||||
vim.keymap.set('', '<C-r>', '<NOP>')
|
||||
|
||||
vim.keymap.set('i', 'jk', '<ESC>')
|
||||
vim.keymap.set('i', 'kj', '<ESC>')
|
||||
vim.keymap.set('i', 'jj', '<ESC>')
|
||||
vim.keymap.set('i', 'kk', '<ESC>')
|
||||
|
||||
-- fast scrolling
|
||||
vim.keymap.set('n', '<leader>n', '20j')
|
||||
vim.keymap.set('n', '<leader>u', '20k')
|
||||
vim.keymap.set('v', '<leader>n', '20j')
|
||||
vim.keymap.set('v', '<leader>u', '20k')
|
||||
|
||||
|
||||
-- Alternate way to save
|
||||
vim.cmd('nnoremap <C-s> :w!<CR>')
|
||||
vim.cmd('inoremap <C-s> <ESC> :w!<CR>')
|
||||
|
||||
-- Alternate way to quit
|
||||
vim.cmd('nnoremap <S-c> :q!<CR>')
|
||||
|
||||
|
||||
-- ================= File management ================= --
|
||||
|
||||
-- swapfile has global & local config, eventhough help says otherwise
|
||||
vim.o.swapfile = false -- can open already open files
|
||||
vim.bo.swapfile = false
|
||||
vim.o.backup = false
|
||||
vim.o.writebackup = false
|
||||
vim.o.autoread = true -- auto file change detection
|
||||
|
||||
-- ================= Scrolling ================= --
|
||||
|
||||
vim.o.scrolloff = 999 -- start scrolling when 8 lines away from margins
|
||||
|
||||
-- ================= Indentation ================= --
|
||||
|
||||
-- pay attention to 'vim.bo' (buffer local options) and 'vim.o' (global options)
|
||||
-- see :help options.txt
|
||||
|
||||
-- for some reason these values need to be set in both o and bo objects
|
||||
-- eventhough these options are supposed to be local to buffer
|
||||
vim.o.tabstop = 4 -- maximum width of tab character (measured in spaces)
|
||||
vim.bo.tabstop = 4
|
||||
vim.o.shiftwidth = 4 -- size of indent (measured in spaces), should equal tabstop
|
||||
vim.bo.shiftwidth = 4
|
||||
vim.o.softtabstop = 4 -- should be the same as the other two above
|
||||
vim.bo.softtabstop = 4
|
||||
vim.o.expandtab = true -- expand tabs to spaces
|
||||
vim.bo.expandtab = true -- expand tabs to spaces
|
||||
vim.o.smartindent = true -- smart indenting on new line for C-like programs
|
||||
vim.bo.smartindent = true
|
||||
vim.o.autoindent = true -- copy the indentation from previous line
|
||||
vim.bo.autoindent = true
|
||||
vim.o.smarttab = true -- tab infront of a line inserts blanks based on shiftwidth
|
||||
|
||||
-- ================= Search ================= --
|
||||
|
||||
vim.o.ignorecase = true -- Ignorecase when searching
|
||||
vim.o.incsearch = true -- start searching on each keystroke
|
||||
vim.o.smartcase = true -- ignore case when lowercase, match case when capital case is used
|
||||
vim.o.hlsearch = true -- highlight the search results
|
||||
|
||||
-- ================= Performance ================= --
|
||||
|
||||
vim.o.lazyredraw = true -- useful for when executing macros.
|
||||
vim.o.ttimeoutlen = 10 -- ms to wait for a key code seq to complete
|
||||
|
||||
-- ================= Misc ================= --
|
||||
|
||||
vim.wo.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
|
||||
vim.wo.wrap = false -- don't wrap long text into multiple lines
|
||||
vim.o.history = 10000 -- numbers of entries in history for ':' commands and search patterns (10000 = max)
|
||||
vim.o.updatetime = 300 -- used for CursorHold event (for document highlighting detection)
|
||||
vim.o.mouse = 'nv' -- allow mose in normal & visual mode
|
||||
|
||||
-- better autocomplete behaviour
|
||||
-- menuone - show popup menu also when there is only one match available
|
||||
-- preview - show extra information about currently selected completion
|
||||
-- noinsert - do not insert any text for match until the user selects it from the menu
|
||||
vim.o.completeopt = 'menuone,preview,noinsert'
|
||||
|
||||
-- allows hidden buffers
|
||||
-- this means that a modified buffer doesn't need to be saved when changing
|
||||
-- tabs/windows.
|
||||
vim.o.hidden = true
|
||||
|
||||
-- Copy paste between vim and everything else
|
||||
vim.o.clipboard = "unnamedplus"
|
@ -0,0 +1,10 @@
|
||||
return {
|
||||
'romgrk/barbar.nvim',
|
||||
dependencies = 'nvim-tree/nvim-web-devicons',
|
||||
config = function ()
|
||||
vim.keymap.set('', 'J', '<Cmd>BufferPrevious<CR>')
|
||||
vim.keymap.set('', 'K', '<Cmd>BufferNext<CR>')
|
||||
vim.keymap.set('', 'X', '<Cmd>BufferClose<CR>')
|
||||
end
|
||||
}
|
||||
|
@ -0,0 +1,6 @@
|
||||
return {
|
||||
"rmehri01/onenord.nvim",
|
||||
config = function ()
|
||||
vim.cmd.colorscheme 'onenord'
|
||||
end
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
return {
|
||||
'onsails/lspkind.nvim',
|
||||
config = function ()
|
||||
|
||||
local lspkind = require'lspkind'
|
||||
|
||||
-- nvim-cmp setup
|
||||
local cmp = require 'cmp'
|
||||
cmp.setup {
|
||||
formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
mode = 'symbol_text', -- show only symbol annotations
|
||||
maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
|
||||
ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
|
||||
|
||||
-- The function below will be called before any actual modifications from lspkind
|
||||
-- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30))
|
||||
before = function (entry, vim_item)
|
||||
return vim_item
|
||||
end
|
||||
})
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
return {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
opts = {
|
||||
options = {
|
||||
theme = 'onenord',
|
||||
icons_enabled = true,
|
||||
component_separators = {left = '', right = ''},
|
||||
section_separators = {left = '', right = ''},
|
||||
disabled_filetypes = {},
|
||||
always_divide_middle = true
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||
-- lualine_c = {'filename'},
|
||||
lualine_c = {
|
||||
{
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
path = 1, -- 0: Just the filename
|
||||
-- 1: Relative path
|
||||
-- 2: Absolute path
|
||||
|
||||
shorting_target = 40 -- Shortens path to leave 40 spaces in the window
|
||||
-- for other components. (terrible name, any suggestions?)
|
||||
}
|
||||
},
|
||||
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {'location'},
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
},
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
return {
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
requires = {
|
||||
'nvim-tree/nvim-web-devicons', -- optional, for file icons
|
||||
},
|
||||
config = function ()
|
||||
local nvim_tree_events = require('nvim-tree.events')
|
||||
local bufferline_api = require('bufferline.api')
|
||||
|
||||
local function get_tree_size()
|
||||
return require'nvim-tree.view'.View.width
|
||||
end
|
||||
|
||||
nvim_tree_events.subscribe('TreeOpen', function()
|
||||
bufferline_api.set_offset(get_tree_size())
|
||||
end)
|
||||
|
||||
nvim_tree_events.subscribe('Resize', function()
|
||||
bufferline_api.set_offset(get_tree_size())
|
||||
end)
|
||||
|
||||
nvim_tree_events.subscribe('TreeClose', function()
|
||||
bufferline_api.set_offset(0)
|
||||
end)
|
||||
|
||||
require("nvim-tree").setup()
|
||||
end
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
return {
|
||||
'mhinz/vim-startify'
|
||||
}
|
Loading…
Reference in New Issue