Not gook big commit...
This commit is contained in:
parent
f1b7a59595
commit
6829f75639
10 changed files with 162 additions and 61 deletions
21
README.md
21
README.md
|
@ -1,17 +1,24 @@
|
||||||
NeoVim Setup files
|
NeoVim Setup files
|
||||||
===============
|
===============
|
||||||
|
|
||||||
This is my NeoVim setup with Vim-Plug and plugins :
|
This is mys neovim configuration with lua and paq plugins manager
|
||||||
|
|
||||||
* Base16 themes
|
|
||||||
* Syntastic plugin
|
|
||||||
* NerdTree plugin
|
|
||||||
* Vim-Airline
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
This Nvim installation need somes dependencies:
|
||||||
|
|
||||||
|
* gcc (Tree-Sitter)
|
||||||
|
* g++ (Tree-Sitter)
|
||||||
|
* clang (Tree-sitter)
|
||||||
|
|
||||||
|
For install plugins, you need to execute neovim with arguments like below
|
||||||
|
|
||||||
|
```
|
||||||
|
nvim --headless -u NONE -c 'lua require("plugins").bootstrap_paq()'
|
||||||
|
```
|
||||||
|
|
||||||
This repository is installable with [dotinstall][l_dotinstall] :
|
This repository is installable with [dotinstall][l_dotinstall] :
|
||||||
|
|
||||||
```
|
```
|
||||||
dotinstall https://git.epha.se/ephase/vim.git
|
dotinstall https://git.epha.se/ephase/dotinstall.git
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
|
|
||||||
-- " Key biding
|
-- " Key biding
|
||||||
-- " ----------
|
-- " ----------
|
||||||
-- map {'', '[C-left]', ':tabprevious<CR>', noremap = false, silent = true}
|
|
||||||
-- map {'', '[C-right]', ':tabnext<CR>', noremap = false, silent = true}
|
|
||||||
map {'n', '<leader>/', ':nohlsearch<CR>', noremap = false, silent = true}
|
map {'n', '<leader>/', ':nohlsearch<CR>', noremap = false, silent = true}
|
||||||
map {'n', '<F2>', ':NERDTreeToggle<CR>', noremap = false, silent = true}
|
map {'n', '<F2>', ':NERDTreeToggle<CR>', noremap = false, silent = true}
|
||||||
|
|
||||||
|
@ -16,17 +13,19 @@ local t = function(str)
|
||||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
_G.smart_tab = function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
return t'<C-n>'
|
|
||||||
else
|
|
||||||
return t'<Tab>'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap(
|
vim.api.nvim_set_keymap(
|
||||||
'i',
|
'i',
|
||||||
'<Tab>',
|
'<Tab>',
|
||||||
'v:lua.smart_tab()',
|
'v:lua.smart_tab()',
|
||||||
{noremap = true, expr = true}
|
{noremap = true, expr = true}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- git sign
|
||||||
|
-- Actions
|
||||||
|
local opts = { noremap = true, silent = true}
|
||||||
|
--vim.api.nvim_set_keymap('n', '<leader>gp', require("gitsigns").preview_hunk, opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>gn', [[<cmd>lua require('gitsigns').next_hunk()<CR>]], opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>gN', [[<cmd>lua require('gitsigns').prev_hunk()<CR>]], opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>gs', ':Gitsigns stage_hunk<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>gr', ':Gitsigns reset_hunk<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>gd', [[<cmd>lua require("gitsigns").diffthis('~')<CR>]], opts)
|
||||||
|
|
|
@ -1,30 +1,12 @@
|
||||||
-- Global variables
|
-- Global variables
|
||||||
vim.g['base16colorspace'] = 256
|
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%]'
|
|
||||||
|
|
||||||
-- NerdTree
|
-- NerdTree
|
||||||
-- Close NERDTree if it is the last buffer open
|
-- Close NERDTree if it is the last buffer open
|
||||||
vim.cmd('au bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif')
|
vim.cmd('au bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif')
|
||||||
|
|
||||||
-- Grammalecte
|
require('plugins.treesitter')
|
||||||
vim.g['grammalecte_cli_py'] = '/usr/bin/grammalecte-cli'
|
require('plugins.lsp')
|
||||||
|
require('plugins.cmp')
|
||||||
-- Deoplete
|
require('plugins.gitsigns')
|
||||||
vim.g['deoplete#enable_at_startup'] = 1
|
require('plugins.lualine')
|
||||||
|
|
||||||
-- Tree sitter
|
|
||||||
local ts = require 'nvim-treesitter.configs'
|
|
||||||
ts.setup {ensure_installed = 'maintained', highlight = {enable = true}}
|
|
||||||
|
|
|
@ -1,28 +1,27 @@
|
||||||
--Plugins
|
-- Plugins
|
||||||
local paq = require("paq")
|
require "paq" {
|
||||||
paq {
|
|
||||||
"savq/paq-nvim";
|
"savq/paq-nvim";
|
||||||
-- vim airline and vim airline theme
|
|
||||||
'vim-airline/vim-airline';
|
-- status bar
|
||||||
-- vim airline and vim airline theme
|
'nvim-lualine/lualine.nvim';
|
||||||
'vim-airline/vim-airline-themes';
|
|
||||||
'w0rp/ale';
|
|
||||||
-- Base16 theme
|
-- Base16 theme
|
||||||
'chriskempson/base16-vim';
|
'RRethy/nvim-base16';
|
||||||
|
|
||||||
-- NERDTree file manager
|
-- NERDTree file manager
|
||||||
'scrooloose/nerdtree';
|
'scrooloose/nerdtree';
|
||||||
|
'lewis6991/gitsigns.nvim';
|
||||||
|
|
||||||
-- Vim fugitive
|
|
||||||
'tpope/vim-fugitive';
|
|
||||||
'tpope/vim-surround';
|
|
||||||
'sheerun/vim-polyglot';
|
|
||||||
{'Shougo/deoplete.nvim', run = vim.fn['remote#host#UpdateRemotePlugins']};
|
|
||||||
'zchee/deoplete-jedi';
|
|
||||||
-- Grammalecte
|
|
||||||
'dpelle/vim-Grammalecte';
|
|
||||||
|
|
||||||
-- need to install g++ package on Debian
|
-- need to install g++ package on Debian
|
||||||
-- for tree sitter plugins
|
-- for tree sitter plugins
|
||||||
'nvim-treesitter/nvim-treesitter'
|
'nvim-treesitter/nvim-treesitter';
|
||||||
|
|
||||||
|
-- LSP installer
|
||||||
|
'neovim/nvim-lspconfig';
|
||||||
|
'williamboman/nvim-lsp-installer';
|
||||||
|
|
||||||
|
-- autocompletion plugin
|
||||||
|
'hrsh7th/nvim-cmp';
|
||||||
|
'hrsh7th/cmp-nvim-lsp'
|
||||||
}
|
}
|
||||||
|
|
37
conf/nvim/lua/plugins/cmp.lua
Normal file
37
conf/nvim/lua/plugins/cmp.lua
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||||||
|
|
||||||
|
-- nvim-cmp setup
|
||||||
|
local cmp = require 'cmp'
|
||||||
|
cmp.setup {
|
||||||
|
mapping = {
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
['<Tab>'] = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
['<S-Tab>'] = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
},
|
||||||
|
}
|
3
conf/nvim/lua/plugins/gitsigns.lua
Normal file
3
conf/nvim/lua/plugins/gitsigns.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
require('gitsigns').setup {
|
||||||
|
keymaps = {}, -- NO default keybindings
|
||||||
|
}
|
23
conf/nvim/lua/plugins/lsp.lua
Normal file
23
conf/nvim/lua/plugins/lsp.lua
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
-- lsp installet
|
||||||
|
--
|
||||||
|
local lsp_installer = require("nvim-lsp-installer")
|
||||||
|
|
||||||
|
-- Register a handler that will be called for each installed server when it's
|
||||||
|
-- ready (i.e. when installation is finished
|
||||||
|
-- or if the server is already installed).
|
||||||
|
lsp_installer.on_server_ready(function(server)
|
||||||
|
local opts = {}
|
||||||
|
|
||||||
|
-- (optional) Customize the options passed to the server
|
||||||
|
-- if server.name == "tsserver" then
|
||||||
|
-- opts.root_dir = function() ... end
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- This setup() function will take the provided server configuration and
|
||||||
|
-- decorate it with the necessary properties before passing it onwards to
|
||||||
|
-- lspconfig Refer to :
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||||
|
server:setup(opts)
|
||||||
|
end)
|
29
conf/nvim/lua/plugins/lualine.lua
Normal file
29
conf/nvim/lua/plugins/lualine.lua
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'base16',
|
||||||
|
component_separators = { left = '|', right = '|'},
|
||||||
|
section_separators = { left = '', right = ''},
|
||||||
|
disabled_filetypes = {},
|
||||||
|
always_divide_middle = true,
|
||||||
|
globalstatus = false,
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
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 = {}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
extensions = {}
|
||||||
|
}
|
12
conf/nvim/lua/plugins/treesitter.lua
Normal file
12
conf/nvim/lua/plugins/treesitter.lua
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
-- Tree sitter
|
||||||
|
local ts = require 'nvim-treesitter.configs'
|
||||||
|
|
||||||
|
ts.setup {
|
||||||
|
ensure_installed = 'maintained',
|
||||||
|
sync_install = false,
|
||||||
|
ignore_install = { 'erlang' },
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,10 +34,20 @@ vim.cmd('colorscheme base16-classic-dark')
|
||||||
vim.cmd('au BufWinLeave *.* mkview')
|
vim.cmd('au BufWinLeave *.* mkview')
|
||||||
vim.cmd('au BufWinEnter *.* silent! loadview')
|
vim.cmd('au BufWinEnter *.* silent! loadview')
|
||||||
|
|
||||||
-- inoremap <silent><expr><tab> pumvisible()? "\<c-n>" : "\<tab>"
|
|
||||||
-- inoremap <silent><expr><s-tab> pumvisible()? "\<c-p>" : "\<s-tab>"
|
|
||||||
|
|
||||||
|
-- Diagnostic settings
|
||||||
|
--
|
||||||
|
-- diagnostic windows must be float
|
||||||
|
vim.diagnostic.config {
|
||||||
|
virtual_text = false,
|
||||||
|
signs = false,
|
||||||
|
underline = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- 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, {focus=false})]]
|
||||||
|
|
||||||
-- Autotype
|
-- Autotype
|
||||||
vim.cmd('au BufRead,BufNewFile *.md setlocal textwidth=80')
|
vim.cmd('au BufRead,BufNewFile *.md setlocal textwidth=80')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue