Compare commits
5 commits
b42cc85dec
...
942dff9d8c
Author | SHA1 | Date | |
---|---|---|---|
Geoffrey Frogeye | 942dff9d8c | ||
Geoffrey Frogeye | 7f71eec03c | ||
Geoffrey Frogeye | 3d9dc4a4bf | ||
Geoffrey Frogeye | d811d025e6 | ||
Geoffrey Frogeye | 9b450cc22f |
|
@ -9,8 +9,6 @@
|
||||||
when: root_access
|
when: root_access
|
||||||
- role: dotfiles
|
- role: dotfiles
|
||||||
tags: dotfiles
|
tags: dotfiles
|
||||||
- role: vim
|
|
||||||
tags: vim
|
|
||||||
- role: mnussbaum.base16-builder-ansible # Required for desktop_environment
|
- role: mnussbaum.base16-builder-ansible # Required for desktop_environment
|
||||||
tags:
|
tags:
|
||||||
- color
|
- color
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
- name: Upgrade Neovim plugins
|
|
||||||
command: "nvim +PlugUpgrade +PlugUpdate +PlugInstall +qall!"
|
|
||||||
listen: nvim plugins changed
|
|
||||||
environment:
|
|
||||||
VIMINIT: "source {{ ansible_user_dir }}/.config/nvim/plugininstall.vim"
|
|
||||||
|
|
||||||
- name: Upgrade Vim plugins
|
|
||||||
command: "vim +PlugUpgrade +PlugUpdate +PlugInstall +qall!"
|
|
||||||
listen: vim plugins changed
|
|
||||||
environment:
|
|
||||||
VIMINIT: "source {{ ansible_user_dir }}/.config/vim/plugininstall.vim"
|
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
- name: Configure vim plugin list
|
|
||||||
template:
|
|
||||||
src: plugininstall.j2
|
|
||||||
dest: "{{ ansible_user_dir }}/.config/{{ variant }}/plugininstall.vim"
|
|
||||||
mode: "u=rw,g=r,o=r"
|
|
||||||
notify:
|
|
||||||
- "{{ variant }} plugins changed"
|
|
||||||
loop: "{{ vim_variants }}"
|
|
||||||
loop_control:
|
|
||||||
loop_var: variant
|
|
||||||
|
|
||||||
- name: Configure vim
|
|
||||||
template:
|
|
||||||
src: init.vim.j2
|
|
||||||
dest: "{{ ansible_user_dir }}/.config/{{ variant }}/init.vim"
|
|
||||||
mode: "u=rw,g=r,o=r"
|
|
||||||
loop: "{{ vim_variants }}"
|
|
||||||
loop_control:
|
|
||||||
loop_var: variant
|
|
|
@ -1,101 +0,0 @@
|
||||||
" From https://www.hillelwayne.com/post/intermediate-vim/
|
|
||||||
|
|
||||||
set encoding=utf-8
|
|
||||||
set title
|
|
||||||
|
|
||||||
set number
|
|
||||||
set ruler
|
|
||||||
set wrap
|
|
||||||
|
|
||||||
set scrolloff=10
|
|
||||||
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
set gdefault
|
|
||||||
if has('nvim')
|
|
||||||
set inccommand=nosplit " Shows you in realtime what changes your ex command should make.
|
|
||||||
endif
|
|
||||||
|
|
||||||
set incsearch
|
|
||||||
|
|
||||||
set hlsearch
|
|
||||||
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set expandtab
|
|
||||||
|
|
||||||
set visualbell
|
|
||||||
set noerrorbells
|
|
||||||
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
|
|
||||||
set hidden
|
|
||||||
set updatetime=250
|
|
||||||
set lazyredraw " Do not redraw screen in the middle of a macro. Makes them complete faster.
|
|
||||||
|
|
||||||
set cursorcolumn
|
|
||||||
|
|
||||||
set splitbelow
|
|
||||||
|
|
||||||
" Turn off relativenumber only for insert mode.
|
|
||||||
if has('nvim')
|
|
||||||
set relativenumber
|
|
||||||
augroup every
|
|
||||||
autocmd!
|
|
||||||
au InsertEnter * set norelativenumber
|
|
||||||
au InsertLeave * set relativenumber
|
|
||||||
augroup END
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Keep undo history across sessions by storing it in a file
|
|
||||||
if has('persistent_undo')
|
|
||||||
let myUndoDir = expand(vimDir . '/undodir')
|
|
||||||
" Create dirs
|
|
||||||
call system('mkdir ' . myUndoDir)
|
|
||||||
let &undodir = myUndoDir
|
|
||||||
set undofile
|
|
||||||
endif
|
|
||||||
|
|
||||||
syntax enable
|
|
||||||
|
|
||||||
" From http://stackoverflow.com/a/5004785/2766106
|
|
||||||
set list
|
|
||||||
set listchars=tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_
|
|
||||||
set showbreak=↪
|
|
||||||
|
|
||||||
filetype on
|
|
||||||
filetype plugin on
|
|
||||||
filetype indent on
|
|
||||||
|
|
||||||
set wildmode=longest:full,full
|
|
||||||
set wildmenu
|
|
||||||
set showcmd
|
|
||||||
|
|
||||||
" Completion
|
|
||||||
|
|
||||||
" Avoid showing message extra message when using completion
|
|
||||||
set shortmess+=c
|
|
||||||
|
|
||||||
" Close the file explorer once you select a file
|
|
||||||
let g:netrw_fastbrowse = 0
|
|
||||||
|
|
||||||
" Allow saving of files as sudo when I forgot to start vim using sudo.
|
|
||||||
" From https://stackoverflow.com/a/7078429
|
|
||||||
cmap w!! w !sudo tee > /dev/null %
|
|
||||||
|
|
||||||
imap jk <Esc>
|
|
||||||
vmap <Enter> <Esc>
|
|
||||||
|
|
||||||
nmap <Enter> o<Esc>
|
|
||||||
nmap <C-H> :bp<CR>
|
|
||||||
nmap <C-L> :bn<CR>
|
|
||||||
nmap <C-K> kkkkkkkkkkkkkkkkkkkkk
|
|
||||||
nmap <C-J> jjjjjjjjjjjjjjjjjjjjj
|
|
||||||
|
|
||||||
" \s to replace globally the word under the cursor
|
|
||||||
nnoremap <Leader>s :%s/\<<C-r><C-w>\>/
|
|
||||||
|
|
||||||
" add extensions to syntax
|
|
||||||
au BufNewFile,BufRead *.jinja set filetype=jinja2
|
|
||||||
|
|
||||||
command Reload source $MYVIMRC
|
|
|
@ -1,23 +0,0 @@
|
||||||
set nocompatible
|
|
||||||
filetype on
|
|
||||||
|
|
||||||
" SET PATHS
|
|
||||||
|
|
||||||
set runtimepath+=~/.config/{{ variant }}
|
|
||||||
let vimDir = '$HOME/.cache/{{ variant }}'
|
|
||||||
call system('mkdir ' . vimDir)
|
|
||||||
let &runtimepath.=','.vimDir
|
|
||||||
set viminfo+=n~/.cache/{{ variant }}/viminfo
|
|
||||||
|
|
||||||
" PLUGIN INSTALLATION
|
|
||||||
|
|
||||||
source ~/.config/{{ variant }}/plugininstall.vim
|
|
||||||
|
|
||||||
" EDITOR CONFIGURATION
|
|
||||||
|
|
||||||
{% include 'editor.j2' %}
|
|
||||||
|
|
||||||
" PLUGINS CONFIGURATION
|
|
||||||
|
|
||||||
{% include 'pluginconfig.j2' %}
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
{% set plugins = namespace(sources=[]) %}
|
|
||||||
{% include 'pluginlist.j2' %}
|
|
|
@ -1,13 +0,0 @@
|
||||||
source ~/.config/vim/plug.vim
|
|
||||||
{% set plugins = namespace(sources=[]) %}
|
|
||||||
{% import 'pluginlist.j2' as pluginlist with context %}
|
|
||||||
|
|
||||||
call plug#begin('~/.cache/{{ variant }}/plugged')
|
|
||||||
{% for link, extra in plugins.sources %}
|
|
||||||
{% if extra %}
|
|
||||||
Plug '{{ link }}', { {% for k, v in extra.items() %}'{{ k }}': '{{ v }}', {% endfor %} }
|
|
||||||
{% else %}
|
|
||||||
Plug '{{ link }}'
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
call plug#end()
|
|
|
@ -1,55 +0,0 @@
|
||||||
{% macro add_source(link, extra={}) -%}
|
|
||||||
{% set plugins.sources = plugins.sources + [(link, extra)] %}
|
|
||||||
{%- endmacro -%}
|
|
||||||
{% macro use_plugin(name) -%}
|
|
||||||
" START PLUGIN CONFIG {{ name }}
|
|
||||||
{% include 'plugins/' + name + '.j2' +%}
|
|
||||||
" END PLUGIN CONFIG {{ name }}
|
|
||||||
{%- endmacro -%}
|
|
||||||
|
|
||||||
" Visuals
|
|
||||||
{{ use_plugin('devicons') }}
|
|
||||||
{% if variant == 'nvim' %}
|
|
||||||
{{ use_plugin('specs') }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
" Theme
|
|
||||||
source ~/.config/vim/theme.vim
|
|
||||||
|
|
||||||
" Snippets
|
|
||||||
{{ use_plugin('vsnip') }}
|
|
||||||
|
|
||||||
" Auto-completion
|
|
||||||
{% if variant == 'nvim' %}
|
|
||||||
{{ use_plugin('nvim_compe') }}
|
|
||||||
{% else %}
|
|
||||||
{{ use_plugin('deoplete') }}
|
|
||||||
{{ use_plugin('supertab') }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
" Undo management
|
|
||||||
{{ use_plugin('undotree') }}
|
|
||||||
|
|
||||||
" Git helpers
|
|
||||||
{{ use_plugin('fugitive') }}
|
|
||||||
{% if variant == 'nvim' %}
|
|
||||||
{{ use_plugin('gitsigns') }}
|
|
||||||
{% else %}
|
|
||||||
{{ use_plugin('gitgutter') }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
" Language-specific stuff
|
|
||||||
{{ use_plugin('tcomment') }}
|
|
||||||
{{ use_plugin('languagetool') }}
|
|
||||||
{{ use_plugin('pandoc') }}
|
|
||||||
{% if variant == 'nvim' %}
|
|
||||||
{{ use_plugin('dap') }}
|
|
||||||
{{ use_plugin('colorizer') }}
|
|
||||||
{% else %}
|
|
||||||
{% if 'c' in dev_stuffs or 'c++' in dev_stuffs %}
|
|
||||||
{{ use_plugin('vebugger') }}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% if 'ansible' in dev_stuffs %}
|
|
||||||
{{ use_plugin('ansible') }}
|
|
||||||
{% endif %}
|
|
|
@ -1,10 +0,0 @@
|
||||||
" Asynchronous Lint Engine
|
|
||||||
" LSP client for vim and nvim
|
|
||||||
{{ add_source('dense-analysis/ale') }}
|
|
||||||
|
|
||||||
nmap <F3> :ALEFix<CR>
|
|
||||||
|
|
||||||
let g:ale_sign_error = '×'
|
|
||||||
let g:ale_sign_warning = '!'
|
|
||||||
let g:ale_completion_enabled = 1
|
|
||||||
let g:ale_fixers = ['autopep8', 'shfmt', 'uncrustify', 'remove_trailing_lines', 'trim_whitespace', 'phpcbf']
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Various for Ansible #}
|
|
||||||
{{ add_source('pearofducks/ansible-vim', { 'do': './UltiSnips/generate.sh'}) -}}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{{ add_source('prabirshrestha/asyncomplete.vim') -}}
|
|
||||||
let g:asyncomplete_auto_popup = 1
|
|
||||||
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
||||||
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
||||||
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<cr>"
|
|
||||||
imap <c-space> <Plug>(asyncomplete_force_refresh)
|
|
||||||
|
|
||||||
{{ add_source('prabirshrestha/asyncomplete-file.vim') -}}
|
|
||||||
au User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#file#get_source_options({
|
|
||||||
\ 'name': 'file',
|
|
||||||
\ 'whitelist': ['*'],
|
|
||||||
\ 'priority': 10,
|
|
||||||
\ 'completor': function('asyncomplete#sources#file#completor')
|
|
||||||
\ }))
|
|
|
@ -1,7 +0,0 @@
|
||||||
{# Display the actual color for color codes " #}
|
|
||||||
{{ add_source('norcalli/nvim-colorizer.lua') -}}
|
|
||||||
set termguicolors
|
|
||||||
lua << EOF
|
|
||||||
require'colorizer'.setup()
|
|
||||||
EOF
|
|
||||||
{# TODO Enable for css functions too #}
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Debug Adapter Protocol client #}
|
|
||||||
{{ add_source('mfussenegger/nvim-dap') -}}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{# Auto-completion for vim and nvim #}
|
|
||||||
{% if variant == 'nvim' -%}
|
|
||||||
{{ add_source('Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'}) -}}
|
|
||||||
{% else -%}
|
|
||||||
{{ add_source('Shougo/deoplete.nvim') -}}
|
|
||||||
{{ add_source('roxma/nvim-yarp') -}}
|
|
||||||
{{ add_source('roxma/vim-hug-neovim-rpc') -}}
|
|
||||||
{% endif -%}
|
|
||||||
{% raw %}
|
|
||||||
let g:deoplete#enable_at_startup = 1
|
|
||||||
inoremap <silent><expr> <TAB>
|
|
||||||
\ pumvisible() ? "\<C-n>" :
|
|
||||||
\ <SID>check_back_space() ? "\<TAB>" :
|
|
||||||
\ deoplete#manual_complete()
|
|
||||||
function! s:check_back_space() abort "{{{
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~ '\s'
|
|
||||||
endfunction"}}}
|
|
||||||
{% endraw %}
|
|
||||||
|
|
||||||
" suggested by ssemshi to make it not too slow
|
|
||||||
" let g:deoplete#auto_complete_delay = 100
|
|
||||||
call deoplete#custom#option({
|
|
||||||
\ 'auto_complete_delay': 100,
|
|
||||||
\ 'smart_case': v:true,
|
|
||||||
\ })
|
|
|
@ -1,5 +0,0 @@
|
||||||
{% if variant == 'nvim' %}
|
|
||||||
{{ add_source('kyazdani42/nvim-web-devicons') -}}
|
|
||||||
{% else %}
|
|
||||||
{{ add_source('ryanoasis/vim-devicons') -}}
|
|
||||||
{% endif %}
|
|
|
@ -1,4 +0,0 @@
|
||||||
{# Git basics #}
|
|
||||||
{{ add_source('tpope/vim-fugitive') -}}
|
|
||||||
{# Open files in GitLab #}
|
|
||||||
{{ add_source('shumphrey/fugitive-gitlab.vim') -}}
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Show changed git lines in the gutter #}
|
|
||||||
{{ add_source('airblade/vim-gitgutter') -}}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{# Show changed git lines in the gutter #}
|
|
||||||
{{ add_source('lewis6991/gitsigns.nvim') -}}
|
|
||||||
{# Dependency #}
|
|
||||||
{{ add_source('nvim-lua/plenary.nvim') -}}
|
|
||||||
lua << EOF
|
|
||||||
require('gitsigns').setup()
|
|
||||||
EOF
|
|
|
@ -1,20 +0,0 @@
|
||||||
{{ add_source('autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh'}) -}}
|
|
||||||
|
|
||||||
let g:LanguageClient_serverCommands = {
|
|
||||||
\ 'python': ['pyls'],
|
|
||||||
\ 'sh': ['bash-language-server', 'start'],
|
|
||||||
\ }
|
|
||||||
let g:LanguageClient_loggingFile = expand('~/.cache/{{ variant }}/LanguageClient.log')
|
|
||||||
|
|
||||||
function LC_maps()
|
|
||||||
if has_key(g:LanguageClient_serverCommands, &filetype)
|
|
||||||
nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
|
|
||||||
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
|
||||||
nnoremap <buffer> <silent> gD :call LanguageClient#textDocument_references()<CR>
|
|
||||||
nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
|
||||||
nnoremap <buffer> <silent> <F3> :call LanguageClient#textDocument_formatting()<CR>
|
|
||||||
set completefunc=LanguageClient#complete
|
|
||||||
set omnifunc=LanguageClient#complete
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
autocmd FileType * call LC_maps()
|
|
|
@ -1,3 +0,0 @@
|
||||||
{# Check grammar for human languages #}
|
|
||||||
{{ add_source('dpelle/vim-LanguageTool') -}}
|
|
||||||
let g:languagetool_jar = "/usr/share/java/languagetool/languagetool-commandline.jar"
|
|
|
@ -1,6 +0,0 @@
|
||||||
{# Pandoc specific stuff because there's no LSP for it #}
|
|
||||||
{{ add_source('vim-pandoc/vim-pandoc') -}}
|
|
||||||
{{ add_source('vim-pandoc/vim-pandoc-syntax') -}}
|
|
||||||
let g:pandoc#modules#disabled = ["folding"]
|
|
||||||
let g:pandoc#spell#enabled = 0
|
|
||||||
let g:pandoc#syntax#conceal#use = 0
|
|
|
@ -1,4 +0,0 @@
|
||||||
{# Live reload #}
|
|
||||||
{{ add_source('famiu/nvim-reload') -}}
|
|
||||||
{{ add_source('nvim-lua/plenary.nvim') -}}
|
|
||||||
{# Not used, this breaks color, and source $MYVIMRC is all that we need to reload colorscheme #}
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Semantic highlighting for Python for neovim #}
|
|
||||||
{{ add_source('numirias/semshi', {'do': ':UpdateRemotePlugins'}) -}}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{# Dim inactive windows #}
|
|
||||||
{# Not working very well, at least with undotree #}
|
|
||||||
{{add_source('sunjon/shade.nvim')-}}
|
|
||||||
lua << EOF
|
|
||||||
require'shade'.setup()
|
|
||||||
EOF
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Smoooooth scrolling #}
|
|
||||||
{{ add_source('terryma/vim-smooth-scroll') -}}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{# Flashes under the cursor when moving far #}
|
|
||||||
{{ add_source('edluffy/specs.nvim') -}}
|
|
||||||
lua << EOF
|
|
||||||
require('specs').setup{
|
|
||||||
popup = {
|
|
||||||
delay_ms = 0, -- delay before popup displays
|
|
||||||
inc_ms = 10, -- time increments used for fade/resize effects
|
|
||||||
blend = 10, -- starting blend, between 0-100 (fully transparent), see :h winblend
|
|
||||||
width = 10,
|
|
||||||
winhl = "PMenu",
|
|
||||||
fader = require('specs').pulse_fader,
|
|
||||||
resizer = require('specs').shrink_resizer
|
|
||||||
},
|
|
||||||
}
|
|
||||||
EOF
|
|
|
@ -1,7 +0,0 @@
|
||||||
{# Use TAB for autocompletion #}
|
|
||||||
{{ add_source('ervandew/supertab') -}}
|
|
||||||
let g:SuperTabLongestEnhanced = 1
|
|
||||||
let g:SuperTabLongestHighlight = 1
|
|
||||||
{# TODO longest doesn't work, even when longest is set in completeopt #}
|
|
||||||
let g:SuperTabDefaultCompletionType = "<c-n>" " Go down when completing
|
|
||||||
let g:SuperTabContextDefaultCompletionType = "<c-n>"
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Language-aware (un)commenting #}
|
|
||||||
{{ add_source('tomtom/tcomment_vim') -}}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{# Navigate undo #}
|
|
||||||
{{ add_source('mbbill/undotree') -}}
|
|
||||||
nmap <space>u :UndotreeToggle<CR>
|
|
|
@ -1,2 +0,0 @@
|
||||||
{# Debug from the editor #}
|
|
||||||
{{ add_source('idanarye/vim-vebugger') -}}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{# Tag bar #}
|
|
||||||
{{ add_source('liuchengxu/vista.vim') -}}
|
|
||||||
nmap <space>s :Vista!!<CR>
|
|
||||||
let g:vista_icon_indent = ["▸ ", ""]
|
|
||||||
|
|
||||||
let g:vista#renderer#enable_icon = 1
|
|
||||||
|
|
||||||
" The default icons can't be suitable for all the filetypes, you can extend it as you wish.
|
|
||||||
let g:vista#renderer#icons = {
|
|
||||||
\ "function": "f",
|
|
||||||
\ "variable": "x",
|
|
||||||
\ }
|
|
|
@ -1,4 +0,0 @@
|
||||||
{{ add_source('hrsh7th/vim-vsnip') -}}
|
|
||||||
{{ add_source('hrsh7th/vim-vsnip-integ') -}}
|
|
||||||
{{ add_source('rafamadriz/friendly-snippets') -}}
|
|
||||||
{# TODO Ansible snippets? #}
|
|
|
@ -21,7 +21,7 @@
|
||||||
# FIXME Still want this despite using nixvim
|
# FIXME Still want this despite using nixvim
|
||||||
gpg = {
|
gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
homedir = "${config.xdg.dataHome}/gnupg";
|
homedir = "${config.xdg.stateHome}/gnupg";
|
||||||
settings = {
|
settings = {
|
||||||
# Remove fluff
|
# Remove fluff
|
||||||
no-greeting = true;
|
no-greeting = true;
|
||||||
|
|
|
@ -34,6 +34,40 @@ in
|
||||||
|
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
options = {
|
||||||
|
# From https://www.hillelwayne.com/post/intermediate-vim/
|
||||||
|
title = true;
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
scrolloff = 10;
|
||||||
|
lazyredraw = true; # Do not redraw screen in the middle of a macro. Makes them complete faster.
|
||||||
|
cursorcolumn = true;
|
||||||
|
|
||||||
|
ignorecase = true;
|
||||||
|
smartcase = true;
|
||||||
|
gdefault = true;
|
||||||
|
|
||||||
|
tabstop = 4;
|
||||||
|
shiftwidth = 4;
|
||||||
|
expandtab = true;
|
||||||
|
|
||||||
|
splitbelow = true;
|
||||||
|
visualbell = true;
|
||||||
|
|
||||||
|
updatetime = 250;
|
||||||
|
undofile = true;
|
||||||
|
|
||||||
|
# From http://stackoverflow.com/a/5004785/2766106
|
||||||
|
list = true;
|
||||||
|
listchars = "tab:╾╌,trail:·,extends:↦,precedes:↤,nbsp:_";
|
||||||
|
showbreak = "↪";
|
||||||
|
|
||||||
|
wildmode = "longest:full,full";
|
||||||
|
wildmenu = true;
|
||||||
|
};
|
||||||
|
globals = {
|
||||||
|
netrw_fastbrowse = 0; # Close the file explorer once you select a file
|
||||||
|
};
|
||||||
colorschemes.base16 = {
|
colorschemes.base16 = {
|
||||||
# FIXME Dynamic... or use stylix
|
# FIXME Dynamic... or use stylix
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -46,6 +80,8 @@ in
|
||||||
specs = {
|
specs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
min_jump = 5;
|
min_jump = 5;
|
||||||
|
fader = { builtin = "pulse_fader"; };
|
||||||
|
resizer = { builtin = "shrink_resizer"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tabline
|
# Tabline
|
||||||
|
@ -175,6 +211,16 @@ in
|
||||||
};
|
};
|
||||||
# TODO Investigate https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
# TODO Investigate https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
||||||
indent-blankline.enable = true; # 23.11 integrate with rainbow-delimiters and use more of the options
|
indent-blankline.enable = true; # 23.11 integrate with rainbow-delimiters and use more of the options
|
||||||
|
|
||||||
|
undotree.enable = true; # Navigate edition history
|
||||||
|
|
||||||
|
# Git
|
||||||
|
fugitive.enable = true; # Git basics
|
||||||
|
gitsigns.enable = true; # Show changed lines in the gutter
|
||||||
|
|
||||||
|
# Language-specific
|
||||||
|
# dap.enable = true; # Debug Adapter Protocol client # 23.11
|
||||||
|
nvim-colorizer.enable = true; # Display colors of color-codes
|
||||||
};
|
};
|
||||||
extraPlugins = with pkgs.vimPlugins; [
|
extraPlugins = with pkgs.vimPlugins; [
|
||||||
nvim-scrollview # Scroll bar
|
nvim-scrollview # Scroll bar
|
||||||
|
@ -210,6 +256,27 @@ in
|
||||||
# Treesitter
|
# Treesitter
|
||||||
nvim-ts-rainbow # Randomly color parenthesis pairs
|
nvim-ts-rainbow # Randomly color parenthesis pairs
|
||||||
# 23.11: Replace with plugins.rainbow-delimiters
|
# 23.11: Replace with plugins.rainbow-delimiters
|
||||||
|
|
||||||
|
# Snippets
|
||||||
|
vim-vsnip
|
||||||
|
vim-vsnip-integ
|
||||||
|
friendly-snippets
|
||||||
|
|
||||||
|
# Auto-completion
|
||||||
|
nvim-compe
|
||||||
|
# TODO Archived. Maybe use nvim-cmp and plugins instead?
|
||||||
|
|
||||||
|
# Git
|
||||||
|
fugitive-gitlab-vim # Open files in GitLab
|
||||||
|
# TODO Connect it!
|
||||||
|
|
||||||
|
# Language-specific
|
||||||
|
tcomment_vim # Language-aware (un)commenting
|
||||||
|
vim-LanguageTool # Check grammar for human languages
|
||||||
|
vim-pandoc # Pandoc-specific stuff because there's no LSP for it
|
||||||
|
vim-pandoc-syntax
|
||||||
|
nvim-dap # Debug Adapter Protocol client
|
||||||
|
ansible-vim # FIXME See if it doesn't require to do ./UltiSnips/generate.sh
|
||||||
];
|
];
|
||||||
extraConfigLua = lib.strings.concatMapStringsSep "\n" (f: builtins.readFile f) [
|
extraConfigLua = lib.strings.concatMapStringsSep "\n" (f: builtins.readFile f) [
|
||||||
./vim/feline.lua
|
./vim/feline.lua
|
||||||
|
@ -218,16 +285,77 @@ in
|
||||||
./vim/nvim-ts-rainbow.lua
|
./vim/nvim-ts-rainbow.lua
|
||||||
];
|
];
|
||||||
extraConfigVim = ''
|
extraConfigVim = ''
|
||||||
|
" GENERAL
|
||||||
|
|
||||||
|
" Avoid showing message extra message when using completion
|
||||||
|
set shortmess+=c
|
||||||
|
|
||||||
|
command Reload source $MYVIMRC
|
||||||
|
|
||||||
|
" PLUGINS
|
||||||
|
|
||||||
" vim-gutentags
|
" vim-gutentags
|
||||||
let g:gutentags_cache_dir = expand('~/.cache/nvim/tags')
|
let g:gutentags_cache_dir = expand('~/.cache/nvim/tags')
|
||||||
|
|
||||||
|
" nvim-compe
|
||||||
|
" Copy-pasted because I couldn't be bothered
|
||||||
|
set completeopt=menuone,noselect
|
||||||
|
|
||||||
|
inoremap <silent><expr> <C-Space> compe#complete()
|
||||||
|
inoremap <silent><expr> <CR> compe#confirm('<CR>')
|
||||||
|
inoremap <silent><expr> <C-e> compe#close('<C-e>')
|
||||||
|
inoremap <silent><expr> <C-f> compe#scroll({ 'delta': +4 })
|
||||||
|
inoremap <silent><expr> <C-d> compe#scroll({ 'delta': -4 })
|
||||||
|
|
||||||
|
" languagetool
|
||||||
|
let g:languagetool_cmd = "${pkgs.languagetool}/bin/languagetool-commandline"
|
||||||
|
" TODO Doesn't work
|
||||||
|
|
||||||
|
" vim-pandox
|
||||||
|
let g:pandoc#modules#disabled = ["folding"]
|
||||||
|
let g:pandoc#spell#enabled = 0
|
||||||
|
let g:pandoc#syntax#conceal#use = 0
|
||||||
|
|
||||||
'';
|
'';
|
||||||
autoCmd = [
|
autoCmd = [
|
||||||
|
# Turn off relativenumber only for insert mode
|
||||||
|
{ event = "InsertEnter *"; command = "set norelativenumber"; }
|
||||||
|
{ event = "InsertLeave *"; command = "set relativenumber"; }
|
||||||
|
|
||||||
|
# Additional extensions
|
||||||
|
{ event = "BufNewFile,BufRead"; pattern = "*.jinja"; command = "set filetype=jinja2"; } # TODO Probably GH-specific?
|
||||||
|
|
||||||
# vim-easy-align: Align Markdown tables
|
# vim-easy-align: Align Markdown tables
|
||||||
{ event = "FileType markdown"; command = "vmap <Bar> :EasyAlign*<Bar><Enter>"; }
|
{ event = "FileType markdown"; command = "vmap <Bar> :EasyAlign*<Bar><Enter>"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
|
userCommands = {
|
||||||
|
# Reload = { command = "source $MYVIRMC"; };
|
||||||
|
# TODO Is not working, options is set to nil even though it shouldn't
|
||||||
|
};
|
||||||
|
|
||||||
# 23.11: Use keymaps, seems better
|
# 23.11: Use keymaps, seems better
|
||||||
maps = {
|
maps = {
|
||||||
|
# GENERAL
|
||||||
|
|
||||||
|
# Allow saving of files as sudo when I forgot to start vim using sudo.
|
||||||
|
# From https://stackoverflow.com/a/7078429
|
||||||
|
command."w!!" = { action = "w !sudo tee > /dev/null %"; };
|
||||||
|
|
||||||
|
insert."jk" = { action = "<Esc>"; };
|
||||||
|
visual."<Enter>" = { action = "<Esc>"; };
|
||||||
|
normal."<Enter>" = { action = "o<Esc>"; };
|
||||||
|
|
||||||
|
# normal."<C-H>" = { action = ":bp<CR>"; };
|
||||||
|
# normal."<C-L>" = { action = ":bn<CR>"; };
|
||||||
|
normal."<C-K>" = { action = "kkkkkkkkkkkkkkkkkkkkk"; };
|
||||||
|
normal."<C-J>" = { action = "jjjjjjjjjjjjjjjjjjjjj"; };
|
||||||
|
|
||||||
|
# \s to replace globally the word under the cursor
|
||||||
|
normal."<Leader>s" = { action = ":%s/\\<<C-r><C-w>\\>/"; };
|
||||||
|
|
||||||
|
# PLUGINS
|
||||||
|
|
||||||
# barbar
|
# barbar
|
||||||
normal."<C-H>" = { action = "<Cmd>BufferPrevious<CR>"; silent = true; };
|
normal."<C-H>" = { action = "<Cmd>BufferPrevious<CR>"; silent = true; };
|
||||||
normal."<C-L>" = { action = "<Cmd>BufferNext<CR>"; silent = true; };
|
normal."<C-L>" = { action = "<Cmd>BufferNext<CR>"; silent = true; };
|
||||||
|
@ -251,6 +379,9 @@ in
|
||||||
# symbols-outline-nvim
|
# symbols-outline-nvim
|
||||||
normal."<Space>s" = { action = "<Cmd>SymbolsOutline<CR>"; silent = true; };
|
normal."<Space>s" = { action = "<Cmd>SymbolsOutline<CR>"; silent = true; };
|
||||||
|
|
||||||
|
# undotree
|
||||||
|
normal."<Space>u" = { action = "<Cmd>UndotreeToggle<CR>"; silent = true; };
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
{{ add_source('hrsh7th/nvim-compe') -}}
|
-- Default recommended config
|
||||||
{# I'm a bit lost with all this, so this is the default recommended config,
|
|
||||||
using vim-vsnip because the proposed configuration for tab-completion uses it, so… #}
|
|
||||||
lua << EOF
|
|
||||||
require'compe'.setup {
|
require'compe'.setup {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
autocomplete = true;
|
autocomplete = true;
|
||||||
|
@ -32,17 +29,9 @@ require'compe'.setup {
|
||||||
vsnip = true;
|
vsnip = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
EOF
|
|
||||||
set completeopt=menuone,noselect
|
|
||||||
|
|
||||||
|
-- Vim instructions were here
|
||||||
|
|
||||||
inoremap <silent><expr> <C-Space> compe#complete()
|
|
||||||
inoremap <silent><expr> <CR> compe#confirm('<CR>')
|
|
||||||
inoremap <silent><expr> <C-e> compe#close('<C-e>')
|
|
||||||
inoremap <silent><expr> <C-f> compe#scroll({ 'delta': +4 })
|
|
||||||
inoremap <silent><expr> <C-d> compe#scroll({ 'delta': -4 })
|
|
||||||
|
|
||||||
lua << EOF
|
|
||||||
local t = function(str)
|
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
|
||||||
|
@ -81,4 +70,3 @@ vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||||
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||||
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||||
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||||
EOF
|
|
Loading…
Reference in a new issue