summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2022-07-28 16:26:17 +0800
committerFrederick Yin <fkfd@fkfd.me>2022-07-28 16:26:17 +0800
commitf9344f3efc55faa726745788807cb11ed8639671 (patch)
treef8ef8e775c5a69a8b75df4684682851b1cc5e306
parente305feab586573b078c49a48b828dc55266af571 (diff)
Add nvim
-rw-r--r--nvim/init.vim100
-rw-r--r--nvim/nvim-tree.vim66
2 files changed, 166 insertions, 0 deletions
diff --git a/nvim/init.vim b/nvim/init.vim
new file mode 100644
index 0000000..5f6a6fa
--- /dev/null
+++ b/nvim/init.vim
@@ -0,0 +1,100 @@
+set runtimepath^=~/.vim runtimepath+=~/.vim/after
+let &packpath = &runtimepath
+source ~/.vimrc
+
+source ~/.config/nvim/nvim-tree.vim
+
+lua <<EOF
+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
+
+lua <<EOF
+require'nvim-treesitter.configs'.setup {
+ -- One of "all", "maintained" (parsers with maintainers), or a list of languages
+ ensure_installed = "maintained",
+
+ -- Install languages synchronously (only applied to `ensure_installed`)
+ sync_install = false,
+
+ -- List of parsers to ignore installing
+ ignore_install = {},
+
+ highlight = {
+ -- `false` will disable the whole extension
+ enable = true,
+ -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
+ -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
+ -- Using this option may slow down your editor, and you may see some duplicate highlights.
+ -- Instead of true it can also be a list of languages
+ additional_vim_regex_highlighting = false,
+ },
+
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "gnn",
+ node_incremental = "grn",
+ scope_incremental = "grc",
+ node_decremental = "grm",
+ },
+ },
+}
+EOF
diff --git a/nvim/nvim-tree.vim b/nvim/nvim-tree.vim
new file mode 100644
index 0000000..c80f55b
--- /dev/null
+++ b/nvim/nvim-tree.vim
@@ -0,0 +1,66 @@
+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_change_dir_global = 1 "0 by default, use :cd when changing directories.
+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': 1,
+ \ 'files': 1,
+ \ 'folder_arrows': 1,
+ \ }
+"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': "",
+ \ }
+ \ }
+