Sessions Manager π· Key Mappings π· Lists Finder π· Basic Debugging π· Diagnostics Indicators π· Code Analysis π· Auto-completion and Suggestions π· Focus Coding π· Split Windows π· REST Client π· Version Control π· Themes π· Themes
Note: The following list includes tools that may enhance the user experience but are not strictly prerequisites. Depending on your specific use case and preferences, you may choose to install some or all of these tools for improved functionality and convenience.
Neovim Build From Source
GNU/Linux | MacOS | Description |
---|---|---|
autoconf | autoconf | Configuration script system for software. |
automake | automake | Tool for automatically generating Makefile.in files. |
cmake | cmake | Cross-platform makefile generator. |
curl | curl | A command-line tool and library for transferring data with URLs. |
g++ | g++ | GNU Compiler Collection - C++ compiler. |
gettext | gettext | Tools for internationalization (i18n) and localization (l10n). |
libtool | libtool | Generic library support script. |
libtool-bin | - | (See libtool). |
ninja-build | ninja | Ninja build system. |
pkg-config | pkg-config | System for managing library compile and link flags. |
s-tui | s-tui | Terminal UI for monitoring your computer's CPU temperature and more. |
unzip | unzip | Extraction utility for archives compressed in .zip format. |
doxygen | doxygen | Documentation system for C++, C, Java, Objective-C, and more. |
Sword Vim
GNU/Linux | MacOS | Description |
---|---|---|
bash-language-server | bash-language-server | Language Server Protocol for Bash. |
figlet | figlet | Program for making large letters out of ordinary text. |
node.js lts | node.js lts | JavaScript runtime built on Chrome's V8 JavaScript engine. |
npm | npm | Package manager for JavaScript. |
oh my tmux! | oh my tmux! | Tmux configuration framework. |
pip | pip | Package installer for Python. |
pip3 | pip3 | Package installer for Python 3. |
pynvim | pynvim | Python client for Neovim. |
yarn | yarn | Alternative to NPM. |
Languages
GNU/Linux | MacOS | Description |
---|---|---|
bats | bats | Bash Automated Testing System. |
flake8 | flake8 | Tool for style guide enforcement in Python. |
nvm | nvm | Node Version Manager for managing multiple Node.js versions. |
shellcheck | shellcheck | Shell script analysis tool. |
External Tools
GNU/Linux | MacOS | Description |
---|---|---|
batcat (bat) | batcat (bat) | A cat clone with syntax highlighting and Git integration. |
feh | feh | Fast and lightweight image viewer. |
fzf | fzf | Fuzzy finder for the command-line. |
jq | jq | Parsers and manipulates JSON data. |
oh my zsh! | oh my zsh! | Zsh configuration framework. |
tidy | tidy | HTML and XML syntax checker and validator. |
nnn / vifm | nnn / vifm | Terminal file manager. |
zplug | zplug | Zsh plugin manager. |
Graphical Mode Tools
GNU/Linux | MacOS | Description |
---|---|---|
wezterm / kitty | open (iTerm2) / wezterm / kitty | Terminals with fonts with ligatures support and transparency support. |
wl-clipboard | wl-clipboard | Wayland clipboard utilities. |
xclip / xsel | pbcopy, pbpaste, tmux-pasteboard | Command line interface to X selections (clipboard). |
feh / qiv / sxiv / ristretto | open (Preview) | Quick and simple Image Viewer. |
ig (ripgrep) | ig (ripgrep) | Line-oriented search tool that recursively searches your current directory. |
Steps
-
Requirements:
- Neovim: Ensure Neovim is installed on your system. You can typically install it using your system's package manager (e.g.,
apt
,brew
,yum
). You can also build it from source for your specific OS. - Git: The installation process often involves cloning repositories, so having Git installed is essential.
- Neovim: Ensure Neovim is installed on your system. You can typically install it using your system's package manager (e.g.,
-
Plugin Manager (Optional but recommended):
- Choose a plugin manager. Popular ones include
vim-plug
,Dein.vim
, andpacker.nvim
. - Follow the installation instructions for your chosen plugin manager. The default configuration of Sword Vim requires
vim-plug
andpacker.nvim
.
- Choose a plugin manager. Popular ones include
-
Configuration:
- Create a Neovim configuration file. The default location is
~/.config/nvim/init.vim
or~/.vimrc
for Vim compatibility. Add the next lines to the fileinit.vim
:" ------------------------------------------------------------------------------ " Sets the runtimepath for Vim plugins and runtime files " ------------------------------------------------------------------------------ " Adds ~/.vim to the start of runtimepath " Appends ~/.vim/after to runtimepath " Sets the packpath to match the runtimepath " Sources the user's Vim configuration file " ------------------------------------------------------------------------------ set runtimepath^=~/.vim runtimepath+=~/.vim/after let &packpath=&runtimepath source ~/.vimrc
- Create a symbolic link from the file
~/.vimrc
to the same file in~/config/.vimrc
, where config is copy of the directorysword-vim/config
.ln -s ~/config/.vimrc ~/.vimrc
- Create a symbolic link from the directory
~/.vim
to the same directory in~/config
,~/config/.vim
.ln -s ~/config/.vim/ ~/.vim/
- Create a symbolic link from the file
- Add your chosen plugin manager setup to the configuration file. Sword Vim defaults
vim-plug
andpacker.nvim
, are already set up. - Install the Sword Vim plugins. For Packer, say no (N) to avoid Packer removing itself.
:PlugInstall :PackerInstall
- Configure basic settings like line numbers, syntax highlighting, etc.
- Source or restart Neovim.
- Voila! Enjoy it!
- Create a Neovim configuration file. The default location is
-
Adding Plugins:
- Use your plugin manager to add plugins to Neovim. Plugins are typically specified in the configuration file. Sword Vim has two default configuration files, one for Vim Script, one for Lua.
- Example with
vim-plug
:call plug#begin('~/.vim/plugged') " Add your plugins here Plug 'user/plugin-name' call plug#end()
-
Customization:
- Customize key mappings, colorschemes, and other preferences based on your needs.
- Keep in mind that some plugins may require additional configuration.
-
Adapt to System Configuration:
- Be aware that specific configurations might be needed based on your operating system.
- Some plugins might have dependencies that need to be installed separately.
-
Updates:
- Regularly update your plugins using your plugin manager.
- Stay informed about changes in Neovim or your plugins that might affect your configuration.
Category | VimL Plugin | Description |
---|---|---|
Auto-complete Plugins | tpope/vim-repeat | Allows repeating the last command. |
github/copilot.vim | GitHub's Copilot. | |
Exafunction/codeium.vim | Codeium.vim. | |
Snippets Plugins | neoclide/coc.nvim | Conquer of completion with additional text editing support. |
sirver/ultisnips | Ultimate solution for snippets in Vim. | |
honza/vim-snippets | Snippets for various languages. | |
Comments Plugins | scrooloose/nerdcommenter | Powerful commenting functions. |
tpope/vim-commentary | Commenting utility. | |
Typing Plugins | alvan/vim-closetag | Creates closing HTML tags when typing. |
tpope/vim-surround | Manipulates surroundings like parentheses and quotes. | |
Finder Plugins | junegunn/fzf | Fuzzy finder for the terminal. |
Formatting Plugins | mg979/vim-visual-multi | Enhances actions like creating multiple cursors. |
prettier/vim-prettier | Integrates Prettier for supported files. | |
Color Plugins | ap/vim-css-color | Provides color highlighting for CSS. |
Git Plugins | tpope/vim-fugitive | Git wrapper for Vim. |
itchyny/vim-gitbranch | Provides the name of the git branch. | |
IDE Plugins | mhinz/vim-startify | Creates a start screen with bookmarks. |
easymotion/vim-easymotion | Enhances motion in Vim. | |
scrooloose/nerdtree | File system explorer. | |
christoomey/vim-tmux-navigator | Integrates navigation between Vim and Tmux. | |
itchyny/lightline.vim | Status bar for Vim. | |
DevIcons and Themes | ryanoasis/vim-devicons | Adds filetype glyphs. |
morhetz/gruvbox | Gruvbox theme. | |
shinchu/lightline-gruvbox.vim | Lightline theme for Gruvbox. | |
mhartington/oceanic-next | OceanicNext theme. | |
Mofiqul/dracula.nvim | Dracula theme. | |
Other Productivity Plugins | tribela/vim-transparent | Adds transparency to Vim. |
wakatime/vim-wakatime | Tracks coding activity. | |
benmills/vimux | Tmux integration. | |
itspriddle/vim-shellcheck | Finds errors in bash/sh scripts. | |
tyewang/vimux-jest-test | Jest test integration. | |
janko-m/vim-test | Test runner for Vim. | |
diepm/vim-rest-console | REST console for sending requests and displaying responses. | |
tpope/vim-dispatch | Asynchronous task dispatcher for Vim. | |
Syntax Plugins | sheerun/vim-polyglot | Language pack for various languages. |
styled-components/vim-styled-components | Styled Components syntax highlighting. | |
kovetskiy/vim-bash | Fixes syntax issues with bash files. | |
rosstimson/bats.vim | Extends shell highlighting for Bats. |
Category | Lua Plugin | Description |
---|---|---|
Buffer Line Plugin | akinsho/bufferline.nvim | Snazzy buffer line with tabpage integration. |
Dashboard Plugin | goolord/alpha-nvim | Lua powered greeter like vim-startify/dashboard-nvim. |
Fuzzy Finder Plugin | nvim-telescope/telescope.nvim | Highly extendable fuzzy finder over lists. |
Session Manager | mhinz/neovim-session-manager | A session manager for Neovim. |
Telescope UI Select | nvim-telescope/telescope-ui-select.nvim | UI extension for telescope to easily select items. |
Keybinding Popup Plugin | folke/which-key.nvim | Displays a popup with possible keybindings. |
Lazy Plugin Manager | folke/lazy.nvim | Modern plugin manager for Neovim (commented out in the code). |
Snippets Plugins | rafamadriz/friendly-snippets | Snippets collection for various programming languages. |
Abstract-cs Theme | Abstract-IDE/Abstract-cs | Colorscheme for Neovim with Tree-sitter support. |
Alignment | junegunn/vim-easy-align | Easy-to-use Vim alignment. |
- Fork it (https://github.com/estebanways/sword-vim/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Sword Vim is MIT Licensed.