前言
最近的日子有些寂寞,不禁讓我想起了多次讓我入門到放棄的 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 嗎?哎,走自己的路,讓別人說去吧。