Vimrc
example to config vim and use github to sync
Install / Use
/learn @howhow/VimrcREADME
Use github to sync vi config
- Tested on Ubuntu14.04, 16.04 and 18.04
- Only for C and Assembly language development
How to use
git, vim and gtags* must be installed
git clone https://github.com/howhow/vimrc ~/.my_config/vim
cd ~/.my_config/vim
./install.sh build-essential cmake ctags cscope python3.7 silversearcher-ag nodejs npm
NOTE: For older systems (e.g. Ubuntu 14.04) you may run into compilation
issues with cmake. Therefore, install the cmake3 instead:
./install.sh build-essential cmake3 ctags cscope python3.7 silversearcher-ag
- you could clone to anywhere, but I like to save all my configs into one place
- If you have old vim config, install script will ask if you like to backup
- git installation guide
- gtags installtion guide
wget http://tamacom.com/global/global-6.6.2.tar.gz && \
tar -xvzf global-6.6.2.tar.gz && \
cd ./global-6.6.2 && \
./configure && \
make && \
sudo make install && \
cd -
- vim installation guide
- vim version must higher than 8.0
- Please pay attention to vim version and change corresponding
VIMRUNTIMEDIRduring make, eg,
right now vim version already upgrade to v8.2, therefore:make VIMRUNTIMEDIR=/usr/local/share/vim/vim80make VIMRUNTIMEDIR=/usr/local/share/vim/vim82
NOTE: ctags will be redirected to Exuberant Ctags, which without maintenance long time ago, recommend to install Universal Ctags to instead
Integrated plugins
- plugin manager: vim-plug
- git: fugitive, gitgutter, gv
- complete: ~~YouCompleteMe*~~, coc
- status line: airline
- color schemes: gruvbox, solarized, dracula
- syntax checking: ~~syntastic~~, ale
- searching: ~~CrtlP~~,LeaderF, fzf, ack, vim-easymotion
- document: vimtex, ~~slumlord~~
- code: ~~tagbar~~, ~~nerdtree~~, ~~cscopemaps~~, gutentags, gutentags_plus, ultisnips, vim-snippets
*YCM need compile after download, if you like it, please refer to the guide
Some features
- check tab and EOL whitespace
- update tags in async mode by gutentags
Keymaps
| Keymap | Desc |
|--------|------|
| <kbd>space</kbd> | leader |
| <leader> + <kbd>f</kbd> | Open file list |
| <leader> + <kbd>F</kbd> | Open current file function list |
| <leader> + <kbd>a</kbd> | Grep current word under cursor |
| <kbd>j</kbd><kbd>j</kbd>/<kbd>h</kbd><kbd>h</kbd>/<kbd>h</kbd><kbd>j</kbd>/<kbd>j</kbd><kbd>h</kbd> | Exit insert mode |
| <leader> + <kbd>3</kbd> | Open quickfix window |
| <leader> + <kbd>4</kbd> | Close quickfix window |
| <leader> + <kbd>5</kbd> | Previous quickfix item |
| <leader> + <kbd>6</kbd> | Next quickfix item |
| <leader> + <kbd>7</kbd> | Previous file buffer |
| <leader> + <kbd>8</kbd> | Next file buffer |
| <leader> + <kbd>c</kbd><kbd>s</kbd> | Find symbol (reference) under cursor |
| <leader> + <kbd>c</kbd><kbd>g</kbd> | Find symbol definition under cursor |
| <leader> + <kbd>c</kbd><kbd>d</kbd> | Functions called by this function |
| <leader> + <kbd>c</kbd><kbd>c</kbd> | Functions calling this function |
| <leader> + <kbd>c</kbd><kbd>t</kbd> | Find text string under cursor |
| <leader> + <kbd>c</kbd><kbd>e</kbd> | Find egrep pattern under cursor |
| <leader> + <kbd>c</kbd><kbd>f</kbd> | Find file name under cursor |
| <leader> + <kbd>c</kbd><kbd>i</kbd> | Find files #including the file name under cursor |
| <leader> + <kbd>c</kbd><kbd>a</kbd> | Find places where current symbol is assigned |
| <leader> + <kbd>e</kbd> | Strip trailing white space |
| <leader> + <kbd>w</kbd><kbd>n</kbd> | Find trailing white space |
| <leader> + <kbd>t</kbd><kbd>n</kbd> | Find tab |
TODO
- [x] Compile and install YCM in install.sh
- [x] Migrate all plugins to async in order to fast vi speed
- [ ] Support python project
- [ ] More error handling in install.sh
LICENSE
MIT
Related Skills
node-connect
354.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
