vim常用配置及命令

2023-05-16

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


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vim常用配置及命令 的相关文章

  • python 如何将收到的字符串中的编码部分显示为中文

    收到一个字符串 xff0c 中间的中文是以UTF 8编码形式传过来的 xff0c 收到的数据是这样的 xff1a 34 info 34 34 u767b u5f55 u6210 u529f 34 34 status 34 1 34 url
  • C语言printf输出百分号

    在C语言中 xff0c 如何输出百分号呢 xff1f 很简单 xff0c 只要在格式控制符里输入2个 就可以了 xff0c 例如 xff1a include lt stdio h gt int main int a 61 90 printf
  • 跟我一起学【MySql】之——MySql关键字

    下面列出MySQL所有关键字 xff0c 希望给使用MySQL的朋友提供一些参考帮助 ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCA
  • 跟我一起学【数据仓库】之——需要避免的维度建模错误

    1 在事实表中放入文本属性 2 限制使用冗长的描述符以节省空间 3 将层次 xff08 级联的多对一关系序列 xff09 划分为多个维度 4 忽略跟踪维度的变化 合理运用缓慢变化维度的类型 xff0c 或者微型维度 5 使用更多的硬件解决遇
  • 跟我一起学【Powerdesigner】之——导入EXCEL生成逻辑模型

    表结构如图 xff1a 中文表名 英文表名 字段编码 字段名称 字段注释 字段类型 是否主键 是否可空 主键是否自增 user1 用户信息表1 id id id int 10 Y Y Y user1 用户信息表1 name 用户名 用户名
  • SELECT语句中的for update的用法(锁的运用)

    回复1 xff1a 一般FOR UPDATE用在PL SQL的游标里 xff0c 它的作用就是一个行级锁 xff08 对游标里所有的记录 xff09 xff0c 如果其他进程要更新这个游标行级锁里的记录 xff0c 就必须等待当前进程的CO
  • IIC读取:SDA_in SDA_out寄存器设置

    IIC读取语句里的语句 xff1a uchar DAC5571 check void uchar slaveack SDA in SCL H I2C delay slaveack 61 SDA read SCL L I2C delay SD
  • 如何快速的看懂别人的代码

    最近由于公司的一位前辈 xff0c 由于家中之事欲走 xff0c 所以接手了一个公司长期再做的项目 xff0c 自己也略有了解 xff0c 知道这个项目先后经过3人之手的煅炼 xff0c 现在这个交接棒传到了我的手中 xff0c 初见代码
  • 正则表达式匹配URL或者网址

    正则表达 一 正则表达式 xff1a http ftp https w 43 w 43 43 w 64 61 amp amp 43 w 64 61 amp amp 43 匹配 xff1a http regxlib com Default a
  • Python3 logging详解

    Python3中logging详解 官方文档中 xff0c logging的5个层级 xff1a 实例代码 xff1a def logs time prov type log name 61 prov 43 39 39 43 time fi
  • python3爬虫 链接+表格+图片 思路

    左侧部门列表每点击一次都有一个新的js网页出现 xff0c Request URL可以明确看出网址 xff0c 且每个网址都有其规律 xff1a 点击了三个部门 xff0c 返回的网址如下 xff0c 可以看出是有规律的 xff0c 此处d
  • 跟我一起学MongoDB之——可视化工具Compass的简单使用

    首先官方为大家介绍了一下MongoDB Compass的主要功能 xff1a 1 对数据的可视化 2 插入 修改 删除 3 调试 优化 进入Compass首先出现连接界面如下 xff08 此处我使用的是我操作时候的界面状态 xff09 直接
  • sqluldr2 报错ora-24345: A Truncation or null fetch error occurred

    source etc profile source root bash profile unset NLS LANG sqluldr2 user 61 sjgj sjgj 64 10 254 4 196 1521 client query
  • 车牌号校验正则表达式

    一 车牌号校验规则 1 常规车牌号 xff1a 仅允许以汉字开头 xff0c 后面可录入六个字符 xff0c 由大写英文字母和阿拉伯数字组成 如 xff1a 粤B12345 2 武警车牌 xff1a 允许前两位为大写英文字母 xff0c 后
  • 日语学习资料汇总(可下载)

    直播课程推荐 xff1a 妞妞 大家的日语 侧重考级 天易外语 旧版 标准日本语 娜娜 日语讲堂 津波老师 新版标准日本语 爱知 实用日语口语 在直播课程有预告http www fairage com total jsp type 61 1
  • 成熟男人与24岁女孩精彩对白(转)

    烛光晚餐 桌两边 xff0c 坐了男人和女人 我喜欢你 女人一边摆弄着手里的酒杯 xff0c 一边淡淡的说着 我有老婆 男人摸着自己的手上的戒指 我不在乎 xff0c 我只想知道 xff0c 你的感觉 你 xff0c 喜欢我嘛 xff1f
  • jsessionid的困扰

    问题 xff1a 向某银行发送支付请求时 xff0c 如果客户端cookie开启 xff0c 第一次请求时 xff0c 请求地址会自动增加一jsessionid 第二次没有问题 如果客户端cookie关闭 xff0c 无论如何请求地址会自动
  • 2级基本编程问题(—)(C++)

    问题 xff08 1 xff09 时间转换 问题描述 xff1a 给定一个从0秒开始计时的秒数 xff0c 请将其转换为X X X的格式 输入 xff1a 输入一个秒数n xff0c 且这个秒数0 n 86400 输出 xff1a 输出这个
  • 报错<BEA-101017> error:java.net.SocketException解决

    最近项目登录不了 xff0c 报错为 xff1a lt BEA 101017 gt error java net SocketException Connection reset by peer socket write error 最后问
  • 专业IT管理人才必备十大能力

    IT168 技术文章 作为IT技术人员 xff0c 相信没有一个人愿意永远在底层编写程序或做简单的系统维护 经过一段时间的技术和经验的积累 xff0c 很多人都向往更高层的职位 xff0c 但如何能成为一个专业的IT管理人才 xff0c 并

随机推荐