[转] 翻译130+VIM基本命令
基础
: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基本命令的更多相关文章
- vim基本命令
		vim基本命令 1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行 ... 
- VIM基本命令及自用配置
		VIM基本命令 光标移动 G 最后一行 nG 移动到第n行 n回车 光标下移n行 gg 第一行 查找和替换 /word n 重复前一个查找操作 N 向上查找 :n1,n2s/word1/word2/g ... 
- vim 基本命令入门
		简介 vim是Linux 系统下类似于Windows的记事本的编辑器. vim 中经常使用的三种模式 一般模式:浏览文件内容. 插入模式:编辑文件内容. 底行模式:进行保存编辑内容,退出等操作. 基本 ... 
- vim基本命令之剪切复制粘贴替换
		首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了 ... 
- linux VIM基本命令
		linux VIM命令: vim 在命令行中输入vim,进入vim编辑器 Esc 退出i(插入)命令进行其他命令使用 :sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续 ... 
- vim基本命令(转载自网络)
		来源于<Unix初级教程(第四版)>. 命令模式切换到文本输入模式: 键 功能 i 在光标左侧输入文本 I 在当前行的行首输入文本 a 在光标右侧输入文本 A 在当前行的行尾输入文本 o ... 
- 常用的vi/vim基本命令(持续更新)
		★删除/复制/粘贴 全部删除:按esc后,然后dG 全部复制:按esc后,然后ggyG 全选高亮显示:按esc后,然后ggvG或者ggVG 按“+p“可将系统全局粘贴板里的内容粘贴进来 y ... 
- vim基本命令速查表
		来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt ################## ... 
- Linux之vim基本命令操作
		安装vim(yum -y install vim) 三种工作模式(命令模式.输入模式.编辑模式) 打开文件( vi ) 查找文本( / ) 替换文本 删除文本( dd 删除光标所在行 ) 复制文本 去 ... 
随机推荐
- JAVA 中的IO流
			Java中的IO流是用来处理设备与设备之前的数据传输,在java中以流的形式传输.流分为两类:字节流和字符流. 字节流:InputStream,OutPutSteam.(计算机内的数据都是以字节存储的 ... 
- Unable to resolve module `../res/images/ic_popular.png`
- 解决"authentication token manipulation error"
			昨天安装是Ubuntu Server. 配置好了几个软件后就忘记继续了...今天打开,居然忘记了密码...真是的.. 后来还是要改了. 不想重新弄什么的了..百度了下怎么改密码...然后就有一篇 ... 
- 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容
			<?php /************************ * 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容 * 创建时间:2008-12-09 * 创建人:张宴(img. ... 
- Java程序员常用工具类库 - 目录
			有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ... 
- leetCode--towSum
			题目链接:https://leetcode.com/problems/two-sum/description/ 此题的意思是:给定一个target值,从给定的数组中找两个数,使得这两个数的和==tar ... 
- ETC系统简介
			ETC:电子不停车系统 主要由两部分构成:OBU(车载单元,又叫电子标签)和RSU(路基单元,包括天线) 其中OBU里插有用户卡(一般是和银行联名发行的信用卡) 而RSU包括路基天线,PSAM卡,通过 ... 
- pagespeed模块安装——Nginx、Tengine
			1.安装好nginx或者tengine 2.下载pagespeed模块并且解压 sudo mkdir -p /usr/local/tengine/modules wget https://github ... 
- 3.3.6-1 ArrayBlockingQueue简单分析
			构造方法:public ArrayBlockingQueue(int capacity) { this(capacity, false); } public ArrayBlockingQueue(in ... 
- ceph卸载
			1.正常卸载 ceph-deploy purge ceph01 ceph-deploy purgedata ceph01 rm -rf /var/lib/ceph rm -rf /etc/ceph r ... 
