From 0d9cc47300a65abad37ac4267c83786ed1d5d304 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Mon, 3 Jan 2022 01:53:30 +0100 Subject: [PATCH] Update configuration to Lua --- conf/nvim/init.lua | 174 +++++++++++++++++++++++++++++++++++++++++++++ conf/nvim/init.vim | 149 -------------------------------------- 2 files changed, 174 insertions(+), 149 deletions(-) create mode 100644 conf/nvim/init.lua delete mode 100644 conf/nvim/init.vim diff --git a/conf/nvim/init.lua b/conf/nvim/init.lua new file mode 100644 index 0000000..03e449d --- /dev/null +++ b/conf/nvim/init.lua @@ -0,0 +1,174 @@ + +--Plug init +-- +local Plug = vim.fn['plug#'] +vim.call('plug#begin', '~/.local/lib/nvim/plugged') + + -- vim airline and vim airline theme + Plug 'vim-airline/vim-airline' + -- vim airline and vim airline theme + Plug 'vim-airline/vim-airline-themes' + + Plug 'w0rp/ale' + + -- Base16 theme + Plug 'chriskempson/base16-vim' + + -- NERDTree file manager + Plug 'scrooloose/nerdtree' + + -- Vim fugitive + Plug 'tpope/vim-fugitive' + Plug 'tpope/vim-surround' + Plug 'sheerun/vim-polyglot' + + Plug('Shougo/deoplete.nvim', { ['do'] = ':UpdateRemotePlugins' }) + Plug 'zchee/deoplete-jedi' + + -- Grammalecte + Plug('dpelle/vim-Grammalecte', { on = 'GrammalecteCheck' }) + +vim.call('plug#end') + +-- General Option +vim.opt.autoindent = true +vim.opt.background = 'dark' +vim.opt.backupdir = '$HOME/.local/tmp/nvim' +vim.opt.clipboard = 'unnamedplus' --Use system clipboard +vim.opt.colorcolumn = '80' +vim.opt.directory = '$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.number = true +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 + +-- Options than need vim.cmd +vim.cmd('syntax on') +vim.cmd('colorscheme base16-classic-dark') + +-- Global variables +vim.g['base16colorspace'] = 256 + +-- Vim-airLine +vim.g['airline#extensions#tabline#enabled'] = 1 +vim.g['airline#extensions#tabline#left_sep'] = '' +vim.g['airline#extensions#tabline#left_alt_sep'] = '|' +vim.g['g:airline_powerline_fonts'] = 1 +vim.g['airline_skip_empty_sections'] = 1 +vim.g['airline#extensions#tabline#show_splits'] = 0 + +-- ALE +vim.g['ale_sign_column_always'] = 1 +vim.g['ale_sign_error'] = '⚠' +vim.g['ale_sign_warning'] = '⚠' +vim.g['ale_echo_msg_format'] = '[%linter%] %s [%severity%]' + +-- -- Code Fold +-- "Load and save view atomatocally (save and restore fold) +vim.cmd('au BufWinLeave *.* mkview') +vim.cmd('au BufWinEnter *.* silent! loadview') + +-- NerdTree +-- Close NERDTree if it is the last buffer open +vim.cmd('au bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif') + +-- Grammalecte +vim.g['grammalecte_cli_py'] = '/usr/bin/grammalecte-cli' + +-- Deoplete +vim.g['deoplete#enable_at_startup'] = 1 +-- inoremap pumvisible()? "\" : "\" +-- inoremap pumvisible()? "\" : "\" + + +local map = function(key) + -- get the extra options + local opts = {noremap = true} + for i, v in pairs(key) do + if type(i) == 'string' then opts[i] = v end + end + + -- basic support for buffer-scoped keybindings + local buffer = opts.buffer + opts.buffer = nil + + if buffer then + vim.api.nvim_buf_set_keymap(0, key[1], key[2], key[3], opts) + else + vim.api.nvim_set_keymap(key[1], key[2], key[3], opts) + end +end + +-- " Key biding +-- " ---------- +-- map {'', '[C-left]', ':tabprevious', noremap = false, silent = true} +-- map {'', '[C-right]', ':tabnext', noremap = false, silent = true} +map {'n', '/', ':nohlsearch', noremap = false, silent = true} +map {'n', '', ':NERDTreeToggle', noremap = false, silent = true} + +-- Move tabs with \[ and \] +map {'n', ']', ':tabnext', noremap = false, silent = true} +map {'n', '[', ':tabprev', noremap = false, silent = true} +map {'n', 'l', ':set list!', silent = true} + +-- Manage Tab +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +_G.smart_tab = function() + if vim.fn.pumvisible() == 1 then + return t'' + else + return t'' + end +end + +vim.api.nvim_set_keymap( + 'i', + '', + 'v:lua.smart_tab()', + {noremap = true, expr = true} +) + +-- Autotype +vim.cmd('au BufRead,BufNewFile *.md setlocal textwidth=80') +vim.cmd('au BufRead,BufNewFile *.tex setlocal textwidth=80') +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?' +} diff --git a/conf/nvim/init.vim b/conf/nvim/init.vim deleted file mode 100644 index 960b61b..0000000 --- a/conf/nvim/init.vim +++ /dev/null @@ -1,149 +0,0 @@ -set nocompatible - -"Plug init -" -call plug#begin('~/.local/lib/nvim/plugged') - - "vim airline and vim airline theme - Plug 'vim-airline/vim-airline' - "vim airline and vim airline theme - Plug 'vim-airline/vim-airline-themes' - - if v:version >= 800 - " Replace syntastic with ale (test) - Plug 'w0rp/ale' - endif - - "Base16 theme - Plug 'chriskempson/base16-vim' - - "NERDTree file manager - Plug 'scrooloose/nerdtree' - - "Vim fugitive - Plug 'tpope/vim-fugitive' - Plug 'tpope/vim-surround' - Plug 'sheerun/vim-polyglot' - - if has('nvim') - Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } - endif - Plug 'zchee/deoplete-jedi' - - "Grammalecte - Plug 'dpelle/vim-Grammalecte', { 'on': 'GrammalecteCheck' } - -call plug#end() - -filetype plugin indent on -syntax enable -set title -set nu -set showmode -set noswapfile -set nofsync -set buftype= -set mouse=a -set encoding=utf8 -set directory^=$HOME/.local/tmp/nvim -set backupdir^=$HOME/.local/tmp/nvim -set smartindent -set tabstop=4 -set shiftwidth=4 -set expandtab -set showmatch -set colorcolumn=80 -set clipboard+=unnamedplus "Use system clipboard - -"Code Fold -"--------- -set foldmethod=indent -"Load and save view atomatocally (save and restore fold) -autocmd BufWinLeave *.* mkview -autocmd BufWinEnter *.* silent! loadview - -"Searching -"--------- -set incsearch " Ignore case when searching -set ignorecase -set smartcase " When searching try to be smart about cases -set hlsearch " hightlight search terms -set gdefault " Search all occurrences by default - -" NerdTree -" -------- -" Close NERDTree if it is the last buffer open -autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif - -" ALE (test) -" ---------- -let g:ale_sign_column_always = 1 -let g:ale_sign_error = '⚠' -let g:ale_sign_warning = '⚠' -let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' - -" Vim-airLine -" ----------- - -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#left_sep = '' -let g:airline#extensions#tabline#left_alt_sep = '|' -let g:airline_powerline_fonts = 1 -let g:airline_skip_empty_sections = 1 -"let g:airline#extensions#bufferline#enabled = 1 -let g:airline#extensions#tabline#show_splits = 0 - -" Grammalecte -" ----------- - -let g:grammalecte_cli_py='/usr/bin/grammalecte-cli' - -"set laststatus=2 - -set laststatus -" Deoplete -" -------- -let g:deoplete#enable_at_startup = 1 -" Deoplete tab order on popup to be down/up instead of up/down -inoremap pumvisible()? "\" : "\" -inoremap pumvisible()? "\" : "\" - -" Color Scheme -" ------------ -set termguicolors "24 bits color support -let base16colorspace=256 -colorscheme base16-classic-dark -set background=dark - -" Key biding -" ---------- -map [C-left] :tabprevious -map [C-right] :tabnext -map / :nohlsearch -map :NERDTreeToggle -" Move tabs with \[ and \] -map ] :tabnext -map [ :tabprev -" show special character -set listchars=tab:→\ ,trail:␣,extends:…,eol: -nmap l :set list! - -" Autotype -" -------- -au BufRead,BufNewFile *.md setlocal textwidth=80 -au BufRead,BufNewFile *.tex setlocal textwidth=80 -autocmd BufNewFile,BufRead /tmp/neomutt* set tw=72 fo=awq comments+=nb:> noautoindent filetype=mail - -" Enable enhanced command line completion. -set wildmenu -set wildmode=longest:full,list - -" Ignore these filenames during enhanced command line completion. -set wildignore+=*.bak,*.class -set wildignore+=*.aux,*.out,*.toc " LaTeX intermediate files -set wildignore+=*.jpg,*.bmp,*.gif,*.png " binary images -set wildignore+=*.luac " Lua byte code -set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest " compiled object files -set wildignore+=*.pyc " Python byte code -set wildignore+=*.spl " compiled spelling word lists -set wildignore+=*.sw? " Vim swap files