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

Releases

No releases published

Packages

No packages published