VI/VIM 常用命令
VI/VIM 常用命令
===========
整理自鸟哥的私房菜
----------
- 移动光标
命令 | 描述
------------------------|------------------------------------------
h | 光标向左移动一个字符
j | 光标向下移动一个字符
k | 光标向上移动一个字符
l | 光标向右移动一个字符
ctrl+f | 向下移动一页
ctrl+b | 向上移动一页
ctrl+d | 向下移动半页
ctrl+u | 向上移动半页
+ | 光标移到下行的行首的非空字符处
- | 光标移到上行的行首的非空字符处
n<space> | 光标向右移动n个字符
0 | 光标移到到该行的行首
$ | 光标移到到该行的行尾
H | 光标移动到该屏首行的首字符处
M | 光标移动到该屏中央的首字符处
L | 光标移动到该屏最后一行的首字符处
G | 光标移动到该文档最后一行的首字符处
nG | 光标移动到该文档第n行的首字符处
gg | 光标移动到该文档第1的首字符处,相当于1G
n<Enter> | 光标向下移动n行
- 搜索与替代
命令 | 描述
------------------------|------------------------------------------
/word | 从光标所在处向下搜索word
?word | 从光标所在处向上搜索word
n | 重复前一个搜索动作
N | 反向进行前一个搜索动作
:n1,n2s/word1/word2/g | 在第n1,n2行之间搜索word1,并将其替代为word2
:1,$s/word1/word2/g | 在第1,最后一行之间搜索word1,并将其替代为word2
:1,$s/word1/word2/gc | 在第1,最后一行之间搜索word1,并将其替代为word2,替代需要确认
- 删除、复制与粘贴
命令 | 描述
------------------------|------------------------------------------
x,X | x为向后删除一个字符,X为向前删除一个字符
nx | 向后删除n个字符
dd | 删除光标所在行
ndd | 向下删除n行
d1G | 删除光标所在行到第一行的所有内容
dG | 删除光标所在行到最后一行的所有内容
d$ | 删除光标所在处到该行行尾的所有内容
d0 | 删除光标所在处之前的内容
yy | 复制光标所在行
nyy | 向下复制n行
y1G | 复制光标所在行到第一行的所有内容
yG | 复制光标所在行到最后一行的所有内容
y$ | 复制光标所在处到该行行尾的所有内容
y0 | 复制光标所在处之前的内容
p,P | p为在下一行粘贴复制的内容,P为在上一行
J | 将光标所在行与下一行合并为同一行
c |
u | 撤销前一个动作
ctrl+r | 重做上一个动作
. | 重复前一个动作
- 模式切换
命令 | 描述
------------------------|------------------------------------------
i,I | i为在光标所在处插入,I为在光标所在行的第一个非空字符处插入
a,A | a为在光标所在处的下一个字符串插入,A为在光标所在行的最后一个字符串插入
o,O | o为在光标所在行的下一行插入新行,O为光标所在行的上一行插入新行
r,R | r为取代光标所在处的字符一次,R会一直取代光标所在处的字符直到ESC
esc | 退出编辑模式,回到一般指令模式
- 保存与离开
命令 | 描述
------------------------|------------------------------------------
:w,:w! | :w为保存,:w!为强制保存
:q,:q! | :q为离开,:q!为强制离开
:wq,:wq! | :wq为保存后离开,:wq!为强制保存离开
ZZ | 文档未改变,则不保存离开。有改变,则保存离开
:w filename | 另存为
:r filename | 将filename的内容添加到光标所在行的后面
:n1,n2 w filename | 将n1到n2行的内容保存到filename中
:! command | 暂时离开vi,执行command命令
- 设置环境变量
命令 | 描述
------------------------|------------------------------------------
:set nu | 显示行号
:set nonu | 不显示行号
----------
VI/VIM 常用命令的更多相关文章
- vi/vim 常用命令总结
目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...
- Vi/Vim常用命令(附快捷切换方法)
vi/vim有两种模式,正常(命令行)模式 和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符. 启动/关闭Vi/Vim 启动:vi 打开 Vi/Vim编辑器vi 文件 ...
- 【转】VI/VIM常用命令
原文网址:http://www.blogjava.net/woxingwosu/archive/2007/09/06/125193.html Vi是“Visual interface”的简称,它在Li ...
- vi/vim常用命令总结
vim是vi的升级模式,完全兼容vi 解决vim打开中文乱码问题 编辑/etc/vim/vimrc配置文件,添加下面的内容: ''' set fileencodings=utf-8,ucs-bom,g ...
- linux vi(vim)常用命令汇总(转)
前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Imp ...
- linux vi(vim)常用命令汇总
1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大 ...
- vi/vim 常用命令 之 一图定天下!
直接上干活,一张图解决~
- Linux(Ubuntu)常用命令(五)—— vi/vim常用操作
vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...
- Vim常用命令总结
Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...
随机推荐
- 微信小程序文档解读(一)--api提供支持有哪些
本文重点在于小程序API提供的微信功能支持及获取用户信息的解读,具体的用法和调用不在本文讨论范围之内,文章基于20161222版文档解读 API官方文档原文链接 小程序API官方定义: 框架提供丰富的 ...
- Java JDBC Batch
Java批量处理数据 import java.sql.Connection; import java.sql.PreparedStatement; //import String sql = &quo ...
- dao代码模板
提供数据源以及回收资源的工具类DbUtils: public class DbUtils { private static ComboPooledDataSource dataSource = new ...
- 基于jdk调用天气服务案例及问题
问题1:解析wsdl文件时出现 把网络上的wsdl保存到本地,把圈起来的那段删掉 代码: 当返回结果不是String类型时: 输入城市编码去查找 所以: 问题二:如果把本地wsdl文件删除的话需要 三 ...
- span设置宽和高当没有内容的时候也可撑开
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- mybatis---知识点复习
mybatis的配置文件是configuation.xml是配置文件,主要是配置jdbc(用来创建sessionfactory)以及映射文件的别名, 一对多: <mapper namespace ...
- NameCheap域名注册商的几个特点介绍
作为站长,我们拥有选择3-5家域名注册商,把自己的域名放置在不同的平台也是应该的,因为不同的注册商都有不同的值得我们选择的理由.作为已经使用namecheap注册商超过5年,拥有数百个域名的我来说,分 ...
- filter过滤action的问题
今天犯了一个错误,结果白白浪费了半个下午的时间,特记于此. filter过滤Action的时候,要把过滤器配置在Struts2拦截器的前面,这样过滤器才能过滤到Action,否则不可以.
- HDU 5831 Rikka with Parenthesis II
如果左括号数量和右括号数量不等,输出No 进行一次匹配,看匹配完之后栈中还有多少元素: 如果n=2,并且栈中无元素,说明是()的情况,输出No 如果n=2,并且栈中有元素,说明是)(的情况,输出Yes ...