- Introduction
- Features
- Requirements
- Installation
- Included Plugins
- Keymaps
- Options
- FAQ
- Contact
- License
Building vim editor in Linux into an effective C/C++ programming IDE, supporting YouCompleteMe as a code-completion engine.
- Automatic download the latest version of libclang and compile the ycm_core library that YCM needs
- One-step install
- Supported all GNU/Linux
- On-demand loading for faster startup time
- Semantic auto-completion
- Syntax checking
- Syntax highlighting for C++11/14
- Preservation of historical records
- Instantly preview markdown files
- More
- vim
7.4.143+
withPython 2
orPython 3
support npm -g install instant-markdown-d
For plugin vim-instant-markdownxdg-utils
For plugin vim-instant-markdownnodejs-legacy
For Debian-based systemswmctrl
Fullscreen needscmake
Compile the ycm_core libraryctags
For plugin tarbarack-grep
For plugin ctrlsf
curl -o - https://raw.githubusercontent.com/hmybmny/vimrc/master/install-vim-plugins | sh
wget -O - https://raw.githubusercontent.com/hmybmny/vimrc/master/install-vim-plugins | sh
I think you should read the docs of these plugins and .vimrc to use them efficiently.
- vim-plug: minimalist plugin manager
- vim-colors-solarized: precision colorscheme
- molokai: port of the monokai theme for TextMate
- spacemacs-theme.vim: Spacemacs-flavoured theme, for use only in true-colour terminals
- vim-polyglot: a collection of 100+ language packs
- ultisnips: ultimate snippet solution
- gundo.vim: visualise your undo tree
- vim-move: move lines and selections up and down
- auto-pairs: insert or delete
[]
,()
,""
etc. in pairs - vim-operator-user: define your own operator easily
- wildfire.vim: smart selection of the closest text object
- fcitx.vim: keep and restore fcitx state (Chinese text input method framework) when leaving/re-entering insert mode
- nerdcommenter: intensely orgasmic commenting
- vim-protodef: pull in C++ function prototypes into implementation files
- vim-instant-markdown: open browser window when editing Markdown
- YouCompleteMe: fast, as-you-type code-completion engine
- tagbar: display tags in a window, ordered by scope
- vim-fswitch: switch between companion source files (e.g.
.h
and.cpp
) - nerdtree: filesystem tree explorer
- vim-fugitive: a Git wrapper
- ctrlp.vim: fuzzy file, buffer, mru, tag, etc. finder
- ctrlsf.vim: search for code and edit it in-place
- minibufexpl.vim: buffer explorer that takes very little screen space
- indentLine: display the indention levels with thin vertical lines
- vim-gitgutter: show a Git diff in the gutter, stage/undo hunks
- ale: as-you-type, asynchronous lint engine
These are not included any more, but you can install them manually if you want.
- vim-easy-align: alignment plugin
- vim-multiple-cursors: true Sublime Text style multiple selections
- vim-clang-format: format C, C++, Obj-C, Java, JavaScript and TypeScript with clang-format
The <leader>
key is ;
;w
Write (save) the file, but don't exit;q
Quit;Q
Quit and throw away changes;p
Paste;hw
Jump to the left window;jw
Jump to the down window;kw
Jump to the up window;lw
Jump to the right window<tab>
Jump to the next window<S-tab>
Jump to the previous window]q
Jump to next record/match in quickfix list[q
Jump to previous record/match in quickfix list<F8>
Change color scheme<F11>
Fullscreen
<C-s>
Write (save) the file, but don't exit<C-h>
Move left<C-j>
Move down<C-k>
Move up<C-l>
move right<F8>
Change color scheme<F11>
Fullscreen
;y
Copy
;fs
Switch between companion source files (e.g. ".h" and ".cpp")]b
Jump to the next buffer[b
Jump to the previous buffer;ud
Toggle Gundo visible<C-f>
Search and split a new window to show search result<C-p>
Open ctrlp window (alternative :CtrlP);md
Launch the preview window for current markdown file;jc
Go to declaration;jd
Go to definition<F2>
Toogle Tagbar visible<F3>
Toogle NERD-Tree visible<F4>
Toogle minibufexpl visble<F12>
Format your C family code
<F2>
Toogle Tagbar visible<F3>
Toogle NERD-Tree visible<F4>
Toogle minibufexpl visble<F9>
Show history of previous yanks, changes and deletes<F12>
Format your C family code
<C-k>
Move current line/selections up<C-j>
Move current line/selections down
-
Install all the following libraries
-
Ubuntu
sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \ python3-dev ruby-dev lua5.3 lua5.3-dev libperl-dev git sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 sudo update-alternatives --install /usr/bin/luac luac /usr/bin/luac5.3
-
openSUSE
zypper in ruby-devel python-devel python3-devel perl-devel \ lua-devel ncurses-devel libX11-devel gtk2-devel xorg-x11-devel
-
-
Remove vim if you have it already
-
Building Vim from source
-
Add/remove the flags above to fit your setup. For example, you can leave out enable-luainterp if you don't plan on writing any Lua.
cd ~ git clone https://github.com/vim/vim.git cd vim ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp \ --enable-pythoninterp \ --with-python-config-dir=/usr/lib/python2.7/config \ --enable-perlinterp \ --enable-luainterp \ --enable-gui=gtk2 --enable-cscope --prefix=/usr make sudo make install
-
Type the following in Vim:
:echo has('python')
. If the output is 1, then the version of Vim with Python support. If it's 0, then get a version of Vim with Python support.
-
Add the following line to your .vimrc.
Plug 'klen/python-mode', { 'for': 'python' }
Install Plugin vim +PlugInstall +qall
Add the following line to your .vimrc.
Plug 'fatih/vim-go', { 'for': 'go' }
Install Plugin vim +PlugInstall +qall
This wiki Building-vim-from-source may be helpful for you.
If you have feature suggestions, please open issues or pull requests.
MIT