Your dotfiles will most likely be the longest project you ever work on.
Using version control systems to manage my dotfiles ensures that every computer's configuration is ready to use out of the box.
Neovim's configurations is based on windows, maybe you should modify some configurations to make it suitable for Linux.
-
Bash
-
General settings
- Append to the history file, don't overwrite it
- Check the window size after each command and update LINES and COLUMNS
-
History settings
- Don't put duplicate lines or lines starting with space in the history
- History size: 1000
- History file size: 2000
-
Prompt settings
- Fancy prompt with color support if the terminal has the capability
-
Terminal title
- If this is an xterm, set the title to user@host:dir
-
Color support for commands
- Enable color support of
ls
and add handy aliases - Aliases:
ls
with color:ls --color=auto
ll
:ls -alF
la
:ls -A
l
:ls -CF
grep
with color:grep --color=auto
fgrep
with color:fgrep --color=auto
egrep
with color:egrep --color=auto
- Enable color support of
-
Alert for long running commands
alert
: Notify when a long-running command finishes
-
Aliases file
- If
~/.bash_aliases
exists, source it
- If
-
Programmable completion features
- Enable programmable completion if available
-
-
Tmux
-
Prefix Key
- Remap prefix from
C-b
toC-a
- Remap prefix from
-
Pane Splitting
- Split panes horizontally with
|
- Split panes vertically with
-
- Unbind default pane splitting keys (
"
and%
)
- Split panes horizontally with
-
Reload Config
- Bind
r
to reload the tmux configuration file
- Bind
-
Pane Navigation
- Switch panes using
Alt
+Arrow
without prefix
- Switch panes using
-
Mouse Mode
- Enable mouse mode (tmux 2.1 and above)
-
Window Renaming
- Disable automatic renaming of windows
-
-
Neovim
- Color Scheme
- Monokai: Uses the tanvirtin/monokai.nvim plugin to provide the Monokai theme.
- LSP (Language Server Protocol) Support
- Mason: Manages external tools and LSP servers with williamboman/mason.nvim.
- Mason LSP Config: Simplifies LSP server configuration with williamboman/mason-lspconfig.nvim.
- LSP Config: Configures and enables LSP servers with neovim/nvim-lspconfig.
- File Search
- LeaderF: Enables quick file/Tags search with the LeaderF plugin (using the
<C-P>
shortcut). You should install pynvim and rg(If you want to use). - ACK: Provides advanced text search capabilities with the mileszs/ack.vim plugin. You should install ACK in windows at first.
- LeaderF: Enables quick file/Tags search with the LeaderF plugin (using the
- File Explorer
- Commenting
- NERD Commenter: Automatically comments code with the scrooloose/nerdcommenter plugin.
- VSCode-like Pictograms
- LSP Kind: Provides VSCode-like pictograms for auto-completion items with the onsails/lspkind.nvim plugin.
- nvim-treesitter: To highlight, edit, and refactor code with it. You should install tree-sitter CLI by npm(Recommended) at first.
- Auto-Completion
- nvim-cmp: Implements auto-completion with the hrsh7th/nvim-cmp plugin:
- lspkind.nvim: Adds icons to completion items.
- cmp-nvim-lsp: LSP source for nvim-cmp.
- cmp-buffer: Buffer source for nvim-cmp.
- cmp-path: Path source for nvim-cmp.
- cmp-cmdline: Command line source for nvim-cmp.
- Code Snippet Engine
- LuaSnip: Provides a code snippet engine with the L3MON4D3/LuaSnip plugin.
- Markdown Tools
- Markdown Preview: Uses the iamcco/markdown-preview.nvim plugin for Markdown preview and related operations.
- Markdown: The plugin provides markdown support.
- Jupyter Notebook Support
- Notebook Navigator: Manages and runs Jupyter Notebook cells with the GCBallesteros/NotebookNavigator.nvim plugin:
- Dependencies include mini.comment, iron.nvim, and hydra.nvim.
- Provides keybindings for cell operations
- mini.hipatterns: Provides additional syntax highlighting patterns.
- Notebook Navigator: Manages and runs Jupyter Notebook cells with the GCBallesteros/NotebookNavigator.nvim plugin:
- REPL Integration
- Iron.nvim: Provides REPL support for various programming languages with the Vigemus/iron.nvim plugin.
- Jupyter Notebook Conversion
- Jupytext: Converts between
.ipynb
and.py
files with the goerz/jupytext.vim plugin. You should install jupytext(python-packet).
- Jupytext: Converts between
- Latex
- vimtex: You should install SumatraPDF in windows,neovim-remote(python-packet) and config them.
- Copilot
- copilot.vim: Provide Copilot service.
- CopilotChat: Chat with Copilot.
- plenary.nvim: Useful Lua functions used by lots of Neovim plugins.
- Dap
- nvim-dap: Debug Adapter Protocol for Neovim.
- nvim-dap-ui: Debug Adapter Protocol UI for Neovim.
- nvim-dap-virtual-text: Debug Adapter Protocol virtual text for Neovim.
- Mason-tool-installer: Install debug adapter protocol tools with Mason.
- nvim-nio: A powerful Neovim plugin for asynchronous I/O operations.
- UI
- nvim-web-devicons: Icons for neovim plugins.
- nvim-bufferline.lua: Bufferline for neovim.
- nvim-lualine: I use the evil theme to show the statusline.
- nvim-dashboard: Set up my own dashboard.
- Terminal
- Toggleterm: Quickly open a terminal with it.
- Color Scheme