您的位置:首页 > 其它

vim常用配置及命令

2013-03-29 14:55 183 查看
如果你是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已经变得与众不同了,基本常用的也就这些了,如果有兴趣可以继续根据自己的需要在进行配置

如果你想增加其他新插件可以参考下面两位的




Vim常用插件及其安装

http://paddy-w.iteye.com/blog/910237

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是一个十分强大的编辑器,本人也是刚接触,还在学习中,希望大家也多多指教,共同进步吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: