用 Vim 編寫 C++ 程序

前言

最近的日子有些寂寞,不禁讓我想起了多次讓我入門到放棄的 Vim。對着冰冷的理論和命令,難免會讓人感到枯燥。於是,我打算利用任務驅動的形式來進行學習,就從編寫我最愛的C++程序開始吧~

修改配置文件

如果要用最原始的 vim 來編寫代碼還是非常不友好的,所以我們首先要修改 vim 的配置文件,讓它的使用變得友好一些。

~ 目錄下用 ls -a 查看所有文件, 是否存在一個名爲 .vimrc 的文件,這便是 vim 的配置文件。如果沒有也沒有關係,我們可以自己創建一個。

配置文件的內容可以看文末的「附錄」部分,如果你不是很懂 vim 的配置,建議你直接複製粘貼進去。(事實上我也是這樣抄別人的,不要有心裏壓力)

Vim 上的第一個C++程序

改了配置文件,我們的 vim 就好用多了,可以開始寫 C++ 程序了。

$ vim hello.cpp

在 vim 編輯模式下,打上我們在 vim 上的第一個 C++ 程序(hello world 只是慣例,你想打什麼都可以)

#include <iostream>
using namespace std;
int main()
{
	cout << "hello world!" << endl;
	return 0;
}

保存文件後,用 g++ 命令進行編譯

$ g++ hello.cpp

編譯會產生一個 a.out 文件,它就是我們的可執行文件。

$ ls
a.out 	 luogu_2249.cpp

最後,我們用命令 ./a.out 執行該文件,就可以看到控制檯輸出的 hello world。

$ ./a.out
hello world!

好了,你已經學會了用 vim 進行簡單 C++ 編程,但是這樣的 vim 也只是滿足我們最基本的使用需求,連代碼提示都沒有,它絕對談不上好用。如果後面沒放棄的話,再更新安裝 vim 插件相關的文章吧。

附錄

完整的配置文件如下:

" 顯示行號
set number

" 顯示標尺
set ruler

" 歷史記錄
set history=1000

" 輸入的命令顯示出來
set showcmd

" 狀態行顯示的內容
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

" 啓動狀態顯示行1,總是顯示狀態行2
set laststatus=2

" 語法高亮顯示
syntax on
set fileencodings=utf-8,gb2312,gbk,cp936,latin-1
set fileencoding=utf-8
set termencoding=utf-8
set fileformat=unix
set encoding=utf-8

" 配色方案
colorscheme desert
" 指定配色方案是256色
set t_Co=256

set wildmenu

" 去掉有關vi一致性模式,避免以前版本的一些bug和侷限,解決backspace不能使用的問題
set nocompatible
set backspace=indent,eol,start
set backspace=2
" 啓用自動對齊功能,把上一行的對齊格式應用到下一行
set autoindent

" 依據上面的格式,智能的選擇對齊方式,對於類似C語言編寫很有用處
set smartindent

" vim禁用自動備份
set nobackup
set nowritebackup
set noswapfile

" 用空格代替tab
set expandtab

" 設置顯示製表符的空格字符個數,改進tab縮進值,默認爲8,現改爲4
set tabstop=4

" 統一縮進爲4,方便在開啓了et後使用退格(backspace)鍵,每次退格將刪除X個空格
set softtabstop=4

" 設定自動縮進爲4個字符,程序中自動縮進所使用的空白長度
set shiftwidth=4

" 設置幫助文件爲中文(需要安裝vimcdoc文檔)
set helplang=cn

" 顯示匹配的括號
set showmatch

" 文件縮進及tab個數
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
" 高亮搜索的字符串
set hlsearch

" 檢測文件的類型
filetype on
filetype plugin on
filetype indent on

" C風格縮進
set cindent
set completeopt=longest,menu

" 功能設置

" 去掉輸入錯誤提示聲音
set noeb

" 自動保存
set autowrite

" 突出顯示當前行 
set cursorline

" 突出顯示當前列
set cursorcolumn

"設置光標樣式爲豎線vertical bar
" Change cursor shape between insert and normal mode in iTerm2.app
if $TERM_PROGRAM =~ "iTerm"
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
endif

" 共享剪貼板
set clipboard+=unnamed

" 文件被改動時自動載入
set autoread
" 頂部底部保持3行距離
set scrolloff=3

IDE 不香嗎? 用 vim 是要裝 X 嗎?哎,走自己的路,讓別人說去吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章