vimrc
                                
                                 vimrc copied to clipboard
                                
                                    vimrc copied to clipboard
                            
                            
                            
                        A vim configuration (supports Termux)
Deprecated. Moved to https://github.com/husixu1/dotfiles-part.
ABOUT
this is an vim config specified for Linux and Termux (an terminal simulator on Android and iOS) to use it, follow the instructions below
TO USE THIS CONFIG
external dependency
| package | depends on | 
|---|---|
| vim-devicons | nerd-font in system font path | 
| vim-fugitive | git | 
| vim-merginal | git | 
| tagbar | ctags | 
| vim-autoctag | ctags | 
| DoxygenToolKit | doxygen | 
| ctrlsf | ack/silver | 
| vim-autoformat | any formatter (astyle clang-format ... ) | 
| tagbar-markdown | php | 
| vimtex | texlive; vim built with +clientserver | 
| tagbar-markdown | php | 
| vim-livedown | livedown (node pack, npm install -g livedown) | 
manual-installation
- put all directories into your .vim dir
- put vimrc in your home dir
- rename it to .vimrc
- run curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- run vim +PlugInstall
use fonts for powerline in terminal vim to display airline arrows correctly
the installation of powerline/fonts might be very slow
frequently-used key mappings
| plugin | key | mapping | 
|---|---|---|
| Global | ; | <Leader> | 
| Nerdtree | C-n | NerdTreeTabsToggle | 
| Vim-indent-guides | C-\ | IndentGuidesToggle | 
| Tagbar | C-t | TagBarToggle | 
| Syntastic | C-c | SyntasticReset | 
| YouCompleteMe | S-j,C-j,Down | NextCompletion | 
| S-k,C-k,Up | PreviousCompletion | |
| C-Space | OmniCompletion | |
| <Leader>ji | GotoInclude | |
| <Leader>jd | GotoDefinition | |
| <Leader>jD | GotoDeclaration | |
| UltiSnip | Tab | UltiSnipTrigger | 
| AutoPair | C-w | AutoPairsFastWarp | 
| DoxygenToolkit | S-m | GenerateDox | 
| Agit | C-g | ShowAgit | 
| VimShell | C-s | ShowVimShell | 
| EasyMotion | <Leader> | EasyMotionLeader(ELeader) | 
| <ELeader>s | searchOneLetter | |
| <ELeader>S | searchMoreLetters | |
| <ELeader>j | searchUp | |
| <ELeader>k | searchDown | |
| AnyFold(vim buildin) | zm,zM | foldMore, foldMax | 
| zr,zR | reduceFold, unfoldAll | |
| zc,zC | closeFold, closeFoldRecurse | |
| zo,zO | openFold, openFoldRecurse | |
| RainbowParentheses | F9 | LoadRainbowParentheses | 
| F10 | ToggleRainbowParentheses | |
| Quickr-preveiew | <Leader>space | QuickfixPreview | 
| UndoTree | <Leader>u | ToggleUndoTree | 
| CtrlSF | <Leader>/ | CtrlSFPrompt | 
| vimtex | C-q | QueryPackageDocument | 
| Buildin | F1 | PasteToggle | 
| F2 | NewTab | |
| F3 | CloseCurrentTab | |
| F4 | MakeCurrentWindowATab | |
| C-f | OpenFileFinder | |
| S-l | NextTab | |
| S-h | PreviousTab | |
| C-l | MoveTabRight | |
| C-h | MoveTabLeft | |
| <Leader>C-] | CtagJumpAndOpenInNewWindow | |
| z/ | ToggleAutoHighlight | |
| C-q | QueryInZeal(zeal required) | |
frequently used commands
| plugin | command | decription | 
|---|---|---|
| vim-plug | :PlugUpdate | Update Plugins | 
| :PlugClean | Clean Unused Plugins | |
| :PlugInstall | Install Plugins | |
| :PlugUpgrade | Upgrade Vim-plug Itself | |
| ConqueGdb | :Gdb | Start ConqueGdb | 
| Syntastic | :SyntasticCheck | Start SyntasticCheck | 
| :SyntasticToggle | Toggle SyntasticCheck | |
| :SyntasticToggle | Toggle SyntasticCheck | |
| YouCompleteMe | :YcmDebugInfo | When Ycm Has Some Problems | 
| LivedownPreview | :MarkdownPreview | view markdown in browser | 
| vim-autoformat | :Autoformat | auto-formatting the code | 
per-project config
- put a .clang-formatin the project root directory and use:Autoformatcommand to format the code
- put .syntastic_c/.syntastic_cpp/.syntastic_cudain the project root directory and add compiler flags to it so syntastic can use custom flag to compile the file. see vimrc file and:h syntastic-checkersfor details.
YCM config
- 
either-> create your own .ycm_extra_conf.py and put it in ~/.vim/custom 
- 
or-----> use the ycm_extra_conf.py in this repo insted (do not have to change anything) 
- 
in the ~/.vim/plugged/YouCompleteMe dir, run python install.py --helpfor help (usually if you only want C-family complete, runpython install.py --clang-completer; and in Termux, runpython install.py --clang-completer --system-libclang)
- 
once YCM functions normally, it's better to froze it from updating(add 'frozen' to ycm config in .vimrc). Updating YCM is somehow possible to cause a staring failure (fixable, though). 
known issues:
- if Ycm didn't function normally, run :YcmDebugInfo and see corresponding file for debug info.
- if Ycm suffers an shutdown, please recompile the ycm core.
- sometimes use system libclang fix the problem (and it's essential for Temux users)
- if libtinfo missing, install it (from AUR for archlinux users), link it to a correct filename according to the debug info, and recompile ycm core
- if libtinfo is still missing after the yaourt installation, install ncurses5-compat-libs from AUR