Skip to content

Cosydays/vimrc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C/C++ IDE

Introduction

Building vim editor in Linux into an effective C/C++ programming IDE, supporting YouCompleteMe as a code-completion engine.

screenshot

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

  • at least 7.3.598 and Python 2 or Python 3 scripting is supported
  • 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

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.

Keymaps

The <leader> 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
  • <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

Insert mode

  • <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

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
  • <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
  • <F9> Show history of previous yanks, changes and deletes
  • <F12> Format your C family code

Insert mode

  • <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

Visual mode

  • <C-k> Move current line/selections up
  • <C-j> Move current line/selections down

Options

Building Vim from source

  • Install all the following libraries

    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 may be helpful for you.

Contact

If I have any mistakes in grammar or vocabulary, please point out. Thanks!

If you have feature suggestions, please open issues or pull requests.

License

MIT