From e2a17ca6bcea4dd331b404bcb2efd4d84586df83 Mon Sep 17 00:00:00 2001 From: robert-blankenship Date: Sat, 11 Feb 2023 19:09:11 -0800 Subject: [PATCH] Initial Commit - Add NvimTree to the distribution. - Add notes on keybindings --- README.md | 82 +++------------------------------------------- init.lua | 44 +++++++++++++++++++++++++ notes.txt | 4 +++ nvim-tree-tldr.txt | 17 ++++++++++ 4 files changed, 70 insertions(+), 77 deletions(-) create mode 100644 notes.txt create mode 100644 nvim-tree-tldr.txt diff --git a/README.md b/README.md index 4cc00b1b..7300e80c 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,12 @@ ### Introduction - -A starting point for Neovim that is: - -* Small (<500 lines) -* Single-file -* Documented -* Modular - -Kickstart.nvim targets *only* the latest ['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest ['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim. If you are experiencing issues, please make sure you have the latest versions. - -This repo is meant to be used as a starting point for a user's own configuration; remove the things you don't use and add what you miss. Please refrain from leaving comments about enabling / disabling particular languages out of the box. - -### Installation - -* Backup your previous configuration -* Copy and paste the kickstart.nvim `init.lua` into `$HOME/.config/nvim/init.lua` (Linux) or `~/AppData/Local/nvim/init.lua` (Windows) -* Start Neovim (`nvim`) and run `:PackerInstall` - ignore any error message about missing plugins, `:PackerInstall` will fix that shortly -* Restart Neovim - - -If there are languages that you don't want to use, remove their configuration and notes from your `init.lua` after copy and pasting (for example, in the mason configuration). - -### Windows Installation - -Installation may require installing build tools, and updating the run command for `telescope-fzf-native` - -See `telescope-fzf-native` documention for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation) - -This requires: - -- Install CMake, and the Microsoft C++ Build Tools on Windows - -```lua -use {'nvim-telescope/telescope-fzf-native.nvim', run = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } +``` +https://github.com/robert-blankenship/nvim-init ``` -### Configuration +### Credits +Uses `nvim-lua` as a starting point. +https://github.com/nvim-lua/kickstart.nvim -You could directly modify the `init.lua` file with your personal customizations. This option is the most straightforward, but if you update your config from this repo, you may need to reapply your changes. -An alternative approach is to create a separate `custom.plugins` module to register your own plugins. In addition, you can handle further customizations in the `/after/plugin/` directory (see `:help load-plugins`). See the following examples for more information. Leveraging this technique should make upgrading to a newer version of this repo easier. -#### Example `plugins.lua` - -The following is an example of a `plugins.lua` module (located at `$HOME/.config/nvim/lua/custom/plugins.lua`) where you can register your own plugins. - -```lua -return function(use) - use({ - "folke/which-key.nvim", - config = function() - require("which-key").setup({}) - end - }) -end -``` - -#### Example `defaults.lua` - -For further customizations, you can add a file in the `/after/plugin/` folder (see `:help load-plugins`) to include your own options, keymaps, autogroups, and more. The following is an example `defaults.lua` file (located at `$HOME/.config/nvim/after/plugin/defaults.lua`). - -```lua -vim.opt.relativenumber = true - -vim.keymap.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) -``` - -### Contribution - -Pull-requests are welcome. The goal of this repo is not to create a Neovim configuration framework, but to offer a starting template that shows, by example, available features in Neovim. Some things that will not be included: - -* Custom language server configuration (null-ls templates) -* Theming beyond a default colorscheme necessary for LSP highlight groups -* Lazy-loading. Kickstart.nvim should start within 40 ms on modern hardware. Please profile and contribute to upstream plugins to optimize startup time instead. - -Each PR, especially those which increase the line count, should have a description as to why the PR is necessary. - -### FAQ - - * What should I do if I already have a pre-existing neovim configuration? - * You should back it up, then delete all files associated with it. - * This includes your existing init.lua and the neovim files in `.local` which can be deleted with `rm -rf ~/.local/share/nvim/` diff --git a/init.lua b/init.lua index ac291dad..0e5c78e8 100644 --- a/init.lua +++ b/init.lua @@ -7,9 +7,53 @@ if vim.fn.empty(vim.fn.glob(install_path)) > 0 then vim.cmd [[packadd packer.nvim]] end + +-- For nvim-tree +-- 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 +-- vim.g.nvim_tree_show_icons = { +-- folders = 0, +-- files = 0, +-- git = 0, +-- folder_arrows = 0, +-- } +local function open_nvim_tree(data) + -- buffer is a directory + local directory = vim.fn.isdirectory(data.file) == 1 + if not directory then + return + end + -- change to the directory + vim.cmd.cd(data.file) + -- open the tree + require("nvim-tree.api").tree.open() +end +vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree }) + require('packer').startup(function(use) -- Package manager use 'wbthomason/packer.nvim' + + -- TODO: Should I move lower? + -- Directory tree in NVIM. + use { + 'nvim-tree/nvim-tree.lua', + config = function () + require('nvim-tree').setup({ + renderer = { + icons = { + show = { + file = false, + folder = false + } + } + } + }) + end + } use { -- LSP Configuration & Plugins 'neovim/nvim-lspconfig', diff --git a/notes.txt b/notes.txt new file mode 100644 index 00000000..ca6ad685 --- /dev/null +++ b/notes.txt @@ -0,0 +1,4 @@ +- installed jdtls as a Mason package +- installed Python, Java, and Scala in init.lua +- Would like to fix the issue with Java indentation. + diff --git a/nvim-tree-tldr.txt b/nvim-tree-tldr.txt new file mode 100644 index 00000000..5486e31c --- /dev/null +++ b/nvim-tree-tldr.txt @@ -0,0 +1,17 @@ +- Enter to open/close node of tree +- Enter or Click to open a file +- Tab to open while being focused on tree +- a to create a file +- r to rename a file +- x and then p to move a file +- c and then p to paste a file + +- Ctrl + v (open in vsplit) + +- "-" to change the directory to the parent directory +- Ctrl + ] (change base directory of tree) + +- q to close + + +