add some new plugins, auto load setup file
new plugins: - jupyter-vim - lualine - nvim-tree - buftabline
This commit is contained in:
parent
4d1e5dc92c
commit
ec685a64e7
88
init.vim
88
init.vim
|
@ -1,39 +1,77 @@
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
" load plugin config
|
" my custom settings
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim"
|
" tabstop: length of an actual \t character:
|
||||||
|
" shiftwidth: length to use when shifting text (eg. <<, >> and == commands), (0 for ‘tabstop’):
|
||||||
|
" softtabstop: length to use when editing text (eg. TAB and BS keys), (0 for ‘tabstop’, -1 for ‘shiftwidth’):
|
||||||
|
" shiftround: round indentation to multiples of 'shiftwidth' when shifting text (so that it behaves like Ctrl-D / Ctrl-T):
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=0
|
||||||
|
set softtabstop=-1
|
||||||
|
set shiftround
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" load custom config
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
" plugin 'toogleterm' need this or it will initialze a new terminal each time
|
|
||||||
" foucus on terminal
|
|
||||||
set hidden
|
|
||||||
|
|
||||||
" show some whitespaces
|
|
||||||
set list
|
set list
|
||||||
|
|
||||||
" set for "hybrid" line number
|
|
||||||
set relativenumber
|
set relativenumber
|
||||||
set number
|
set number
|
||||||
|
|
||||||
" tab and auto indent
|
|
||||||
set expandtab
|
set expandtab
|
||||||
|
|
||||||
set autoindent
|
set autoindent
|
||||||
set smartindent
|
set smartindent
|
||||||
|
|
||||||
" length of an actual \t character:
|
|
||||||
set tabstop=4
|
|
||||||
" length to use when shifting text (eg. <<, >> and == commands)
|
|
||||||
" (0 for ‘tabstop’):
|
|
||||||
set shiftwidth=0
|
|
||||||
" length to use when editing text (eg. TAB and BS keys)
|
|
||||||
" (0 for ‘tabstop’, -1 for ‘shiftwidth’):
|
|
||||||
set softtabstop=-1
|
|
||||||
" round indentation to multiples of 'shiftwidth' when shifting text
|
|
||||||
" (so that it behaves like Ctrl-D / Ctrl-T):
|
|
||||||
set shiftround
|
|
||||||
|
|
||||||
|
let mapleader="\<Space>"
|
||||||
|
let maplocalleader="\<Space>"
|
||||||
|
|
||||||
|
|
||||||
|
" set statusline=%n\ %<%f\ %LL\ %{&modified?'[+]':&modifiable\|\|&ft=~'^\\vhelp\|qf$'?'':'[-]'}%h%r%{&fenc=='utf-8'\|\|&fenc==''?'':'['.&fenc.']'}%{'['.&ff.']'}%{&bomb?'[BOM]':''}%{&eol?'':'[noeol]'}%{&diff?'[diff]':''}%=\ 0x%-4.8B\ \ \ \ %-14.(%l,%c%V%)\ %p%%
|
||||||
|
|
||||||
|
|
||||||
|
" plugin 'toogleterm' need this or it will initialze a new terminal each time foucus on terminal
|
||||||
|
set hidden
|
||||||
|
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" config of vim-plug
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
let s:plugs = []
|
||||||
|
call add(s:plugs, 'neovim/nvim-lspconfig')
|
||||||
|
|
||||||
|
" call add(s:plugs, 'kyazdani42/nvim-web-devicons') " for file icons
|
||||||
|
call add(s:plugs, 'kyazdani42/nvim-tree.lua')
|
||||||
|
|
||||||
|
call add(s:plugs, 'nvim-lualine/lualine.nvim')
|
||||||
|
|
||||||
|
call add(s:plugs, 'akinsho/toggleterm.nvim')
|
||||||
|
|
||||||
|
call add(s:plugs, 'lukas-reineke/indent-blankline.nvim')
|
||||||
|
|
||||||
|
" call add(s:plugs, 'bling/vim-bufferline')
|
||||||
|
call add(s:plugs, 'ap/vim-buftabline')
|
||||||
|
|
||||||
|
call add(s:plugs, 'jupyter-vim/jupyter-vim')
|
||||||
|
|
||||||
|
call add(s:plugs, 'projekt0n/github-nvim-theme')
|
||||||
|
|
||||||
|
|
||||||
|
function! s:setup_file(plug_name)
|
||||||
|
let l:pos_dot = strridx(a:plug_name, '.')
|
||||||
|
let l:pos_slash = strridx(a:plug_name, '/')
|
||||||
|
|
||||||
|
let l:pos_dot = l:pos_dot > 0 ? l:pos_dot - 1 : -1
|
||||||
|
let l:pos_slash = l:pos_slash > 0 ? l:pos_slash + 1 : 0
|
||||||
|
return a:plug_name[l:pos_slash : l:pos_dot] .. '.vim'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
call plug#begin(has('nvim') ? stdpath('data') .. '/plugged' : '~/.vim/plugged')
|
||||||
|
for p in s:plugs
|
||||||
|
Plug p
|
||||||
|
endfor
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
for p in s:plugs
|
||||||
|
execute 'source' stdpath('config') .. '/plugins.d/' .. s:setup_file(p)
|
||||||
|
endfor
|
||||||
|
|
37
plugins.d/jupyter-vim.vim
Normal file
37
plugins.d/jupyter-vim.vim
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
if has('nvim')
|
||||||
|
"let g:python3_host_prog = '~/miniconda3/envs/torch/bin/python3'
|
||||||
|
let g:python3_host_prog = '/usr/bin/python3'
|
||||||
|
else
|
||||||
|
set pyxversion=3
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Always use the same virtualenv for vim, regardless of what Python
|
||||||
|
" environment is loaded in the shell from which vim is launched
|
||||||
|
"
|
||||||
|
" let g:vim_virtualenv_path = '~/miniconda3/envs/torch'
|
||||||
|
" if exists('g:vim_virtualenv_path')
|
||||||
|
" pythonx import os; import vim
|
||||||
|
" pythonx activate_this = os.path.join(vim.eval('g:vim_virtualenv_path'), 'bin/activate_this.py')
|
||||||
|
" pythonx with open(activate_this) as f: exec(f.read(), {'__file__': activate_this})
|
||||||
|
" endif
|
||||||
|
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
" Key mapping
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
" Run current file
|
||||||
|
nnoremap <buffer> <silent> <localleader>R :JupyterRunFile<CR>
|
||||||
|
nnoremap <buffer> <silent> <localleader>I :PythonImportThisFile<CR>
|
||||||
|
|
||||||
|
" Change to directory of current file
|
||||||
|
nnoremap <buffer> <silent> <localleader>d :JupyterCd %:p:h<CR>
|
||||||
|
|
||||||
|
" Send a selection of lines
|
||||||
|
nnoremap <buffer> <silent> <localleader>X :JupyterSendCell<CR>
|
||||||
|
nnoremap <buffer> <silent> <localleader>E :JupyterSendRange<CR>
|
||||||
|
nmap <buffer> <silent> <localleader>e <Plug>JupyterRunTextObj
|
||||||
|
vmap <buffer> <silent> <localleader>e <Plug>JupyterRunVisual
|
||||||
|
|
||||||
|
" Debugging maps
|
||||||
|
nnoremap <buffer> <silent> <localleader>b :PythonSetBreak<CR>
|
3
plugins.d/lualine.vim
Normal file
3
plugins.d/lualine.vim
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
lua << END
|
||||||
|
require('lualine').setup()
|
||||||
|
END
|
|
@ -5,6 +5,7 @@
|
||||||
lua << EOF
|
lua << EOF
|
||||||
|
|
||||||
local nvim_lsp = require('lspconfig')
|
local nvim_lsp = require('lspconfig')
|
||||||
|
-- local util = require('lsputil')
|
||||||
|
|
||||||
-- Use an on_attach function to only map the following keys
|
-- Use an on_attach function to only map the following keys
|
||||||
-- after the language server attaches to the current buffer
|
-- after the language server attaches to the current buffer
|
||||||
|
@ -41,13 +42,14 @@ end
|
||||||
|
|
||||||
-- Use a loop to conveniently call 'setup' on multiple servers and
|
-- Use a loop to conveniently call 'setup' on multiple servers and
|
||||||
-- map buffer local keybindings when the language server attaches
|
-- map buffer local keybindings when the language server attaches
|
||||||
local servers = { 'pyright', 'rust_analyzer', 'tsserver', 'html' }
|
local servers = { 'pyright', 'html' }
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
nvim_lsp[lsp].setup {
|
nvim_lsp[lsp].setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
flags = {
|
flags = {
|
||||||
debounce_text_changes = 150,
|
debounce_text_changes = 150,
|
||||||
}
|
},
|
||||||
|
root_dir = nvim_lsp.util.find_git_ancestor
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
27
plugins.d/nvim-tree.vim
Normal file
27
plugins.d/nvim-tree.vim
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
lua << EOF
|
||||||
|
-- following options are the default
|
||||||
|
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
|
||||||
|
vim.g.loaded_netrw = 1
|
||||||
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
|
||||||
|
require("nvim-tree").setup({
|
||||||
|
sort_by = "case_sensitive",
|
||||||
|
view = {
|
||||||
|
adaptive_size = true,
|
||||||
|
mappings = {
|
||||||
|
list = {
|
||||||
|
{ key = "u", action = "dir_up" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
group_empty = true,
|
||||||
|
},
|
||||||
|
filters = {
|
||||||
|
dotfiles = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
nnoremap <localleader>t :NvimTreeFocus<CR>
|
3
plugins.d/vim-buftabline.vim
Normal file
3
plugins.d/vim-buftabline.vim
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
let g:buftabline_numbers = 1
|
||||||
|
let g:buftabline_indicators = 1
|
||||||
|
let g:buftabline_separators = 1
|
31
plugins.vim
31
plugins.vim
|
@ -1,31 +0,0 @@
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" config of vim-plug
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Plugins will be downloaded under the specified directory.
|
|
||||||
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')
|
|
||||||
|
|
||||||
" Declare the list of plugins.
|
|
||||||
Plug 'neovim/nvim-lspconfig'
|
|
||||||
|
|
||||||
Plug 'kyazdani42/nvim-web-devicons' " for file icons
|
|
||||||
Plug 'kyazdani42/nvim-tree.lua'
|
|
||||||
|
|
||||||
Plug 'akinsho/toggleterm.nvim'
|
|
||||||
|
|
||||||
Plug 'lukas-reineke/indent-blankline.nvim'
|
|
||||||
|
|
||||||
" Declare the theme
|
|
||||||
Plug 'projekt0n/github-nvim-theme'
|
|
||||||
|
|
||||||
" List ends here. Plugins become visible to Vim after this call.
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" load setup of plugins
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim.d/nvim-lspconfig.vim"
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim.d/nvim-tree.vim"
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim.d/toggleterm.vim"
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim.d/github-nvim-theme.vim"
|
|
||||||
execute 'source' "~/.config/nvim/plugins.vim.d/indent-blankline.vim"
|
|
|
@ -1,144 +0,0 @@
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" config of nvim tree
|
|
||||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
let g:nvim_tree_quit_on_open = 1 "0 by default, closes the tree when you open a file
|
|
||||||
let g:nvim_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open
|
|
||||||
let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons).
|
|
||||||
let g:nvim_tree_highlight_opened_files = 1 "0 by default, will enable folder and file icon highlight for opened files/directories.
|
|
||||||
let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options
|
|
||||||
let g:nvim_tree_add_trailing = 1 "0 by default, append a trailing slash to folder names
|
|
||||||
let g:nvim_tree_group_empty = 1 " 0 by default, compact folders that only contain a single folder into one node in the file tree
|
|
||||||
let g:nvim_tree_disable_window_picker = 1 "0 by default, will disable the window picker.
|
|
||||||
let g:nvim_tree_icon_padding = ' ' "one space by default, used for rendering the space between the icon and the filename. Use with caution, it could break rendering if you set an empty string depending on your font.
|
|
||||||
let g:nvim_tree_symlink_arrow = ' >> ' " defaults to ' ➛ '. used as a separator between symlinks' source and target.
|
|
||||||
let g:nvim_tree_respect_buf_cwd = 1 "0 by default, will change cwd of nvim-tree to that of new buffer's when opening nvim-tree.
|
|
||||||
let g:nvim_tree_create_in_closed_folder = 0 "1 by default, When creating files, sets the path of a file when cursor is on a closed folder to the parent folder when 0, and inside the folder when 1.
|
|
||||||
let g:nvim_tree_refresh_wait = 500 "1000 by default, control how often the tree can be refreshed, 1000 means the tree can be refresh once per 1000ms.
|
|
||||||
let g:nvim_tree_window_picker_exclude = {
|
|
||||||
\ 'filetype': [
|
|
||||||
\ 'notify',
|
|
||||||
\ 'packer',
|
|
||||||
\ 'qf'
|
|
||||||
\ ],
|
|
||||||
\ 'buftype': [
|
|
||||||
\ 'terminal'
|
|
||||||
\ ]
|
|
||||||
\ }
|
|
||||||
" Dictionary of buffer option names mapped to a list of option values that
|
|
||||||
" indicates to the window picker that the buffer's window should not be
|
|
||||||
" selectable.
|
|
||||||
let g:nvim_tree_special_files = { 'README.md': 1, 'Makefile': 1, 'MAKEFILE': 1 } " List of filenames that gets highlighted with NvimTreeSpecialFile
|
|
||||||
let g:nvim_tree_show_icons = {
|
|
||||||
\ 'git': 1,
|
|
||||||
\ 'folders': 0,
|
|
||||||
\ 'files': 0,
|
|
||||||
\ 'folder_arrows': 0,
|
|
||||||
\ }
|
|
||||||
"If 0, do not show the icons for one of 'git' 'folder' and 'files'
|
|
||||||
"1 by default, notice that if 'files' is 1, it will only display
|
|
||||||
"if nvim-web-devicons is installed and on your runtimepath.
|
|
||||||
"if folder is 1, you can also tell folder_arrows 1 to show small arrows next to the folder icons.
|
|
||||||
"but this will not work when you set indent_markers (because of UI conflict)
|
|
||||||
|
|
||||||
" default will show icon by default if no icon is provided
|
|
||||||
" default shows no icon by default
|
|
||||||
let g:nvim_tree_icons = {
|
|
||||||
\ 'default': '',
|
|
||||||
\ 'symlink': '',
|
|
||||||
\ 'git': {
|
|
||||||
\ 'unstaged': "✗",
|
|
||||||
\ 'staged': "✓",
|
|
||||||
\ 'unmerged': "",
|
|
||||||
\ 'renamed': "➜",
|
|
||||||
\ 'untracked': "★",
|
|
||||||
\ 'deleted': "",
|
|
||||||
\ 'ignored': "◌"
|
|
||||||
\ },
|
|
||||||
\ 'folder': {
|
|
||||||
\ 'arrow_open': "",
|
|
||||||
\ 'arrow_closed': "",
|
|
||||||
\ 'default': "",
|
|
||||||
\ 'open': "",
|
|
||||||
\ 'empty': "",
|
|
||||||
\ 'empty_open': "",
|
|
||||||
\ 'symlink': "",
|
|
||||||
\ 'symlink_open': "",
|
|
||||||
\ }
|
|
||||||
\ }
|
|
||||||
|
|
||||||
nnoremap <C-n> :NvimTreeToggle<CR>
|
|
||||||
nnoremap <leader>r :NvimTreeRefresh<CR>
|
|
||||||
nnoremap <leader>n :NvimTreeFindFile<CR>
|
|
||||||
" NvimTreeOpen, NvimTreeClose, NvimTreeFocus, NvimTreeFindFileToggle, and NvimTreeResize are also available if you need them
|
|
||||||
|
|
||||||
set termguicolors " this variable must be enabled for colors to be applied properly
|
|
||||||
|
|
||||||
" a list of groups can be found at `:help nvim_tree_highlight`
|
|
||||||
highlight NvimTreeFolderIcon guibg=blue
|
|
||||||
|
|
||||||
"""""""""""""""""""""" start of setup
|
|
||||||
|
|
||||||
lua << EOF
|
|
||||||
-- following options are the default
|
|
||||||
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
|
|
||||||
require'nvim-tree'.setup {
|
|
||||||
disable_netrw = true,
|
|
||||||
hijack_netrw = true,
|
|
||||||
open_on_setup = false,
|
|
||||||
ignore_ft_on_setup = {},
|
|
||||||
auto_close = false,
|
|
||||||
open_on_tab = false,
|
|
||||||
hijack_cursor = false,
|
|
||||||
update_cwd = false,
|
|
||||||
update_to_buf_dir = {
|
|
||||||
enable = true,
|
|
||||||
auto_open = true,
|
|
||||||
},
|
|
||||||
diagnostics = {
|
|
||||||
enable = false,
|
|
||||||
icons = {
|
|
||||||
hint = "",
|
|
||||||
info = "",
|
|
||||||
warning = "",
|
|
||||||
error = "",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
update_focused_file = {
|
|
||||||
enable = false,
|
|
||||||
update_cwd = false,
|
|
||||||
ignore_list = {}
|
|
||||||
},
|
|
||||||
system_open = {
|
|
||||||
cmd = nil,
|
|
||||||
args = {}
|
|
||||||
},
|
|
||||||
filters = {
|
|
||||||
dotfiles = false,
|
|
||||||
custom = {}
|
|
||||||
},
|
|
||||||
git = {
|
|
||||||
enable = true,
|
|
||||||
ignore = true,
|
|
||||||
timeout = 500,
|
|
||||||
},
|
|
||||||
view = {
|
|
||||||
width = 30,
|
|
||||||
height = 30,
|
|
||||||
hide_root_folder = false,
|
|
||||||
side = 'left',
|
|
||||||
auto_resize = false,
|
|
||||||
mappings = {
|
|
||||||
custom_only = false,
|
|
||||||
list = {}
|
|
||||||
},
|
|
||||||
number = false,
|
|
||||||
relativenumber = false,
|
|
||||||
signcolumn = "yes"
|
|
||||||
},
|
|
||||||
trash = {
|
|
||||||
cmd = "trash",
|
|
||||||
require_confirm = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
Loading…
Reference in a new issue