纯粹个人记录备份而已,如有错误,欢迎指正,更新于2018/5/13
UNIX like系统下用得比较多的编辑器主要是vim
和emacs
,分别有“编辑器之神”和“神的编辑器”的美誉,emacs比较庞大,扩展性强,有人说它是“伪装成编辑器的操作系统”,而vim则是轻量级的编辑器,对于日常的开发维护非常方便,因此接下来要说的也主要是如何将vim打造成一个轻量级的IDE。
安装vim
首先,需要安装vim和gvim(vim的GUI版),我的系统是Debian
,如果你的是其他Linux发行版的系统的话,包名可能会不一样要做适当更改,在终端执行($表示普通用户,#表示超级用户)
$ sudo apt-get install vim vim-gtk
基本配置
安装完成以后,首次打开gvim时,你可能觉得它异常简陋,连行号都不能显示出来,因此需要做些必要的修改使它更好用一些,这个可以通过修改/etc/vim/vimrc(在不同的Linux发行版上全局vimrc的位置也不一样,比如OpenSUSE的在/etc/vimrc)这个文件来实现(需要root权限),以下是我的配置,主要针对Linux
,windows用户需要做一些修改
"vimrc文件修改之后自动加载, Unix
autocmd! bufwritepost .vimrc source %
"设置默认文件编码为utf-8
set encoding=utf-8
set fileencoding=utf-8
"自动判断编码时,依次尝试以下编码
set fileencodings=utf-8,ucs-bom,gbk,cp936,gb2312,gb18030
"设置字体为Source Code Pro
"set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ 13
"set guifont=Powerline\ Consolas\ 13
set guifont=Source\ Code\ Pro\ for\ Powerline\ 13
"修改Leader键为空格键
let mapleader = "\<Space>"
let g:mapleader = "\<Space>"
"设置backspace行为
set backspace=indent,eol,start
"显示行号
set number
"显示标尺
set ruler
"关闭自动备份
set nobackup
"set noswapfile
"在未保存时允许切换缓冲区
set hidden
"开启语法高亮
syntax enable
syntax on
"关闭兼容模式
set nocompatible
"设置命令行模式下的最大历史记录数
set history=200
"设置以unix的格式保存文件
set fileformat=unix
"高亮当前行
set cursorline
"高亮当前列
set cursorcolumn
"始终显示状态栏
set laststatus=2
"只在需要时重绘窗口
set lazyredraw
"使屏幕显示更流畅
set ttyfast
"命令行补全参数
set wildmenu
"设置tab键空4格
set tabstop=4
"将Tab自动转化成空格(需要输入真正的Tab键时,使用<C-V>+Tab),set noet快速关闭这个选项
set expandtab
"退格键一次删掉4个空格
set smarttab
"可视化不可见字符
set listchars=tab:▸\ ,trail:¬,extends:>,precedes:<
set nolist
"空格显示为下划线,tab键不会显示下划线,只对GUI有效
"autocmd ColorScheme * highlight WhiteSpaces gui=undercurl guifg=LightGray | match WhiteSpaces / \+/
"实时搜索
set incsearch
"高亮搜索结果,:noh取消高亮
set hlsearch
"忽略大小写
set ignorecase
"有一个或以上大写字母时仍大小写敏感
set smartcase
"打开正则表达式
set magic
"搜索模式为默认更先进的正则规则
nnoremap / /\v
vnoremap / /\v
"设置忽略的文件
set wildignore=*.o,*.swp,*.bak,*.pyc,*.pyo,*.class,*.zip
set wildignore+=*/.git/*
"显示匹配的括号
set showmatch
"显示当前所处模式
set showmode
"设置右下角显示当前光标位置
set showcmd
set background=dark
"为GUI和Terminal添加不同的设置
set t_Co=256
if has('gui_running')
colorscheme onedark
:cd Projects
else
colorscheme Tomorrow-Night-Eighties
endif
"禁止自动折行
set nowrap
"设置当文件被改动时自动载入
set autoread
"设置退出插入模式后自动保存
set autowrite
"当前目录随着被编辑文件的改变而改变
set autochdir
"允许插件
filetype plugin on
"共享剪贴板
set clipboard+=unnamed
"关闭输入错误的提示声音
set noerrorbells
set novisualbell
set t_vb=
set tm=500
"禁止光标闪烁
set gcr=a:block-blinkon0
"在处理未保存或只读文件的时候,弹出确认
set confirm
"上下移动光标时光标上方和下方至少保留两行
set scrolloff=2
"开启自动缩进,智能缩进
set autoindent
set cindent
set smartindent
set shiftwidth=4
"第80个字符处显示分隔符
set colorcolumn=80
"set textwidth=79
"合并两行中文时,不在中间加空格
set formatoptions+=B
"为特定文件类型载入相关缩进文件
filetype indent on
"gvim自动全屏,vim则设置窗口默认大小为80*32
if has("gui_running")
set lines=