实际上Vim是一款非常强大的编辑器,只不过它在常见于终端工具内,所以对于一般的程序员或者入门级别的程序员来说不是特别友好。基于最近在配置服务器上的vim,顺便整理了一下适用于小白的vim配置,现在和大家分享一下~
安转部份就不在这里简述了,因为网上有好多可用文档。不管你是MacOS还是CentOS都可以…
但是你要保证你的vim版本在7.0及以上。
你可以输入:vim --version
查看你的vim版本,也可以进入到vim界面在命令模式下,输入:version
来查看
let skip_defaults_vim=1 " 设置跳过加载默认vim配置
set modelines=0 " CVE-2007-2438
set nocompatible " 去除vi一致性,必须要添加
filetype off " 必须要添加(引用vundle插件就要关掉检测文件类型 虽然我也不知道为什么)
set rtp+=~/.vim/bundle/Vundle.vim " 设置包括vundle和初始化相关的runtime path
call vundle#begin() " vundle加载开始
Plugin 'VundleVim/Vundle.vim' " 引入Vundel插件
Plugin 'scrooloose/nerdtree' " 引入NERDTree目录树
Plugin 'plasticboy/vim-markdown' " 语法高亮插件
Plugin 'yianwillis/vimcdoc' " vim中文文档
Plugin 'mhinz/vim-signify' " 修改标记
Plugin 'vim-airline/vim-airline-themes' " 状态栏
call vundle#end() " 必须 你的所有插件需要在这行之前
filetype plugin indent on " 必须 加在vim自带和插件相应的语法和文件类型相关脚本
好,先到这里。会发现我引用了一个名叫Vundle的插件。等下会给大家介绍,现在继续我们的vim配置代码~
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示相关
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
syntax on " 自动语法高亮
set number " 设置显示行号
set relativenumber " 配合number,更高效的行间跳转
"set cursorline " 突出显示当前行
set ruler " 打开状态栏游尺
set mouse=a " 打开鼠标 (所有模式)
color molokai " 设置背景主题
"autocmd InsertLeave * se cul " 用浅色高亮当前行
set showcmd " 在屏幕右下角显示未完成的指令输入
set showmode " 在左下角显示当前的模式名称
set scrolloff=3 " 滚动时屏幕上下至少留3行
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索相关
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set hlsearch " 搜索时高亮显示被找到的文本
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set ignorecase smartcase " 搜索时忽略大小写, 但在有一个或以上大写字母时仍保持对大小写敏感
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set tabstop=2 " 设定tab长度为2
set shiftwidth=2 " 设定 << 和 >> 命令移动时的宽度为2
set softtabstop=2 " 也是缩进
set showmatch " 输入括号时,短暂地跳转到匹配的对应括号
set matchtime=1 " 短暂跳转到匹配括号的时间
set smartindent " 开启新行时使用只能自动缩进
set autoindent " 自动缩进 (使用noautoindent取消设置)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本折叠
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set foldenable " 开始折叠
set nowrap " 指定不折行
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为1
set foldclose=all " 设置为自动关闭折叠
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 实用设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set noeb " 去掉输入错误的提示声音
set confirm " 在处理未保存或只读文件的时候,弹出确认
set wildmenu " 在命令模式下使用Tab以菜单形式显示补全命令
set guioptions+=b " 添加水平滚动条
set history=1000 " 默认存储1000条历史记录
set nobackup " 禁止生成临时文件
set expandtab " 输入tab时自动将其转为空格
到此为止呢,我已经是把vim所能用到的基础配置 列出来啦 (纯手打整理)
接下来介绍上面说过的vundle是个什么玩意
可以说它是一个vim的插件管理工具,就像CentOS中的Yum和MacOS中的homebrew一样,支持安装、更新、展示、卸载等操作。 具体操作命令:
:PluginList - 列出所有已配置的插件
:PluginInstall - 安装插件,追加`!`用以更新或使用 :PluginUpdate
:PluginSearch foo - 搜索 foo; 追加`!`清除本地缓存
:PluginClean - 清除未使用插件,需要确认; 追加`!`自动批准移出未使用插件
一行命令~
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
默认安装在/.vim/bundle/vundle下
vundle#begin
和vundle#end
之间就可以:PluginInstall
vim +PluginInstall +qall
再强调一次 需要安装的插件如下:
call vundle#begin() " vundle加载开始
Plugin 'VundleVim/Vundle.vim' " 引入Vundel插件
Plugin 'scrooloose/nerdtree' " 引入NERDTree目录树
Plugin 'plasticboy/vim-markdown' " 语法高亮插件
Plugin 'yianwillis/vimcdoc' " vim中文文档
Plugin 'mhinz/vim-signify' " 修改标记
Plugin 'vim-airline/vim-airline-themes' " 状态栏
call vundle#end() " 必须 你的所有插件需要在这行之前
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NERDTree Configuration
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap :NERDTree " 将F2设置未开关NERDTree的快捷键
nnoremap :exe 'NERDTreeToggle'
let g:NERDTreeDirArrowExpandable = '+' " 修改树的显示图标
let g:NERDTreeDirArrowCollapsible = '-' " 修改树的显示图标
let g:NERDTreeWinPos='left' " 窗口位置
let g:NERDTreeSize=20 " 窗口尺寸
let g:NERDTreeShowLineNumbers=0 " 窗口是否显示行号
let g:NERDTreeHidden=0 " 不显示隐藏文件
autocmd vimenter * if !argc()|NERDTree|endif " 打开vim时如果没有文件自动打开NERDTree
" 当NERDTree剩下唯一窗口时自动关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"autocmd vimenter * NERDTree " 打开vim时自动打开NERDTree
" 常用命令
" 通过hjkl来移动光标
" o打开关闭文件或目录,如果想打开文件,必须光标移动到文件名
" t在标签页中打开
" s和i可以水平或纵向分割窗口打开文件