vim
所属分类:代码编辑器
开发工具:Vim Script
文件大小:174KB
下载次数:0
上传日期:2018-03-10 10:20:13
上 传 者:
sh-1993
说明: 在Linux中将vim编辑器构建成一个有效的C++编程IDE,支持YouCompleteMe
(Building vim editor in Linux into an effective C C++ programming IDE, YouCompleteMe supported)
文件列表:
LICENSE (1063, 2018-03-10)
install-vim-plugins (404, 2018-03-10)
screenshot.png (172614, 2018-03-10)
vimrc (12915, 2018-03-10)
ycm_extra_conf.py (5143, 2018-03-10)
C/C++ IDE
===============================================
- [Introduction](https://github.com/kingofctrl/vim.cpp/blob/master/#introduction)
- [Features](https://github.com/kingofctrl/vim.cpp/blob/master/#features)
- [Requirements](https://github.com/kingofctrl/vim.cpp/blob/master/#requirements)
- [Installation](https://github.com/kingofctrl/vim.cpp/blob/master/#installation)
- [Via curl](https://github.com/kingofctrl/vim.cpp/blob/master/#via-curl)
- [Via wget](https://github.com/kingofctrl/vim.cpp/blob/master/#via-wget)
- [Included Plugins](https://github.com/kingofctrl/vim.cpp/blob/master/#included-plugins)
- [Colors](https://github.com/kingofctrl/vim.cpp/blob/master/#colors)
- [Editing](https://github.com/kingofctrl/vim.cpp/blob/master/#editing)
- [Navigation](https://github.com/kingofctrl/vim.cpp/blob/master/#navigation)
- [View](https://github.com/kingofctrl/vim.cpp/blob/master/#view)
- [Linting](https://github.com/kingofctrl/vim.cpp/blob/master/#linting)
- [Formerly included plugins](https://github.com/kingofctrl/vim.cpp/blob/master/#formerly-included-plugins)
- [Keymaps](https://github.com/kingofctrl/vim.cpp/blob/master/#keymaps)
- [Basic](https://github.com/kingofctrl/vim.cpp/blob/master/#basic)
- [Normal mode](https://github.com/kingofctrl/vim.cpp/blob/master/#normal-mode)
- [Insert mode](https://github.com/kingofctrl/vim.cpp/blob/master/#insert-mode)
- [Visual mode](https://github.com/kingofctrl/vim.cpp/blob/master/#visual-mode)
- [Plugins](https://github.com/kingofctrl/vim.cpp/blob/master/#plugins)
- [Normal mode](https://github.com/kingofctrl/vim.cpp/blob/master/#normal-mode-1)
- [Insert mode](https://github.com/kingofctrl/vim.cpp/blob/master/#insert-mode-1)
- [Visual mode](https://github.com/kingofctrl/vim.cpp/blob/master/#visual-mode-1)
- [Options](https://github.com/kingofctrl/vim.cpp/blob/master/#options)
- [Building vim from source](https://github.com/kingofctrl/vim.cpp/blob/master/#building-vim-from-source)
- [Using vim as a python IDE](https://github.com/kingofctrl/vim.cpp/blob/master/#using-vim-as-a-python-ide)
- [Using vim as a Go IDE](https://github.com/kingofctrl/vim.cpp/blob/master/#using-vim-as-a-go-ide)
- [FAQ](https://github.com/kingofctrl/vim.cpp/blob/master/#faq)
- [Contact](https://github.com/kingofctrl/vim.cpp/blob/master/#contact)
- [License](https://github.com/kingofctrl/vim.cpp/blob/master/#license)
Introduction
-----
Building vim editor in Linux into an effective C/C++ programming IDE, supporting [YouCompleteMe](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/Valloric/YouCompleteMe) as a code-completion engine.
Features
-----
- 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
Requirements
-----
- vim `7.4.143+` with `Python 2` or `Python 3` support
- `npm -g install instant-markdown-d` For plugin vim-instant-markdown
- `xdg-utils` For plugin vim-instant-markdown
- `nodejs-legacy` For Debian-based systems
- `wmctrl` Fullscreen needs
- `cmake` Compile the ycm_core library
- `ctags` For plugin tarbar
- `ack-grep` For plugin ctrlsf
Installation
-----
### Via curl
curl -o - https://raw.githubusercontent.com/hmybmny/vimrc/master/install-vim-plugins | sh
### Via wget
wget -O - https://raw.githubusercontent.com/hmybmny/vimrc/master/install-vim-plugins | sh
Included Plugins
-----
I think you should read the docs of these plugins and .vimrc to use them efficiently.
- [vim-plug](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/junegunn/vim-plug): minimalist plugin manager
### Colors
- [vim-colors-solarized](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/altercation/vim-colors-solarized): precision colorscheme
- [molokai](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/tomasr/molokai): port of the monokai theme for TextMate
- [spacemacs-theme.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/colepeters/spacemacs-theme.vim): Spacemacs-flavoured theme, for use only in true-colour terminals
- [vim-polyglot](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/sheerun/vim-polyglot): a collection of 100+ language packs
### Editing
- [ultisnips](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/SirVer/ultisnips): ultimate snippet solution
- [gundo.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/sjl/gundo.vim): visualise your undo tree
- [vim-move](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/matze/vim-move): move lines and selections up and down
- [auto-pairs](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/jiangmiao/auto-pairs): insert or delete `[]`, `()`, `""` etc. in pairs
- [vim-operator-user](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/kana/vim-operator-user): define your own operator easily
- [wildfire.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/gcmt/wildfire.vim): smart selection of the closest text object
- [fcitx.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/lilydjwg/fcitx.vim): keep and restore fcitx state (Chinese text input method framework) when leaving/re-entering insert mode
- [nerdcommenter](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/scrooloose/nerdcommenter): intensely orgasmic commenting
- [vim-protodef](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/derekwyatt/vim-protodef): pull in C++ function prototypes into implementation files
- [vim-instant-markdown](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/suan/vim-instant-markdown): open browser window when editing Markdown
- [YouCompleteMe](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/Valloric/YouCompleteMe): fast, as-you-type code-completion engine
### Navigation
- [tagbar](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/majutsushi/tagbar): display tags in a window, ordered by scope
- [vim-fswitch](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/derekwyatt/vim-fswitch): switch between companion source files (e.g. `.h` and `.cpp`)
- [nerdtree](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/scrooloose/nerdtree): filesystem tree explorer
- [vim-fugitive](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/tpope/vim-fugitive): a Git wrapper
- [ctrlp.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/ctrlpvim/ctrlp.vim): fuzzy file, buffer, mru, tag, etc. finder
- [ctrlsf.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/dyng/ctrlsf.vim): search for code and edit it in-place
- [minibufexpl.vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/fholgado/minibufexpl.vim): buffer explorer that takes very little screen space
### View
- [indentLine](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/Yggdroot/indentLine): display the indention levels with thin vertical lines
- [vim-gitgutter](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/airblade/vim-gitgutter): show a Git diff in the gutter, stage/undo hunks
### Linting
- [ale](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/w0rp/ale): as-you-type, asynchronous lint engine
### Formerly included plugins
These are not included any more, but you can install them manually if you want.
- *[vim-easy-align](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/junegunn/vim-easy-align): alignment plugin*
- *[vim-multiple-cursors](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/terryma/vim-multiple-cursors): true Sublime Text style multiple selections*
- *[vim-clang-format](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/rhysd/vim-clang-format): format C, C++, Obj-C, Java, JavaScript and TypeScript with clang-format*
Keymaps
-----
The `` key is `;`
### Basic
#### Normal mode
- `;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
- `` Jump to the next window
- `` Jump to the previous window
- `]q` Jump to next record/match in quickfix list
- `[q` Jump to previous record/match in quickfix list
- `` Change color scheme
- `` Fullscreen
#### Insert mode
- `` Write (save) the file, but don't exit
- `` Move left
- `` Move down
- `` Move up
- `` move right
- `` Change color scheme
- `` Fullscreen
#### Visual mode
- `;y` Copy
### Plugins
#### Normal mode
- `;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
- `` Search and split a new window to show search result
- `` Open ctrlp window (alternative :CtrlP)
- `;md` Launch the preview window for current markdown file
- `;jc` Go to declaration
- `;jd` Go to definition
- `` Toogle Tagbar visible
- `` Toogle NERD-Tree visible
- `` Toogle minibufexpl visble
- `` Format your C family code
#### Insert mode
- `` Toogle Tagbar visible
- `` Toogle NERD-Tree visible
- `` Toogle minibufexpl visble
- `` Show history of previous yanks, changes and deletes
- `` Format your C family code
#### Visual mode
- `` Move current line/selections up
- `` Move current line/selections down
### Options
#### Building vim from source
- 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.
#### Using vim as a python IDE
Add the following line to your .vimrc.
Plug 'klen/python-mode', { 'for': 'python' }
Install Plugin `vim +PlugInstall +qall`
#### Using vim as a Go IDE
Add the following line to your .vimrc.
Plug 'fatih/vim-go', { 'for': 'go' }
Install Plugin `vim +PlugInstall +qall`
FAQ
-----
### Can't build vim correctly
This wiki [Building-vim-from-source](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source) may be helpful for you.
LINKS
-----
- [vim](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/vim/vim)
- [use_vim_as_ide](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/yangyangwithgnu/use_vim_as_ide)
- [dotfiles](https://github.com/kingofctrl/vim.cpp/blob/master/https://github.com/junegunn/dotfiles)
Contact
-----
If you have feature suggestions, please open [issues](https://github.com/kingofctrl/vim.cpp/blob/master/#https://github.com/hmybmny/vimrc/issues) or [pull requests](https://github.com/kingofctrl/vim.cpp/blob/master/#https://github.com/hmybmny/vimrc/pulls).
License
-----
MIT
近期下载者:
相关文件:
收藏者: