* separate vimrc-full with own simple and lighten vimrc config
* reformat yadm bootstrap script and adding it a pathogen & vim plugins install
This commit is contained in:
@ -5,11 +5,14 @@ $character\
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
right_format = """
|
right_format = """
|
||||||
|
$fill\
|
||||||
$cmd_duration\
|
$cmd_duration\
|
||||||
$directory\
|
|
||||||
$git_branch\
|
$git_branch\
|
||||||
$git_status\
|
$git_status\
|
||||||
$hostname\
|
$hostname\
|
||||||
|
:\
|
||||||
|
$directory\
|
||||||
|
$fill\
|
||||||
"""
|
"""
|
||||||
|
|
||||||
add_newline = false
|
add_newline = false
|
||||||
@ -36,6 +39,10 @@ truncate_to_repo = false
|
|||||||
truncation_length = 10
|
truncation_length = 10
|
||||||
truncation_symbol = "…/"
|
truncation_symbol = "…/"
|
||||||
|
|
||||||
|
[fill]
|
||||||
|
symbol = ' '
|
||||||
|
style = 'black'
|
||||||
|
|
||||||
[git_branch]
|
[git_branch]
|
||||||
format = "[$branch]($style)"
|
format = "[$branch]($style)"
|
||||||
style = "242"
|
style = "242"
|
||||||
|
@ -47,12 +47,10 @@ install_spacevim() {
|
|||||||
download_font() {
|
download_font() {
|
||||||
url="https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/SourceCodePro/Regular/complete/${1// /%20}"
|
url="https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/SourceCodePro/Regular/complete/${1// /%20}"
|
||||||
path="/usr/share/fonts/$1"
|
path="/usr/share/fonts/$1"
|
||||||
if [[ -f "$path" && ! -s "$path" ]]
|
if [[ -f "$path" && ! -s "$path" ]]; then
|
||||||
then
|
|
||||||
rm "$path"
|
rm "$path"
|
||||||
fi
|
fi
|
||||||
if [[ -f "$path" ]]
|
if [[ -f "$path" ]]; then
|
||||||
then
|
|
||||||
success "Downloaded $1"
|
success "Downloaded $1"
|
||||||
else
|
else
|
||||||
info "Downloading $1"
|
info "Downloading $1"
|
||||||
@ -69,6 +67,18 @@ install_fonts () {
|
|||||||
success "font cache done!"
|
success "font cache done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_pathogen() {
|
||||||
|
mkdir -p ~/.vim/autoload ~/.vim/bundle
|
||||||
|
|
||||||
|
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
|
||||||
|
}
|
||||||
|
|
||||||
|
install_vim_plugins() {
|
||||||
|
cd ~/.vim/bundle
|
||||||
|
|
||||||
|
git clone https://github.com/tpope/vim-sensible.git
|
||||||
|
git clone https://github.com/altercation/vim-colors-solarized.git
|
||||||
|
}
|
||||||
|
|
||||||
#install_nix
|
#install_nix
|
||||||
|
|
||||||
@ -76,3 +86,6 @@ install_fonts () {
|
|||||||
|
|
||||||
#install_starship
|
#install_starship
|
||||||
#install_spacevim
|
#install_spacevim
|
||||||
|
|
||||||
|
install_pathogen
|
||||||
|
install_vim_plugins
|
||||||
|
288
.vimrc
288
.vimrc
@ -1,275 +1,17 @@
|
|||||||
" vim: set sw=2 et :
|
" https://github.com/tpope/vim-pathogen
|
||||||
|
execute pathogen#infect()
|
||||||
|
|
||||||
" Configure plug.vim
|
" https://github.com/altercation/vim-colors-solarized
|
||||||
if has('nvim')
|
syntax enable
|
||||||
let vimautoloaddir='~/.config/nvim/site/autoload'
|
set background=dark
|
||||||
else
|
colorscheme solarized
|
||||||
let vimautoloaddir='~/.vim/autoload'
|
|
||||||
endif
|
|
||||||
|
|
||||||
call plug#begin()
|
" https://vcs.wpstudio.ru/wpstudio/autodeploy
|
||||||
|
set tabstop=4 " The width of a TAB is set to 4.
|
||||||
" This is taking care of the plugins
|
" Still it is a \t. It is just that
|
||||||
Plug 'junegunn/vim-plug'
|
" Vim will interpret it to be having
|
||||||
|
" a width of 4.
|
||||||
" Neovim is sensible by default
|
set shiftwidth=4 " Indents will have a width of 4
|
||||||
if !has('nvim')
|
set softtabstop=4 " Sets the number of columns for a TAB
|
||||||
Plug 'tpope/vim-sensible'
|
set expandtab " Expand TABs to spaces
|
||||||
endif
|
set paste " Prevent strange paddings on paste from clipboard
|
||||||
|
|
||||||
" Editing eye-candy
|
|
||||||
Plug 'junegunn/goyo.vim'
|
|
||||||
Plug 'junegunn/limelight.vim'
|
|
||||||
|
|
||||||
" Solarized colorscheme
|
|
||||||
Plug 'altercation/vim-colors-solarized'
|
|
||||||
|
|
||||||
" Tmux .conf
|
|
||||||
Plug 'tmux-plugins/vim-tmux'
|
|
||||||
" Tmux Focus Events
|
|
||||||
Plug 'tmux-plugins/vim-tmux-focus-events'
|
|
||||||
|
|
||||||
" Automatically detect indentation
|
|
||||||
Plug 'tpope/vim-sleuth'
|
|
||||||
|
|
||||||
if has('nvim')
|
|
||||||
" Asynchronous make for neovim
|
|
||||||
Plug 'neomake/neomake'
|
|
||||||
" Automated code formatter
|
|
||||||
Plug 'sbdchd/neoformat'
|
|
||||||
" Popup terminal
|
|
||||||
Plug 'kassio/neoterm'
|
|
||||||
" Nice tree view
|
|
||||||
Plug 'kyazdani42/nvim-tree.lua'
|
|
||||||
" Icons for the tree view
|
|
||||||
Plug 'kyazdani42/nvim-web-devicons'
|
|
||||||
" A buffer bar
|
|
||||||
Plug 'noib3/nvim-cokeline'
|
|
||||||
" Better syntax recognition
|
|
||||||
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
|
||||||
" Mason is now preferred over LSP Installer
|
|
||||||
Plug 'williamboman/mason.nvim'
|
|
||||||
" LSP config
|
|
||||||
Plug 'neovim/nvim-lspconfig'
|
|
||||||
Plug 'williamboman/mason-lspconfig.nvim'
|
|
||||||
" Auto completion
|
|
||||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
|
||||||
Plug 'hrsh7th/cmp-nvim-lsp-signature-help'
|
|
||||||
Plug 'hrsh7th/cmp-buffer'
|
|
||||||
Plug 'hrsh7th/cmp-path'
|
|
||||||
Plug 'hrsh7th/cmp-cmdline'
|
|
||||||
Plug 'hrsh7th/nvim-cmp'
|
|
||||||
" Snippets
|
|
||||||
Plug 'hrsh7th/cmp-vsnip'
|
|
||||||
Plug 'hrsh7th/vim-vsnip'
|
|
||||||
Plug 'rafamadriz/friendly-snippets'
|
|
||||||
" Telescope for quick switching
|
|
||||||
Plug 'nvim-lua/plenary.nvim'
|
|
||||||
Plug 'nvim-telescope/telescope.nvim'
|
|
||||||
Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' }
|
|
||||||
" Copliot here
|
|
||||||
Plug 'github/copilot.vim'
|
|
||||||
" Nice colours for our NeoVim
|
|
||||||
Plug 'ishan9299/nvim-solarized-lua'
|
|
||||||
Plug 'shaunsingh/solarized.nvim'
|
|
||||||
|
|
||||||
" Show indent lines
|
|
||||||
Plug 'lukas-reineke/indent-blankline.nvim'
|
|
||||||
" Status line
|
|
||||||
Plug 'feline-nvim/feline.nvim'
|
|
||||||
" Dim inactive windows
|
|
||||||
Plug 'sunjon/shade.nvim'
|
|
||||||
endif
|
|
||||||
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
if has('nvim')
|
|
||||||
" Add some colors
|
|
||||||
set termguicolors
|
|
||||||
colorscheme solarized-high
|
|
||||||
|
|
||||||
" When writing a buffer (no delay), and on normal mode changes (after 750ms).
|
|
||||||
call neomake#configure#automake('nw', 750)
|
|
||||||
" Call Neomake when writing a buffer (no delay)
|
|
||||||
let g:neomake_open_list = 2
|
|
||||||
|
|
||||||
" Configure Cokeline
|
|
||||||
lua << EOF
|
|
||||||
require('cokeline').setup({
|
|
||||||
show_if_buffers_are_at_least = 2
|
|
||||||
})
|
|
||||||
|
|
||||||
local map = vim.api.nvim_set_keymap
|
|
||||||
|
|
||||||
map('n', '<S-Tab>', '<Plug>(cokeline-focus-prev)', { silent = true })
|
|
||||||
map('n', '<Tab>', '<Plug>(cokeline-focus-next)', { silent = true })
|
|
||||||
map('n', '<Leader>h', '<Plug>(cokeline-focus-prev)', { silent = true })
|
|
||||||
map('n', '<Leader>l', '<Plug>(cokeline-focus-next)', { silent = true })
|
|
||||||
EOF
|
|
||||||
|
|
||||||
" Configure completion and LSP
|
|
||||||
set completeopt=menu,menuone,noselect
|
|
||||||
autocmd BufWritePre * lua vim.lsp.buf.formatting_sync(nil, 4000)
|
|
||||||
|
|
||||||
lua <<EOF
|
|
||||||
-- Setup nvim-cmp.
|
|
||||||
local cmp = require'cmp'
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
vim.fn["vsnip#anonymous"](args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
mapping = cmp.mapping.preset.insert({
|
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
|
||||||
['<C-e>'] = cmp.mapping.abort(),
|
|
||||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
|
||||||
}),
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'nvim_lsp_signature_help' },
|
|
||||||
{ name = 'vsnip' },
|
|
||||||
}, {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
require("mason").setup({
|
|
||||||
automatic_installation = true,
|
|
||||||
})
|
|
||||||
require("mason-lspconfig").setup()
|
|
||||||
EOF
|
|
||||||
|
|
||||||
" Configure NvimTree
|
|
||||||
lua << EOF
|
|
||||||
require('nvim-tree').setup()
|
|
||||||
EOF
|
|
||||||
nmap <leader>n :NvimTreeToggle<CR>
|
|
||||||
|
|
||||||
" Configure Telescope
|
|
||||||
lua << EOF
|
|
||||||
require('telescope').load_extension('fzf')
|
|
||||||
EOF
|
|
||||||
" Find files using Telescope command-line sugar.
|
|
||||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
|
||||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
|
||||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
|
||||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
|
||||||
|
|
||||||
" Configure tree-sitter with folding
|
|
||||||
lua <<EOF
|
|
||||||
if vim.loop.os_uname().sysname == "Darwin" then
|
|
||||||
require('nvim-treesitter.install').compilers = { os.getenv("HOME")..'/.local/bin/clang-wrapper' }
|
|
||||||
end
|
|
||||||
require('nvim-treesitter.configs').setup({
|
|
||||||
-- One of "all", or a list of languages
|
|
||||||
ensure_installed = "all",
|
|
||||||
ignore_install = { "godot_resource", "teal" },
|
|
||||||
highlight = {
|
|
||||||
enable = true
|
|
||||||
},
|
|
||||||
indent = {
|
|
||||||
enable = true
|
|
||||||
},
|
|
||||||
})
|
|
||||||
EOF
|
|
||||||
set foldmethod=expr
|
|
||||||
set foldexpr=nvim_treesitter#foldexpr()
|
|
||||||
|
|
||||||
" Configure feline
|
|
||||||
lua <<EOF
|
|
||||||
require('feline').setup()
|
|
||||||
EOF
|
|
||||||
|
|
||||||
" Configure Shade
|
|
||||||
lua <<EOF
|
|
||||||
require('shade').setup({
|
|
||||||
overlay_opacity = 50,
|
|
||||||
opacity_step = 1,
|
|
||||||
keys = {
|
|
||||||
brightness_up = '<C-Up>',
|
|
||||||
brightness_down = '<C-Down>',
|
|
||||||
toggle = '<Leader>s',
|
|
||||||
}
|
|
||||||
})
|
|
||||||
EOF
|
|
||||||
endif
|
|
||||||
|
|
||||||
set background=light
|
|
||||||
" Keep at least 5 lines anove or below the cursor
|
|
||||||
set scrolloff=5
|
|
||||||
|
|
||||||
" use F2 to switch to paste mode
|
|
||||||
set pastetoggle=<F2>
|
|
||||||
|
|
||||||
" Configure Goyo
|
|
||||||
nmap <leader>] :Goyo<CR>
|
|
||||||
function! s:goyo_enter()
|
|
||||||
if exists('$TMUX')
|
|
||||||
" Hide the status panel and zoom in the current pane
|
|
||||||
silent !tmux set status off
|
|
||||||
" This hackery checks whether the pane is zoomed and toggles the status if
|
|
||||||
" not
|
|
||||||
silent !tmux list-panes -F '\#F'|grep -q Z || tmux resize-pane -Z
|
|
||||||
endif
|
|
||||||
" All eyes on me
|
|
||||||
Limelight
|
|
||||||
" Resize after zoom
|
|
||||||
if !exists("g:goyo_width")
|
|
||||||
let g:goyo_width=80
|
|
||||||
endif
|
|
||||||
if !exists("g:goyo_height")
|
|
||||||
let g:goyo_height='85%'
|
|
||||||
endif
|
|
||||||
execute "Goyo ".g:goyo_width."x".g:goyo_height
|
|
||||||
set scrolloff=999
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:goyo_leave()
|
|
||||||
if exists('$TMUX')
|
|
||||||
" Show the status panel and zoom out the current pane
|
|
||||||
silent !tmux set status on
|
|
||||||
silent !tmux list-panes -F '\#F'|grep -q Z && tmux resize-pane -Z
|
|
||||||
endif
|
|
||||||
Limelight!
|
|
||||||
set scrolloff=5
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
autocmd! User GoyoEnter nested call <SID>goyo_enter()
|
|
||||||
autocmd! User GoyoLeave nested call <SID>goyo_leave()
|
|
||||||
|
|
||||||
" Configure Limelight
|
|
||||||
let g:limelight_conceal_ctermfg = 245 " Solarized Base1
|
|
||||||
let g:limelight_conceal_guifg = '#8a8a8a' " Solarized Base1
|
|
||||||
|
|
||||||
"""
|
|
||||||
""" Visually indicate long columns
|
|
||||||
""" Taken from https://www.youtube.com/watch?v=aHm36-na4-4
|
|
||||||
"""
|
|
||||||
highlight ColorColumn ctermbg=magenta
|
|
||||||
call matchadd('ColorColumn', '\%81v', 100)
|
|
||||||
|
|
||||||
" Prefer two spaces
|
|
||||||
set shiftwidth=2
|
|
||||||
set softtabstop=2
|
|
||||||
|
|
||||||
" Show me those tabs, BTW
|
|
||||||
set list
|
|
||||||
set listchars=trail:~,nbsp:␣,tab:▸\
|
|
||||||
|
|
||||||
" Easy moves through wrapped lines
|
|
||||||
nnoremap j gj
|
|
||||||
nnoremap k gk
|
|
||||||
|
|
||||||
" Work with tmux mouse integration
|
|
||||||
set mouse=a
|
|
||||||
|
|
||||||
if has('nvim')
|
|
||||||
set undodir=~/.config/nvim/undodir
|
|
||||||
else
|
|
||||||
set undodir=~/.vim/undodir
|
|
||||||
endif
|
|
||||||
set undofile
|
|
||||||
|
275
.vimrc-full
Normal file
275
.vimrc-full
Normal file
@ -0,0 +1,275 @@
|
|||||||
|
" vim: set sw=2 et :
|
||||||
|
|
||||||
|
" Configure plug.vim
|
||||||
|
if has('nvim')
|
||||||
|
let vimautoloaddir='~/.config/nvim/site/autoload'
|
||||||
|
else
|
||||||
|
let vimautoloaddir='~/.vim/autoload'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call plug#begin()
|
||||||
|
|
||||||
|
" This is taking care of the plugins
|
||||||
|
Plug 'junegunn/vim-plug'
|
||||||
|
|
||||||
|
" Neovim is sensible by default
|
||||||
|
if !has('nvim')
|
||||||
|
Plug 'tpope/vim-sensible'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Editing eye-candy
|
||||||
|
Plug 'junegunn/goyo.vim'
|
||||||
|
Plug 'junegunn/limelight.vim'
|
||||||
|
|
||||||
|
" Solarized colorscheme
|
||||||
|
Plug 'altercation/vim-colors-solarized'
|
||||||
|
|
||||||
|
" Tmux .conf
|
||||||
|
Plug 'tmux-plugins/vim-tmux'
|
||||||
|
" Tmux Focus Events
|
||||||
|
Plug 'tmux-plugins/vim-tmux-focus-events'
|
||||||
|
|
||||||
|
" Automatically detect indentation
|
||||||
|
Plug 'tpope/vim-sleuth'
|
||||||
|
|
||||||
|
if has('nvim')
|
||||||
|
" Asynchronous make for neovim
|
||||||
|
Plug 'neomake/neomake'
|
||||||
|
" Automated code formatter
|
||||||
|
Plug 'sbdchd/neoformat'
|
||||||
|
" Popup terminal
|
||||||
|
Plug 'kassio/neoterm'
|
||||||
|
" Nice tree view
|
||||||
|
Plug 'kyazdani42/nvim-tree.lua'
|
||||||
|
" Icons for the tree view
|
||||||
|
Plug 'kyazdani42/nvim-web-devicons'
|
||||||
|
" A buffer bar
|
||||||
|
Plug 'noib3/nvim-cokeline'
|
||||||
|
" Better syntax recognition
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||||
|
" Mason is now preferred over LSP Installer
|
||||||
|
Plug 'williamboman/mason.nvim'
|
||||||
|
" LSP config
|
||||||
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
Plug 'williamboman/mason-lspconfig.nvim'
|
||||||
|
" Auto completion
|
||||||
|
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||||
|
Plug 'hrsh7th/cmp-nvim-lsp-signature-help'
|
||||||
|
Plug 'hrsh7th/cmp-buffer'
|
||||||
|
Plug 'hrsh7th/cmp-path'
|
||||||
|
Plug 'hrsh7th/cmp-cmdline'
|
||||||
|
Plug 'hrsh7th/nvim-cmp'
|
||||||
|
" Snippets
|
||||||
|
Plug 'hrsh7th/cmp-vsnip'
|
||||||
|
Plug 'hrsh7th/vim-vsnip'
|
||||||
|
Plug 'rafamadriz/friendly-snippets'
|
||||||
|
" Telescope for quick switching
|
||||||
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' }
|
||||||
|
" Copliot here
|
||||||
|
Plug 'github/copilot.vim'
|
||||||
|
" Nice colours for our NeoVim
|
||||||
|
Plug 'ishan9299/nvim-solarized-lua'
|
||||||
|
Plug 'shaunsingh/solarized.nvim'
|
||||||
|
|
||||||
|
" Show indent lines
|
||||||
|
Plug 'lukas-reineke/indent-blankline.nvim'
|
||||||
|
" Status line
|
||||||
|
Plug 'feline-nvim/feline.nvim'
|
||||||
|
" Dim inactive windows
|
||||||
|
Plug 'sunjon/shade.nvim'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
if has('nvim')
|
||||||
|
" Add some colors
|
||||||
|
set termguicolors
|
||||||
|
colorscheme solarized-high
|
||||||
|
|
||||||
|
" When writing a buffer (no delay), and on normal mode changes (after 750ms).
|
||||||
|
call neomake#configure#automake('nw', 750)
|
||||||
|
" Call Neomake when writing a buffer (no delay)
|
||||||
|
let g:neomake_open_list = 2
|
||||||
|
|
||||||
|
" Configure Cokeline
|
||||||
|
lua << EOF
|
||||||
|
require('cokeline').setup({
|
||||||
|
show_if_buffers_are_at_least = 2
|
||||||
|
})
|
||||||
|
|
||||||
|
local map = vim.api.nvim_set_keymap
|
||||||
|
|
||||||
|
map('n', '<S-Tab>', '<Plug>(cokeline-focus-prev)', { silent = true })
|
||||||
|
map('n', '<Tab>', '<Plug>(cokeline-focus-next)', { silent = true })
|
||||||
|
map('n', '<Leader>h', '<Plug>(cokeline-focus-prev)', { silent = true })
|
||||||
|
map('n', '<Leader>l', '<Plug>(cokeline-focus-next)', { silent = true })
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" Configure completion and LSP
|
||||||
|
set completeopt=menu,menuone,noselect
|
||||||
|
autocmd BufWritePre * lua vim.lsp.buf.formatting_sync(nil, 4000)
|
||||||
|
|
||||||
|
lua <<EOF
|
||||||
|
-- Setup nvim-cmp.
|
||||||
|
local cmp = require'cmp'
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'nvim_lsp_signature_help' },
|
||||||
|
{ name = 'vsnip' },
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
require("mason").setup({
|
||||||
|
automatic_installation = true,
|
||||||
|
})
|
||||||
|
require("mason-lspconfig").setup()
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" Configure NvimTree
|
||||||
|
lua << EOF
|
||||||
|
require('nvim-tree').setup()
|
||||||
|
EOF
|
||||||
|
nmap <leader>n :NvimTreeToggle<CR>
|
||||||
|
|
||||||
|
" Configure Telescope
|
||||||
|
lua << EOF
|
||||||
|
require('telescope').load_extension('fzf')
|
||||||
|
EOF
|
||||||
|
" Find files using Telescope command-line sugar.
|
||||||
|
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||||
|
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||||
|
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
||||||
|
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
||||||
|
|
||||||
|
" Configure tree-sitter with folding
|
||||||
|
lua <<EOF
|
||||||
|
if vim.loop.os_uname().sysname == "Darwin" then
|
||||||
|
require('nvim-treesitter.install').compilers = { os.getenv("HOME")..'/.local/bin/clang-wrapper' }
|
||||||
|
end
|
||||||
|
require('nvim-treesitter.configs').setup({
|
||||||
|
-- One of "all", or a list of languages
|
||||||
|
ensure_installed = "all",
|
||||||
|
ignore_install = { "godot_resource", "teal" },
|
||||||
|
highlight = {
|
||||||
|
enable = true
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
enable = true
|
||||||
|
},
|
||||||
|
})
|
||||||
|
EOF
|
||||||
|
set foldmethod=expr
|
||||||
|
set foldexpr=nvim_treesitter#foldexpr()
|
||||||
|
|
||||||
|
" Configure feline
|
||||||
|
lua <<EOF
|
||||||
|
require('feline').setup()
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" Configure Shade
|
||||||
|
lua <<EOF
|
||||||
|
require('shade').setup({
|
||||||
|
overlay_opacity = 50,
|
||||||
|
opacity_step = 1,
|
||||||
|
keys = {
|
||||||
|
brightness_up = '<C-Up>',
|
||||||
|
brightness_down = '<C-Down>',
|
||||||
|
toggle = '<Leader>s',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
EOF
|
||||||
|
endif
|
||||||
|
|
||||||
|
set background=light
|
||||||
|
" Keep at least 5 lines anove or below the cursor
|
||||||
|
set scrolloff=5
|
||||||
|
|
||||||
|
" use F2 to switch to paste mode
|
||||||
|
set pastetoggle=<F2>
|
||||||
|
|
||||||
|
" Configure Goyo
|
||||||
|
nmap <leader>] :Goyo<CR>
|
||||||
|
function! s:goyo_enter()
|
||||||
|
if exists('$TMUX')
|
||||||
|
" Hide the status panel and zoom in the current pane
|
||||||
|
silent !tmux set status off
|
||||||
|
" This hackery checks whether the pane is zoomed and toggles the status if
|
||||||
|
" not
|
||||||
|
silent !tmux list-panes -F '\#F'|grep -q Z || tmux resize-pane -Z
|
||||||
|
endif
|
||||||
|
" All eyes on me
|
||||||
|
Limelight
|
||||||
|
" Resize after zoom
|
||||||
|
if !exists("g:goyo_width")
|
||||||
|
let g:goyo_width=80
|
||||||
|
endif
|
||||||
|
if !exists("g:goyo_height")
|
||||||
|
let g:goyo_height='85%'
|
||||||
|
endif
|
||||||
|
execute "Goyo ".g:goyo_width."x".g:goyo_height
|
||||||
|
set scrolloff=999
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:goyo_leave()
|
||||||
|
if exists('$TMUX')
|
||||||
|
" Show the status panel and zoom out the current pane
|
||||||
|
silent !tmux set status on
|
||||||
|
silent !tmux list-panes -F '\#F'|grep -q Z && tmux resize-pane -Z
|
||||||
|
endif
|
||||||
|
Limelight!
|
||||||
|
set scrolloff=5
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
autocmd! User GoyoEnter nested call <SID>goyo_enter()
|
||||||
|
autocmd! User GoyoLeave nested call <SID>goyo_leave()
|
||||||
|
|
||||||
|
" Configure Limelight
|
||||||
|
let g:limelight_conceal_ctermfg = 245 " Solarized Base1
|
||||||
|
let g:limelight_conceal_guifg = '#8a8a8a' " Solarized Base1
|
||||||
|
|
||||||
|
"""
|
||||||
|
""" Visually indicate long columns
|
||||||
|
""" Taken from https://www.youtube.com/watch?v=aHm36-na4-4
|
||||||
|
"""
|
||||||
|
highlight ColorColumn ctermbg=magenta
|
||||||
|
call matchadd('ColorColumn', '\%81v', 100)
|
||||||
|
|
||||||
|
" Prefer two spaces
|
||||||
|
set shiftwidth=2
|
||||||
|
set softtabstop=2
|
||||||
|
|
||||||
|
" Show me those tabs, BTW
|
||||||
|
set list
|
||||||
|
set listchars=trail:~,nbsp:␣,tab:▸\
|
||||||
|
|
||||||
|
" Easy moves through wrapped lines
|
||||||
|
nnoremap j gj
|
||||||
|
nnoremap k gk
|
||||||
|
|
||||||
|
" Work with tmux mouse integration
|
||||||
|
set mouse=a
|
||||||
|
|
||||||
|
if has('nvim')
|
||||||
|
set undodir=~/.config/nvim/undodir
|
||||||
|
else
|
||||||
|
set undodir=~/.vim/undodir
|
||||||
|
endif
|
||||||
|
set undofile
|
Reference in New Issue
Block a user