2023-03-25 18:45:49 +01:00
|
|
|
" enter normal mode from terminal-emulator with <C-w>
|
|
|
|
inoremap <C-w> <Esc>
|
|
|
|
tnoremap <C-w> <C-\><C-n>
|
|
|
|
|
|
|
|
" automatically enter insert mode on new neovim terminals
|
|
|
|
augroup terminal
|
|
|
|
au TermOpen * startinsert
|
|
|
|
augroup END
|
|
|
|
|
|
|
|
" debuging
|
|
|
|
packadd termdebug
|
|
|
|
|
|
|
|
" debugging for rust
|
|
|
|
command Rustdebug :let termdebugger="rust-gdb" | :Termdebug
|
|
|
|
|
|
|
|
" Set completeopt to have a better completion experience"
|
|
|
|
set completeopt=menuone,noinsert,noselect
|
2023-03-20 22:53:00 +01:00
|
|
|
|
|
|
|
" Set completeopt to have a better completion experience"
|
|
|
|
set completeopt=menuone,noinsert,noselect
|
2023-06-29 10:25:44 +02:00
|
|
|
|
|
|
|
" load nvim-tree stuff
|
|
|
|
runtime nvim-tree.vim
|
|
|
|
|
2023-03-20 22:53:00 +01:00
|
|
|
call plug#begin()
|
|
|
|
|
2023-06-16 22:58:38 +02:00
|
|
|
Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(0) } }
|
2023-03-20 22:53:00 +01:00
|
|
|
Plug 'jiangmiao/auto-pairs'
|
|
|
|
Plug 'mhinz/vim-startify'
|
|
|
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
|
|
|
Plug 'psliwka/vim-smoothie' " scorll with STRG + d or STRG + u
|
|
|
|
Plug 'romgrk/barbar.nvim' " tabs for buffers
|
|
|
|
Plug 'EdenEast/nightfox.nvim' " Vim-Plug
|
|
|
|
Plug 'numToStr/FTerm.nvim' " floating terminal, toggle with <F11>
|
|
|
|
Plug 'kdheepak/lazygit.nvim'
|
|
|
|
Plug 'nvim-lualine/lualine.nvim' " nicer status line
|
|
|
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
|
|
|
Plug 'junegunn/fzf.vim'
|
2023-05-07 15:48:47 +02:00
|
|
|
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' }
|
2023-06-02 22:18:59 +02:00
|
|
|
Plug 'nanotee/zoxide.vim'
|
2023-06-09 00:21:31 +02:00
|
|
|
Plug 'jpalardy/vim-slime', { 'for': 'python' }
|
|
|
|
Plug 'hanschen/vim-ipython-cell', { 'for': 'python' }
|
2023-05-08 00:30:07 +02:00
|
|
|
runtime markdownpreview.vim
|
2023-03-20 22:53:00 +01:00
|
|
|
|
|
|
|
call plug#end()
|
|
|
|
|
2023-06-29 10:25:44 +02:00
|
|
|
|
2023-05-08 00:30:07 +02:00
|
|
|
" no default mappings for vim smoothie (fancy scrolling)
|
|
|
|
let g:smoothie_no_default_mappings = 1
|
|
|
|
|
|
|
|
" smooth scrolling with J and K instead of <S-Up> and <S-Down>
|
|
|
|
nnoremap <unique> J <cmd>call smoothie#do("\<C-D>") <CR>
|
|
|
|
vnoremap <unique> J <cmd>call smoothie#do("\<C-D>") <CR>
|
|
|
|
nnoremap <unique> K <cmd>call smoothie#do("\<C-U>") <CR>
|
|
|
|
vnoremap <unique> K <cmd>call smoothie#do("\<C-U>") <CR>
|
|
|
|
|
2023-03-20 22:53:00 +01:00
|
|
|
" Use <Tab> and <S-Tab> to navigate through popup menu"
|
|
|
|
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
|
|
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
|
|
|
|
|
|
" Set completeopt to have a better completion experience"
|
|
|
|
set completeopt=menuone,noinsert,noselect
|
|
|
|
|
|
|
|
" Move to previous/next"
|
|
|
|
nnoremap <silent> <A-,> <Cmd>BufferPrevious<CR>
|
|
|
|
nnoremap <silent> <A-.> <Cmd>BufferNext<CR>
|
|
|
|
" Re-order to previous/next"
|
|
|
|
nnoremap <silent> <A-<> <Cmd>BufferMovePrevious<CR>
|
|
|
|
nnoremap <silent> <A->> <Cmd>BufferMoveNext<CR>
|
|
|
|
" Goto buffer in position..."
|
|
|
|
nnoremap <silent> <A-1> <Cmd>BufferGoto 1<CR>
|
|
|
|
nnoremap <silent> <A-2> <Cmd>BufferGoto 2<CR>
|
|
|
|
nnoremap <silent> <A-3> <Cmd>BufferGoto 3<CR>
|
|
|
|
nnoremap <silent> <A-4> <Cmd>BufferGoto 4<CR>
|
|
|
|
nnoremap <silent> <A-5> <Cmd>BufferGoto 5<CR>
|
|
|
|
nnoremap <silent> <A-6> <Cmd>BufferGoto 6<CR>
|
|
|
|
nnoremap <silent> <A-7> <Cmd>BufferGoto 7<CR>
|
|
|
|
nnoremap <silent> <A-8> <Cmd>BufferGoto 8<CR>
|
|
|
|
nnoremap <silent> <A-9> <Cmd>BufferGoto 9<CR>
|
|
|
|
nnoremap <silent> <A-0> <Cmd>BufferLast<CR>
|
|
|
|
" Pin/unpin buffer"
|
|
|
|
nnoremap <silent> <A-p> <Cmd>BufferPin<CR>
|
|
|
|
" Close buffer"
|
|
|
|
nnoremap <silent> <A-c> <Cmd>BufferClose<CR>
|
|
|
|
" Wipeout buffer
|
|
|
|
" :BufferWipeout
|
|
|
|
" Close commands
|
|
|
|
" :BufferCloseAllButCurrent
|
|
|
|
" :BufferCloseAllButVisible
|
|
|
|
" :BufferCloseAllButPinned
|
|
|
|
" :BufferCloseAllButCurrentOrPinned
|
|
|
|
" :BufferCloseBuffersLeft
|
|
|
|
" :BufferCloseBuffersRight
|
|
|
|
" Magic buffer-picking mode
|
|
|
|
nnoremap <silent> <C-p> <Cmd>BufferPick<CR>
|
|
|
|
" Sort automatically by..."
|
|
|
|
nnoremap <silent> <Space>bb <Cmd>BufferOrderByBufferNumber<CR>
|
|
|
|
nnoremap <silent> <Space>bd <Cmd>BufferOrderByDirectory<CR>
|
|
|
|
nnoremap <silent> <Space>bl <Cmd>BufferOrderByLanguage<CR>
|
|
|
|
nnoremap <silent> <Space>bw <Cmd>BufferOrderByWindowNumber<CR>
|
|
|
|
|
|
|
|
" Other:
|
|
|
|
" :BarbarEnable - enables barbar (enabled by default)
|
|
|
|
" :BarbarDisable - very bad command, should never be used
|
|
|
|
"
|
|
|
|
color terafox
|
|
|
|
|
|
|
|
let g:lazygit_floating_window_winblend = 0 " transparency of floating window
|
|
|
|
let g:lazygit_floating_window_scaling_factor = 0.9 " scaling factor for floating window
|
2023-06-18 15:37:54 +02:00
|
|
|
let g:lazygit_floating_window_border_chars = ['╭', '╮', '╰', '╯'] " customize lazygit popup window corner characters
|
2023-03-20 22:53:00 +01:00
|
|
|
let g:lazygit_floating_window_use_plenary = 0 " use plenary.nvim to manage floating window if available
|
|
|
|
let g:lazygit_use_neovim_remote = 1 " fallback to 0 if neovim-remote is not installed
|
|
|
|
|
|
|
|
let g:lazygit_use_custom_config_file_path = 0 " config file path is evaluated if this value is 1
|
|
|
|
let g:lazygit_config_file_path = '' " custom config file path
|
|
|
|
|
|
|
|
" setup mapping to call :LazyGit
|
|
|
|
nnoremap <silent> <leader>gg :LazyGit<CR>
|
|
|
|
|
|
|
|
|
|
|
|
" coc language server configs
|
|
|
|
inoremap <silent><expr> <cr> coc#pum#visible() ? coc#_select_confirm() : "\<C-g>u\<CR>"
|
|
|
|
inoremap <expr> <Tab> coc#pum#visible() ? coc#pum#next(1) : "\<Tab>"
|
|
|
|
inoremap <expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(1) : "\<S-Tab>"
|
|
|
|
|
|
|
|
" do these commands manually, they dont like being scripted.
|
|
|
|
"CocInstall coc-clangd coc-cmake coc-css coc-floaterm coc-fzf-preview coc-git coc-html coc-json
|
|
|
|
"CocInstall coc-lists coc-lua coc-pyright coc-rust-analyzer coc-sh coc-snippets coc-sql
|
|
|
|
""""these may cause errors"""""CocInstall coc-symbol-line coc-toml coc-texlab coc-vimlsp coc-xml
|
|
|
|
|
2023-06-09 14:05:42 +02:00
|
|
|
" slime (sends stuff to other programs, like ipython)
|
|
|
|
let g:slime_target = "neovim"
|
|
|
|
|
|
|
|
|
2023-03-20 22:53:00 +01:00
|
|
|
"------------------------------------------------------
|
2023-06-30 21:45:57 +02:00
|
|
|
lua << EOF
|
2023-03-20 22:53:00 +01:00
|
|
|
|
|
|
|
-- disable netrw at the very start of your init.lua (strongly advised)
|
|
|
|
vim.g.loaded_netrw = 1
|
|
|
|
vim.g.loaded_netrwPlugin = 1
|
|
|
|
|
|
|
|
-- set termguicolors to enable highlight groups
|
|
|
|
vim.opt.termguicolors = true
|
|
|
|
|
|
|
|
|
|
|
|
require('lualine').setup {
|
|
|
|
options = {
|
|
|
|
icons_enabled = true,
|
|
|
|
theme = 'auto',
|
|
|
|
component_separators = { left = '', right = ''},
|
|
|
|
section_separators = { left = '', right = ''},
|
|
|
|
disabled_filetypes = {
|
|
|
|
statusline = {},
|
|
|
|
winbar = {},
|
|
|
|
},
|
|
|
|
ignore_focus = {},
|
|
|
|
always_divide_middle = true,
|
|
|
|
globalstatus = false,
|
|
|
|
refresh = {
|
|
|
|
statusline = 1000,
|
|
|
|
tabline = 1000,
|
|
|
|
winbar = 1000,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
sections = {
|
|
|
|
lualine_a = {'mode'},
|
|
|
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
|
|
|
lualine_c = {'filename'},
|
|
|
|
lualine_d = {'diagnostics'},
|
|
|
|
|
|
|
|
|
|
|
|
lualine_x = {'encoding', 'fileformat', 'filetype', 'filesize'},
|
|
|
|
lualine_y = {'progress'},
|
|
|
|
lualine_z = {'location'}
|
|
|
|
},
|
|
|
|
inactive_sections = {
|
|
|
|
lualine_a = {},
|
|
|
|
lualine_b = {},
|
|
|
|
lualine_c = {'filename'},
|
|
|
|
lualine_x = {'location'},
|
|
|
|
lualine_y = {},
|
|
|
|
lualine_z = {}
|
|
|
|
},
|
|
|
|
tabline = {},
|
|
|
|
winbar = {},
|
|
|
|
inactive_winbar = {},
|
|
|
|
extensions = {}
|
|
|
|
}
|
|
|
|
|
|
|
|
require'FTerm'.setup({
|
|
|
|
border = 'single',
|
|
|
|
dimensions = {
|
|
|
|
height = 0.9,
|
|
|
|
width = 0.9,
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
2023-06-02 22:18:59 +02:00
|
|
|
-- floaterm keys
|
2023-03-20 22:53:00 +01:00
|
|
|
vim.keymap.set('n', '<F12>', '<CMD>lua require("FTerm").toggle()<CR>')
|
|
|
|
vim.keymap.set('t', '<F12>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>')
|
2023-06-09 14:05:42 +02:00
|
|
|
|
|
|
|
-- slime
|
|
|
|
-- get id of a terminal, FloatTerm is usually 7, but I should rice this more
|
|
|
|
vim.g.slime_get_jobid = function()
|
|
|
|
return 7
|
|
|
|
end
|
2023-06-30 21:45:57 +02:00
|
|
|
EOF
|