Rework Neovim configuration
This commit is contained in:
parent
7bd97e0f6e
commit
da96f0a640
11 changed files with 470 additions and 398 deletions
102
home-manager/cli/neovim/files/options.lua
Normal file
102
home-manager/cli/neovim/files/options.lua
Normal file
|
@ -0,0 +1,102 @@
|
|||
-- General Option
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
vim.opt.autoindent = true
|
||||
vim.opt.background = 'dark'
|
||||
vim.opt.backupdir = os.getenv("HOME") .. '/.local/tmp/nvim'
|
||||
vim.opt.clipboard = 'unnamedplus' --Use system clipboard
|
||||
vim.opt.colorcolumn = '80'
|
||||
vim.opt.directory = os.getenv("HOME") .. '/.local/tmp/nvim'
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.foldmethod = 'syntax'
|
||||
vim.opt.gdefault = true -- search: all occurrences by default
|
||||
vim.opt.hlsearch = true -- search: hightlight terms
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.laststatus = 1
|
||||
-- show special character
|
||||
vim.opt.listchars = {tab = '→ ', trail = '␣', eol = '', extends = '…' }
|
||||
|
||||
vim.opt.signcolumn = "yes" -- alway show sign column
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.cursorline = true -- highlight current line
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.showmatch = true
|
||||
vim.opt.smartcase = true -- search: try :to be smart about cases
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.termguicolors = true -- 24 bits color support
|
||||
vim.opt.wildmenu = true -- activate enhanced user menu
|
||||
vim.opt.wildmode = 'lastused:full,list' -- enhance menu
|
||||
vim.opt.pumheight = 10
|
||||
vim.opt.pumwidth = 50
|
||||
vim.opt.pumblend = 10
|
||||
|
||||
-- need to activate this for cmp
|
||||
vim.opt.completeopt = {'menu', 'menuone', 'noselect'}
|
||||
-- -- Code Fold
|
||||
-- "Load and save view atomatocally (save and restore fold)
|
||||
vim.cmd('au BufWinLeave *.* mkview')
|
||||
vim.cmd('au BufWinEnter *.* silent! loadview')
|
||||
|
||||
|
||||
-- Diagnostic settings
|
||||
--
|
||||
-- diagnostic windows must be float
|
||||
vim.diagnostic.config {
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
underline = true,
|
||||
}
|
||||
|
||||
local signs = { Error = "", Warn = "", Hint = "", Info = "" }
|
||||
for type, icon in pairs(signs) do
|
||||
local hl = "DiagnosticSign" .. type
|
||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||||
end
|
||||
|
||||
-- You will likely want to reduce updatetime which affects CursorHold
|
||||
-- note: this setting is global and should be set only once
|
||||
vim.o.updatetime = 250
|
||||
vim.cmd [[autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {scope='cursor', header = "", prefix = "", focus=false})]]
|
||||
|
||||
-- Autotype
|
||||
vim.cmd('au BufRead,BufNewFile *.md setlocal textwidth=80')
|
||||
vim.cmd('au BufRead,BufNewFile *.tex setlocal textwidth=80')
|
||||
vim.cmd('au BufRead,BufNewFile *.nix setlocal tabstop=2 shiftwidth=2 ')
|
||||
vim.cmd('au BufNewFile,BufRead /tmp/neomutt* set tw=72 fo=awq comments+=nb:> noautoindent filetype=mail')
|
||||
|
||||
-- Ignore these filenames during enhanced command line completion.
|
||||
vim.opt.wildignore = {
|
||||
'*.bak',
|
||||
'*.class',
|
||||
'*.aux',
|
||||
'*.out',
|
||||
'*.toc',
|
||||
'*.jpg',
|
||||
'*.bmp',
|
||||
'*.gif',
|
||||
'*.png',
|
||||
'*.luac',
|
||||
'*.o',
|
||||
'*.obj',
|
||||
'*.exe',
|
||||
'*.dll',
|
||||
'*.manifest',
|
||||
'*.pyc',
|
||||
'*.spl',
|
||||
'*.sw?'
|
||||
}
|
||||
|
||||
-- Key biding
|
||||
-- " ----------
|
||||
local opts = { noremap = true, silent = true}
|
||||
|
||||
vim.api.nvim_set_keymap('n', '<leader>/', ':nohlsearch<CR>', opts)
|
||||
|
||||
-- Move tabs with \[ and \]
|
||||
vim.api.nvim_set_keymap('n', '<Leader>]', ':tabnext<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<Leader>[', ':tabprev<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<leader>l', ':set list!<CR>', {silent = true})
|
Loading…
Add table
Add a link
Reference in a new issue