最近的日子有些寂寞,不禁让我想起了多次让我入门到放弃的 Vim。对着冰冷的理论和命令,难免会让人感到枯燥。于是,我打算利用任务驱动的形式来进行学习,就从编写我最爱的C++程序开始吧~
如果要用最原始的 vim 来编写代码还是非常不友好的,所以我们首先要修改 vim 的配置文件,让它的使用变得友好一些。
在 ~
目录下用 ls -a
查看所有文件, 是否存在一个名为 .vimrc
的文件,这便是 vim 的配置文件。如果没有也没有关系,我们可以自己创建一个。
配置文件的内容可以看文末的「附录」部分,如果你不是很懂 vim 的配置,建议你直接复制粘贴进去。(事实上我也是这样抄别人的,不要有心里压力)
改了配置文件,我们的 vim 就好用多了,可以开始写 C++ 程序了。
$ vim hello.cpp
在 vim 编辑模式下,打上我们在 vim 上的第一个 C++ 程序(hello world 只是惯例,你想打什么都可以)
#include
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 = "\]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\]50;CursorShape=0\x7" " Block in normal mode
endif
" 共享剪贴板
set clipboard+=unnamed
" 文件被改动时自动载入
set autoread
" 顶部底部保持3行距离
set scrolloff=3
IDE 不香吗? 用 vim 是要装 X 吗?哎,走自己的路,让别人说去吧。