Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wolandark/wim
This is a Vim configuration that gets you a similar experience as a full-featured IDE. This is accomplished using native vim features with the help of some plugins.
https://github.com/wolandark/wim
ide vim vim-configuration vim9 vimrc
Last synced: 7 days ago
JSON representation
This is a Vim configuration that gets you a similar experience as a full-featured IDE. This is accomplished using native vim features with the help of some plugins.
- Host: GitHub
- URL: https://github.com/wolandark/wim
- Owner: wolandark
- License: agpl-3.0
- Created: 2022-06-21T16:49:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-11-09T18:03:52.000Z (about 1 month ago)
- Last Synced: 2024-11-29T02:55:14.492Z (23 days ago)
- Topics: ide, vim, vim-configuration, vim9, vimrc
- Language: Vim Script
- Homepage:
- Size: 6.75 MB
- Stars: 334
- Watchers: 5
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Wim News
## Version 3.3 has been released with great improvements## Feature List
Expand Feature List- Clean installation. Everything will go where they belong, under `$HOME/.vim/`
- Automatic Plugin Installation
- Plugins for LSP, completion, snippets, colors, web development, Git, usability, enhancements, jumping around, utility, integration, etc.
- Vimwiki configuration
- Wim ships with a default vimwiki wiki file that you can read anytime inside Wim.
- Execute python, bash, js, go files without leaving Vim.
- Set the encoding to UTF-8.
- Auto save toggle
- Theme setup
- Catppuccin Mocha theme with true color support and GUI font configuration.
- Cursor shape configuration for different modes.
- Startify configuration
- Customized Startify start screen with a custom header, footer, and bookmarks.
- Clipboard configuration
- Uses the system clipboard for copy-paste.
- Remember cursor position
- Remembers the cursor position in files.
- Persistent undo history
- Sets up persistent undo history with a custom directory.
- Various sane vim settings
- Vim settings like autoindent, ignorecase, number, relativenumber, etc.
- Netrw configuration
- Configures netrw with hidden dotfiles and other settings.
- Lightline statusbar
- Lightline status bar with a custom theme and components.
- Spell checking
- spell checking with custom mappings and highlights.
- Bilingual configuration with easy layout changing inside Vim.
- hidden ZWNJ characters by default for languages like Persian.
- Custom mappings
- custom key mappings for various actions.
- Split navigation
- key mappings for split window navigation and resizing.
- Floaterm configuration
- floaterm plugin with custom key mappings and settings for executing various languages inside Vim.
- Gitgutter configuration
- GitGutter signs for added, modified, and removed lines.
- Tagbar configuration
- Tagbar with a custom ctags binary path.
- Terminal mappings
- Sets up key mappings for terminal usage within Vim.
- Runtime macros
- Load custom runtime macros for various functionalities such as justification, emojis and matchit.
- Ultisnips configuration
- UltiSnips with custom key bindings for snippet expansion and navigation.
- Clever-f configuration
- Clever-F plugin with custom settings for enhanced f/F/t/T motions.
- Disable unnecessary internal plugins
- Disabled several built-in Vim plugins to optimize startup time.
- coc.nvim configuration
- coc.nvim for autocompletion, diagnostics, and other LSP s.
- coc global extensions
- Installs and configures various coc.nvim extensions for different languages and functionalities.
- coc-explorer configuration
- coc Explorer as the file explorer with icons and customizations.
- coc-marketplace for coc extensions installation with fuzzy matching.
- Navigation mappings
- key mappings for navigating definitions, type definitions, implementations, references, and diagnostics using coc.nvim.Older Versions
#### Version 3.1 has been released
- Improved style and workflow
- Cleaned up the config
- Corrections on Coc.nvim's behavior
- and many more ...#### Version 3.2 has been released
- Replaced vim-css plugin with vim-hexokinase due to vim-css's inability to highlight colors in C files properly (you need go for this new plugin which the installation script will take care of)
- Improved easy motion bindings
- Added Catpuccino theme
- Updated and improved the installation script
# Intro
The purpose of this project is to not only provide an IDE-like vimrc, but also to teach you how it is constructed. This project tries to maintain a fairly small `vimrc` and provide a **great out of the box experience** as well serving as a ground for further customization.
# Dependencies
- Vim 9.0 or later with huge features.
- Note: This config will definitely work with Vim 8.0 and later, but don't miss out on the great features of Vim 9.1! Grab the latest Vim!
- Nodejs
- npm**Example:**
Debian:
`sudo apt install nodejs npm`
Arch:
`sudo pacman -S nodejs npm`# Installation
### Method I (Recommended)
After installing the dependencies, clone the repo and run the `symlink.sh` script. Then simply wait for the setup to complete.
**Tl;Dr:**
- Install Dependencies
- Clone This Repo ` git clone https://github.com/wolandark/wim.git`
- cd Into The Cloned Repo `cd wim`
- Run the `symlink.sh` script `./symlink.sh`This method enables you to update Wim without having to clone the repo again or
run the install script. Simply `git pull` every once in a while and as long as
you don't mess up the symlinks, you won't have to do anything else. **If** you
happen to mess up the symlinks, just run the update.sh script that will be
generated after the first time of running the `symlink.sh` script.#### Watch it work
https://github.com/wolandark/wim/assets/107309764/bfcc50df-684f-40ee-8bdc-a27b1bb65cf8This is recorded on Devuan (in case that matters).
### Method II
After installing the dependencies, run the `install.sh` script. The script is **safe** and works sudo-less.
```
bash <(curl -s https://raw.githubusercontent.com/wolandark/wim/master/install.sh)
```**Tl;Dr:**
- Install Dependencies
- Run the `install.sh` Using Curl#### Watch it work
https://github.com/wolandark/wim/assets/107309764/40c70e11-6a5a-4fcc-a0b2-4340316d8463This is recorded on Devuan (in case that matters).
# Some of the features
**See the exhaustive feature list above**
- Out of the box plugin installation
- Out of the box LSP setup for HTML, CSS, JS, TS, Bash and MORE if you want it!
- Tab Completion and snippets for fast coding
- Thoroughly documented in build-it wiki (vw to access it anytime!)
- Easy tab and split navigation
- Start Screen with bookmarks and file history
- Beautiful catpuccino and base16 colorschemes
- Customized Lighline statusline
- Customizability! It is lightweight and extensible and FAST!# Notes
- Make sure to setup your $TERM variable properly. On Unix and Unix-like systems the $TERM must report `xterm-256color`. See [this](https://github.com/wolandark/wim/wiki#how-to-setup-term) wiki note.
- Some terminals hold unto your Ctrl or Alt or shift key for their own functions. It's up to you to use a sane terminal emulator!
- This config has been tested on various GNU+Linux distros as well as MacOS, FreeBSD and Windows, but official support will only be provided for GNU+Linux distros.Notes for Windows users
Make sure you have `nodejs` and `npm` in your `PATH` and that you have `curl` installed.
You have to manually install `fzf` from the official repo and remove the `Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }` line from `wim-vim`. (Yes because you're on windows you must suffer!)
Clone the repo and move the `wim-vim` file under `C:\Users\username\vimfiles\vimrc`. Make sure to rename it to `vimrc`. Copy over the `coc-settings.json`, `cheat40.txt` and the whole `vimwiki` directory also under the aforementioned path.Then simply start Vim and wait for the installation to finish.
Notes for Mac users
If you plan to use Vim from the terminal, FOR THE LOVE OF CHRIST USE ITERM!
# Screenshots
![image](https://github.com/wolandark/wim/assets/107309764/743a4d18-0218-4318-b9c8-b9d85aa3b4ee)
Startify Dashboard
Neat UI
Diagnostics
Floating Terminal
Instal Any LSP Extension
Shortcuts Cheatsheet
Peekabo For Registers
Jump Anywhere
Hover Dictionary
# Usage
Once the installation is finished, launch vim and enter your wiki index by
issuing `vw` (leader means space) in normal mode. Then open the Wim
wiki page and read at your own leisure.You can use Vim as you normally would and gradually learn about the features of Wim's config,
and the plugins it comes with.Check out the [wiki](https://github.com/wolandark/wim/wiki) which has more information than the integrated wiki and will be updated more regularly.
Any time you feel lost, remember `:Cheat40` and
`:Maps` are your best friends, after the wiki of course 😉.# Table of Keybindings
_(leader is the space key)_CoC LSP Keybindings
| Keys | Function |
| -------------- | ----------------------------------------- |
| gd | Jump To Definition |
| gy | Type Definition |
| gi | Implementation |
| gr | References |
| [g | Diagnostics Prev |
| ]g | Diagnostics Next |
| \ca | Code Action |
| \f | Format Selected Code |
| \? | diagnosticInfo |
| K | Show Hover Documentation |
| \rc | Restart CoC |Misc Keybindings
| Keys | Function |
| -------------- | ----------------------------------------- |
| \ | Turn on Spell Checking |
| \ | Compile and Run Basic C Code |
| \ | Execute Bash, Python, Nodejs & Go Files |
| gs | Fix Spelling To The First Immediate Match |
| \\ | Turn Off Search Highlights |
| \a | Auto Save Toggle |
| \\t | FloatermToggle |
| \M | Maps |
| \ | Buffer Next |
| \ | Buffer Previous |
| \| Buffer Delete |
| \\ | Border Around Current Line Using Toilet |
| \e | File Explorer |
| \T | New Tab |
| \mk | Make View |
| \i | Startify Dashboard |
| \S | Add Empty Line Above & Below Current Line |
| \[ | Add Empty Line Above |
| \] | Add Empty Line Below |
| \w | Save |
| \so | Save & Source Buffer |
| \k | Move Line Up |
| \j | Move Line Down |
| K | Move Line Up In Visual Mode |
| J | Move Line Down In Visual Mode |
| jj | \ |
| \pli | PlugInstall |
| \plc | PlugClean |
| \plu | PlugUpdate |
| \pld | PlugUpgrade |Split Navigation
| Key | Function |
| ----------- | ------------------------ |
| \ | Focus Left Split |
| \ | Focus Bottom Split |
| \ | Focus Top Split |
| \ | Focus Right Split |
| \ | Focus Left Split |
| \ | Focus Bottom Split |
| \ | Focus Top Split |
| \ | Focus Right Split |
| \R | Rotate Window Up/Left |
| \r | Rotate Window Down/Right |
| \ | Resize Split Right |
| \ | Resize Split Left |
| \ | Resize Split Up |
| \ | Resize Split Down |Tabs
| Key | Function |
| -------------- | ------------------------------ |
| \ | Tab Previous |
| \ | Tab Next |
| \1..9 | Go To Corresponding Tab Number |
| \0 | Tab Last |
| \x | Tab Close |FZF
Other than
:Colors
and:Buffers
, the rest of these are commented out. You can enable them at your will.| Key | Function |
| ------------- | -------- |
| \c | Colors |
| \b | Buffers |
| \ff | Files |
| \W | Windows |
| \h | History |
| \hc | History |
| \rg | Ripgrep |
| \li | Lines |
| \bli | BLines |
| \ma | Marks |
| \sn | Snippets |
| \com | Commands |
| \ag | Ag |
| \tag | Tags |Aligning Text
| Key | Function |
| ----- | ----------------- |
| \\\ta | Tabularize [char] |Enuch Shell Commands
Other than
:Chmod
, the rest of these are commented out. You can enable them at your will.| Key | Function |
| ------------- | --------- |
| \ch | Chmod +x |
| \suw | SudoWrite |
| \sue | SudoEdit |
| \rm | Remove |
| \del | Delete! |
| \mv | Move |
| \dup | Duplicate |
| \mkd | Mkdir |Floterm
| Key | Function |
| ----------- | ---------------------- |
| \t | FloatermToggle |
| \q | FloatermKill |
| \n | FloatermNext |
| \p | FloatermPrev |
| \v | vifm Inside FloaTerm |
| \ra | ranger Inside FloaTerm |
| \\\tr | Terminal Right |
| \\\tb | Terminal Bottom |
| \rg | Run Go In Terminal |
| \rb | Run Bash In Terminal |
| \rj | Run Nodejs In Terminal |
| \rp | Run Python In Terminal |
| \lf | Lf |Terminal
| Key | Function |
| ----------- | ------------------------------------------ |
| \' | Vim's Terminal |
| \l | Clear Terminal In the Background (For F12) |
| \ | Focus Bottom |
| \ | Focus Top |
| \ | Focus Bottom |
| \ | Focus Top |Snippets
| Key | Function |
| ------- | --------------------------------------------- |
| \ | Expand Snippet & Jump Forward In Placeholders |
| \ | Jump Backward In Placeholders |
| \ | List Snippets |bilingual
| Key | Function |
| ------- | --------------------------- |
| \ | SwitchKeymap In Insert Mode |
| \ | SwitchKeymap In Normal Mode |Unimpaired
#### Most Useful Unimpaired Mappings.
Refer to the [official guide](https://github.com/tpope/vim-unimpaired/blob/master/doc/unimpaired.txt) for more
| Key | Function |
| ---------- | ------------------------------------------------------ |
| [b | :bprevious |
| ]b | :bnext |
| [B | :bfirst |
| ]B | :blast |
| [a | :previous |
| ]a | :next |
| [A | :first |
| ]A | :last |
| [\ | Add [count] blank lines above the cursor. |
| ]\ | Add [count] blank lines below the cursor. |
| [e | Exchange the current line with [count] lines above it. |
| ]e | Exchange the current line with [count] lines below it. |
Consider Supporting the project
BTC
bc1q7tr3znnrsqq85kalk5zedak9mgn9u3ly849t8z
ETH
0x28a60D7429a2DFdf6b009261D3814cA182B34Bb2
Monero
0xd84c96dDa2E6f9ee9DD0439F6F7812c5b8869fE4
Doge
DJKBgAEQ7n5GyozM8jqmGbxnhcH6U2V8hV
Tether
0x28a60D7429a2DFdf6b009261D3814cA182B34Bb2
Tron
TX8mVZajyy7cmH9vsREyAMPjgtRu23ZmxJ
ADA
addr1qxhv2rfrs37qvs0cllfcnu0rd83wre609s74aufkd82da9528v7xq34usds6t8sdt7zjy0hvkcwdfnp9jwacdn0kwuesatvjx4
Avalanche
0x28a60D7429a2DFdf6b009261D3814cA182B34Bb2FAQ
Whats with the name?
Woland's Vim = Wim. Get it? 😉What features does Wim offer?
- Maintenance, extensibility and customizability!
- Easy LSP setup, completion, intellisense etc ...
- Easy tab and split navigation
- Start Screen with bookmarks and file history
- Beautiful built in colorschemes
- Thorough Docs!
- See the exhaustive feature list above for more in depth informationCan I expect support?
Yes! Just ask and I will answer. When asking however, provide proper information so that I can help you
Why didn't you use Neovim like everyone else?
Because Vim is the one I use and imo Vim is better!Will you make custom vimrc configurations?
[Contact me](https://t.me/Wolandarkside) at Telegram or [Email](https://img.shields.io/badge/ProtonMail-8B89CC?style=for-the-badge&logo=protonmail&logoColor=white) me.
Are you open to collaborations?
Of course! All collaborations and contributions as well as issues etc are welcomed!
# Contribution Guide
Please follow contribution conventions when submiting pull requests. See [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) for more information.
[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/wolandarkside)
[![Protonmail](https://img.shields.io/badge/ProtonMail-8B89CC?style=for-the-badge&logo=protonmail&logoColor=white)](mailto:[email protected])