用 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 吗?哎,走自己的路,让别人说去吧。

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