如果你是linux初学者,会发现linux的编程用的IDE较少,没有widows下vc那样编辑器,怎么办呢,当你安装linux之后,好多软件都没有,OMG,这是怎样神奇的系统。还好以前的linux大师,给我们做了很好的铺垫,创造了vim和emacs这两个编辑神器。下面是我自己使用vim的常用配置,环境都是最新的,系统是ubunbtu10.04(直接粘贴到 /etc/vim/vimrc中就可以了):
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " 关闭 vi 兼容模式
set backspace=indent,eol,start " 设定在插入状态用退格键和Delete键可以删除回车符
set whichwrap+=<,>,h,l " 使左右移动键在行首或行尾可以移动到前一行或下一行
syntax on " 自动语法高亮
"colorscheme desert " 配色方案
set wildmenu " 命令行补全增强模式,在输入命令时列出匹配项目
set completeopt=menu,longest,preview " 插入模式下补全功能的显示方式,分别支持弹出菜单式、插入匹配的最长文本、在预览窗口里显示
set pumheight=15 " 插入模式下弹出补全菜单的最大显示项目数
set number " 显示行号
set scrolloff=6 " 光标上下两侧最少保留的屏幕可见行数
set tabstop=4 " 设定 tab 长度为
set softtabstop=4 " 编辑时执行<tab>或<BackSpace>的时候,把<tab>作为空格的数目
set shiftwidth=4 " 设定 cindent、<<、>> 缩进每一步使用的空白数目
set smarttab " 如果打开,行首的<tab>根据shiftwidth值插入。如果关闭,则取决于tapstop等值
set history=200 " 命令行历史记录的行数,可以用上下箭头选择
set nobackup " 覆盖文件时不备份
set noswapfile " 缓冲区不使用交换文件
set autochdir " 会在打开文件、切换/删除缓冲区、打开/关闭窗口等操作时,选择文件所在的目录
set tags=tags;
set ignorecase " 忽略大小写
set smartcase " 如果搜索模式包含大写字母,忽略ignorecase
set nowrapscan " 搜索到文件末尾时,不再回绕到文件首
set incsearch " 输入搜索命令时,实时显示匹配结果
set hlsearch " 搜索时高亮显示被找到的结果
filetype on " 打开文件类型的侦测
filetype plugin on " 打开特定的文件类型允许插件文件的载入
filetype indent on " 为特定的文件载入相应的缩进文件
set autoindent " 打开自动缩进,通常与smartindent同时打开
set smartindent " 智能自动缩进
set iskeyword+=_,$,@,%,#,- " 将这些字符作为关键字,带有这些符号的单词不换行
set showmatch " 插入括号时,短暂的跳转到匹配的对应括号,显示匹配的时间由matchtime决定
set matchtime=3 " 单位是十分之一秒
set matchpairs=(:),{:},[:],<:> " 匹配括号的规则,增加针对html的<>
set selectmode=mouse,key " 指定什么场合开始选择时启用选择模式而不是可视模式
set selection=exclusive " 设定选择区的行为为闭区间,选择的最后一个字符包含在操作范围之内
set linespace=4 " 设置行间距,单位是像素
set shortmess=at " 减少hit-enter屏幕消息提示的次数
"set shortmess+=I " 启动时不显示介绍信息
set cmdheight=2 " 命令行使用的屏幕行数
"set cmdwinheight=2 " 命令行窗口的屏幕行数
set ruler " 显示光标位置的行号和列号
set nosol " 普通模式下光标行间移动时不到行首的第一个非空白,而是尽量在同一列
set list " 制表符显示方式
set listchars=tab:\ \ ,trail:.,extends:>,precedes:< " 制表符显示方式定义:trail为拖尾空白显示字符,extends和precedes分别是wrap关闭时,所在行在屏幕右边和左边显示的指示字符
set laststatus=2 " 最后一个窗口何时有状态栏:0为永不,1为至少两个窗口时,2为总是
set display=lastline " 解决自动换行格式下, 如折行之后高在超过窗口高度看不到最后一行的问题
set mouse=a " 确保在所有模式下识别鼠标
set selection=exclusive
set selectmode=mouse,key
set report=0 " 报告哪些行被修改过
set termencoding=utf-8 " 指定终端使用的编码,在+multi_byte特性下有效
set encoding=utf-8 " 设置vim内部使用的字符编码,应用于缓冲区、寄存器、表达式、viminfo保存的文本等。指定了新建文件时的默认字符编码
" 字符编码列表,编辑已存在文件时依次尝试的编码格式。不用于新文件
set fileencodings=utf-8,cp936,gbk,gb2312
set ambiwidth=double " encoding=utf-8或别的unicode编码时有效,使用ASCII字符两倍的宽度处理此字符类
language messages zh_CN.utf-8 " 解决console和界面的乱码
highlight StatusLine guifg=White guibg=Orange
"当前窗口状态栏颜色
highlight StatusLineNC guifg=LightGrey guibg=LightSlateGrey
" 非当前窗口状态栏颜色
highlight ModeMsg guifg=White guibg=LimeGreen
" 模式消息显示的颜色
" 设置在状态行显示的信息
"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%)\
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
set nobackup
"我不习惯每次都多一个~后缀的备份文件
set background=dark
"让深色的字体高亮显示(例如:注释等)
set incsearch
"搜索时,输入的词句的逐字符高亮
set termencoding=utf-8
"输出到客户终端(Term)采用的编码类型
set clipboard+=unnamed
"与windows共享剪贴板
set laststatus=2
"总是显示状态栏
set smartindent
"为C程序提供自动缩进
set autoindent
"设定 C/C++ 风格自动缩进的选项
set cino=:0g0t0(sus
"设置自动保存
set autowrite
" 保存全局变量
set viminfo+=!
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" C的编译和运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc
" C++的编译和运行
map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc
"不在单词中间断行
set lbr
"打开断行模块对亚洲语言支持
set fo+=mB
"" 在处理未保存或只读文件的时候,弹出确认
set confirm
"状态栏显示目前所执行的指令
set showcmd
"每行超过 n 个字的时候 vim 自动加上换行符用
set textwidth=70
"设置自动折行
set wrap
到这里是不是发现自己的vim已经变得与众不同了,基本常用的也就这些了,如果有兴趣可以继续根据自己的需要在进行配置
如果你想增加其他新插件可以参考下面两位的
http://blog.163.com/wangkangming2008@126/blog/static/7827792820122148624896/
当然其他的配置可以到(http://www.vim.org/scripts/script_search_results.php?order_by=downloads)下载更多的插件
下面我给出我经常使用的vim命令吧,好多人害怕使用linux系统就是因为命令太多,不如window系统,其实不然,这正是linux强大之处,慢慢你就体会到的。
vim最基本的操作不再一一列举了
1、打开多个窗口
打开多个窗口的命令以下几个:
横向切割窗口
:new+窗口名(保存后就是文件名)
:split+窗口名,也可以简写为:sp+窗口名
纵向切割窗口名
:vsplit+窗口名,也可以简写为:vsp+窗口名
2、关闭多窗口
可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
3、窗口切换
快速按ctrl+w+w即可,多按几次是不是又跳回来了
4、窗口大小调整
纵向调整
:ctrl+w + 纵向扩大(行数增加)
:ctrl+w - 纵向缩小 (行数减少)
:res(ize) num 例如::res 5,显示行数调整为5行
:res(ize)+num 把当前窗口高度增加num行
:res(ize)-num 把当前窗口高度减少num行
横向调整
:vertical res(ize) num 指定当前窗口为num列
:vertical res(ize)+num 把当前窗口增加num列
:vertical res(ize)-num 把当前窗口减少num列
5、给窗口重命名
:f file
6、vi打开多文件
vi a b c
:n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
:e filename编辑新文件
:e# 回到刚才编辑的文件
7、文件浏览
:Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器 :e#返回目录
:ls 显示当前buffer情况
8、vi与shell切换
:shell 可以在不关闭vi的情况下切换到shell命令行
:exit 从shell回到vi
复制粘贴yy+p 如果你想粘到网页上可以先选中然后 按 --“+y然后右键粘到网页里即可(+也是组合建)
#复制删除粘贴的操作:按V(shift+v),进入可视模式,jk上下选择需要的行,然后按
y 复制
d 删除
x 剪切
p 粘贴
快速格式化:退出编辑模式之后 按gg在按=,在按shift+g 相当于eclipse中的shift+f 吧
快速注释代码快:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"//",再按Esc,就会全部注释了。
恢复:正常模式下按u恢复或者ctrl+r(与u操作相反)
快速选择:shift+v按照段落选行,ctrl+v是按照块选择
查找::/search_word 当前位置向后查找,:?search_word向前搜索,search_word为你要搜索的单词,你会发现因为原来的配置vim会加亮搜索单词
快速格式化:双击g会跳到开始位置,:$跳到最末尾位置,常模式下按0回到行首,按shift+$跳回行尾
快速替换字符串::%s/old/new/g 替换整个文件中的每个匹配串
编辑模式快速删除一行ctrl+u
快速不全一行ctrl+x ctrl+l有点像emacs命令 快速补全ctrl+n
vim是一个十分强大的编辑器,本人也是刚接触,还在学习中,希望大家也多多指教,共同进步吧!