vim常用配置及命令

来源:互联网 发布:世界各国社交软件 编辑:程序博客网 时间:2024/05/16 11:12

        如果你是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是一个十分强大的编辑器,本人也是刚接触,还在学习中,希望大家也多多指教,共同进步吧!


原创粉丝点击