基础

:e filename     在编辑器中打开一个文件
:w 保存文件
:q 退出vim
:q! 退出但不保存
:x 写文件(如果有做修改)并退出
:sav filename 保存为
. 在正常模式中重复执行上一个变更
5. 重复五次

移动

k or Up Arrow   上移一行
j or Down Arrow 下移一行
e 移动到单词末尾
b 移动到单词开头
0 移动到行首
G 移动到文件末尾
gg 移动到文件开头
L 移动到屏幕底
:59 移动到59行
20| 移动到第20列
% 移动到匹配的括号
[[ 到函数头
[{ 到块开始位置

剪切,复制和粘贴

y   拷贝选中部分到剪贴板
p 粘贴剪贴板中内容
dd 剪切当前行
yy 拷贝当前行
y$ 拷贝到行尾
D 剪切到行尾

搜索

/word           从开头到结尾搜索单词word
?word 从结尾到卡头
* 搜索光标下单词
/\cstring 搜索string或STRING, 大小写不敏感
/jo[ha]n 搜索john 或 joan
/\< the 搜索以the开头的,the, theatre 或 then
/the\> 搜索以the结尾的,the 或 breathe
/\< the\> 搜索the
/\< ¦.\> 搜索所有含有四个字母的
/\/ 搜索fred 但不是alfred 或 frederick
/fred\|joe 搜索fred 或 joe
/\<\d\d\d\d\> 搜索仅有四个数字的
/^\n\{3} 搜索连续3个空行的
:bufdo /searchstr/ 在所有打开buf中搜索
bufdo %s/something/somethingelse/g 在所有打开buf中搜索并替换

替换

:%s/old/new/g           将所有出现的old替换为new
:%s/onward/forward/gi 将所有onward替换为forward,大小写不敏感
:%s/old/new/gc 替换前确认
:2,35s/old/new/g 将第2行到第35行之间的old替换为new
:5,$s/old/new/g 将第5行到文件结尾的old替换为new
:%s/^/hello/g 在每一行开头加入hello
:%s/$/Harry/g 在每一行结尾加入Harry
:%s/ *$//g 删除每行末尾无用空格
:g/string/d 删除所有包含string的行
:v/string/d 删除所有不包含string的行
:s/Bill/Steve/ 替换当前行第一个Bill为Steve
:s/Bill/Steve/g 替换当前行中所有Bill
:%s/Bill/Steve/g 替换文件中所有Bill
:%s/^M//g 删掉DOS保存文件中(^M)
:%s/\r/\r/g Transform DOS carriage returns in returns
:%s#<[^>]\+>##g 删除html标签但是保留文本
:%s/^\(.*\)\n\1$/\1/ 删除所有连续出现过两次的行,保留一行
Ctrl+a 递增光标下的数字
Ctrl+x 递减光标下的数字
ggVGg? 文本转换为 Rot13

大小写

Vu                  整行小写
VU 整行大写
g~~ 整行大小写反转
vEU 单词转为大写
vE~ 单词大小写反转
ggguG 所有文本小写
gggUG 所有文本大写
:set ignorecase 搜索中忽略大小写
:set smartcase 搜索中忽略大小写,除非搜索词中存在大小写字母
:%s/\<./\u&/g 将所有单词首字母大写
:%s/\<./\l&/g 将所有单词首字母小写
:%s/.*/\u& 将每行第一个字母大写
:%s/.*/\l& 将每行第一个字母小写

读写文件

:1,10 w outfile     1到10行内容写到outfile
:1,10 w >> outfile 1到10行内容追加到outfile
:r infile 插入文件内容
:23r infile 插入文件23行的内容

文件浏览器

:e .                打开完整文件浏览器
:Sex 切分窗口,打开文件浏览器
:Sex! 同上,垂直切分
:browse e 图像化文件浏览器
:ls 列出buffers
:cd .. 移到上一层目录
:args 列出文件
:args *.php 打开文件列表
:grep expression *.php 返回包含expression的php文件列表
gf 打开光标下文件名对应的文件

和Unix交互

:!pwd               执行pwd命令,返回结果
!!pwd 执行命令并插入结果到文件中
:sh 临时返回unix
$exit 从unix中返回vim

对齐

:%!fmt              所有行对齐
!}fmt 当前位置所有行对齐
5!!fmt 后五行对齐

Tabs和Windows

:tabnew             创建一个新的tab
gt 展示下一个tab
:tabfirst 展示第一个tab
:tablast 展示最后一个tag
:tabm n(position) 重排tab
:tabdo %s/foo/bar/g 在所有tab中执行一个命令
:tab ball 将所有打开文件放入tab中
:new abc.txt 在新window中编辑abc.txt

窗口分屏

:e filename         在当前窗口中编辑文件
:split filename 切分当前窗口并打开文件(缩写 :sp filename)
ctrl-w up arrow 移到上一个文件
ctrl-w ctrl-w 移到下一个窗口
ctrl-w_ 当前窗口垂直最大化
ctrl-w| 当前窗口水平最大化
ctrl-w= 所有窗口等大小
10 ctrl-w+ 当前窗口增加10行
:vsplit file 竖直切分窗口
:sview file 同:split, 只读模式
:hide 关闭当前窗口
:­nly 关闭出了当前窗口之外的所有窗口
:b 2 打开2号窗口

自动补全

Ctrl+n Ctrl+p (插入模式)  补全单词
Ctrl+x Ctrl+l 补全行
:set dictionary=dict 定义dict为dictionnary
Ctrl+x Ctrl+k 用字典中内容补全

标签

m {a-z}                 在当前位置做标签{a-z}
' {a-z} 移动到标签位置
'' 移动到上一个位置

缩写

:ab mail mail@provider.org      定义mail 作为 mail@provider.org的缩写

文本缩进

:set autoindent         打开自动缩进
:set smartindent 打开自动智能缩进
:set shiftwidth=4 缩进设为4个空格
ctrl-t, ctrl-d 插入模式中缩进/去缩进
>> 缩进
<< 去缩进
=% 缩进括号中的代码
1GVG= 缩进整个文件

语法高亮

:syntax on              打开语法高亮
:syntax off 关闭语法高亮
:set syntax=perl 强制语法高亮

使用Creative Commons BY-NC-ND 3.0条款,转自:http://www.wklken.me/posts/2013/08/17/130-essential-vim-commands.html

[转] 翻译130+VIM基本命令的更多相关文章

  1. vim基本命令

    vim基本命令     1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行 ...

  2. VIM基本命令及自用配置

    VIM基本命令 光标移动 G 最后一行 nG 移动到第n行 n回车 光标下移n行 gg 第一行 查找和替换 /word n 重复前一个查找操作 N 向上查找 :n1,n2s/word1/word2/g ...

  3. vim 基本命令入门

    简介 vim是Linux 系统下类似于Windows的记事本的编辑器. vim 中经常使用的三种模式 一般模式:浏览文件内容. 插入模式:编辑文件内容. 底行模式:进行保存编辑内容,退出等操作. 基本 ...

  4. vim基本命令之剪切复制粘贴替换

    首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了 ...

  5. linux VIM基本命令

    linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续 ...

  6. vim基本命令(转载自网络)

    来源于<Unix初级教程(第四版)>. 命令模式切换到文本输入模式: 键 功能 i 在光标左侧输入文本 I 在当前行的行首输入文本 a 在光标右侧输入文本 A 在当前行的行尾输入文本 o ...

  7. 常用的vi/vim基本命令(持续更新)

    ★删除/复制/粘贴 全部删除:按esc后,然后dG  全部复制:按esc后,然后ggyG  全选高亮显示:按esc后,然后ggvG或者ggVG   按“+p“可将系统全局粘贴板里的内容粘贴进来   y ...

  8. vim基本命令速查表

    来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt ################## ...

  9. Linux之vim基本命令操作

    安装vim(yum -y install vim) 三种工作模式(命令模式.输入模式.编辑模式) 打开文件( vi ) 查找文本( / ) 替换文本 删除文本( dd 删除光标所在行 ) 复制文本 去 ...

随机推荐

  1. fidder 自动保存请求内容

    背景: 因为公司有有app和sdk,这些项目没有对应的接口统计.重构的时候很容易忽略掉.所以对fiddler写了一点代码,能将请求的数据写入到文件或者数据库中.方便统计接口,下次重构的时候,方便统计影 ...

  2. Python守护进程(多线程开发)-乾颐堂

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  3. js运算浮点数

    在js中做小数:9.3+0.3会发现,得到的结果并不是9.6,而是9.600000000000001.这是为什么? Javascript采用了IEEE-745浮点数表示法,这是一种二进制表示法,可以精 ...

  4. [SHELL]:let 命令详解

    [SHELL]:let 命令详解 摘自:https://blog.csdn.net/happygongzhuo/article/details/6819099 let :简单的计算器  语 法let[ ...

  5. Linux 配置nfs

    原文:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html 一.NFS服务简介 NFS 是Network File System的 ...

  6. Word 2010发布博客文章(修正)

    目前大部分的博客作者在写博客这件事情上都会遇到以下3个痛点:1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.2.发布到博客或公众号平台 ...

  7. shell 编程 变量

    转自:http://blog.csdn.net/qq504196282/article/details/52994249 shell之变量和引用 分类:SHELL编程基础 (470)  (0)  举报 ...

  8. WCF服务编程 读书笔记——第1章 WCF基础(1)

    第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Bi ...

  9. Java中一对多映射关系

    通过栗子,一个人可以有多辆汽车 定义人   这个类 人可以有很多辆汽车,类中车属性用数组 class Person{ private String name; private String phone ...

  10. BZOJ 1977 严格次小生成树

    小C最近学了很多最小生成树的算法,Prim算法.Kurskal算法.消圈算法等等.正当小C洋洋得意之时,小P又来泼小C冷水了.小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小 ...