Deprecated. Moved to https://github.com/husixu1/dotfiles-part.
this is an vim config specified for Linux and Termux (an terminal simulator on Android and iOS) to use it, follow the instructions below
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) |
- 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
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) | |
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 |
- put a
.clang-format
in the project root directory and use:Autoformat
command to format the code - put
.syntastic_c
/.syntastic_cpp
/.syntastic_cuda
in 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-checkers
for details.
-
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 --help
for 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).
- 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