Vi的三种模式及其指令
第一部分:一般指令模式可用按键说明,光标移动,复制粘贴、搜索替代
移动光标的方法:
| h或(左箭头) | 光标向左移动一个字符 |
| j或(下箭头) | 光标向下移动一个字符 |
| k或(上箭头) | 光标向上移动一个字符 |
| l或(右箭头) | 光标向右移动一个字符 |
多次移动:
| 【ctrl】+【f】 | 向下一页,等于PageDown |
| 【ctrl】+【b】 | 向上一页,等于Page Up |
| 【ctrl】+【d】 | 向下移动半页 |
| 【ctrl】+【u】 | 向上移动半页 |
| + | 光标移动到非空格符的下一列 |
| - | 光标移动到非空格符的上一列 |
| n<space> | 向后面移动20个字符的距离 |
| 0或功能键【Home】 | 行开头 |
| $或功能键【End】 | 行末尾 |
| H | 屏幕最上方那一行的第一个字符 |
| M | 屏幕最中间那一行的第一个字符 |
| L | 屏幕最下方那一行的第一个字符 |
| G | 移动到文件的最后一行 |
| nG | 移动到文件的第n行 |
| gg | 移动到文件的第一行,等于1G |
| n<Enter> | 光标向下移动n行 |
搜索与取代
| /word | 向光标之下寻找为word的字符串 |
| ?word | 向光标之上寻找为word的字符串 |
| n | 重复前一个搜寻动作 |
| N | 反向进行前一个搜寻动作 |
| :n1,n2s/word1/word2/g | 在n1和n2行之间寻找word1字符串,将其取代为word2 |
| :1,$s/word1/word2/g | 在第一行到最后一行寻找word1字符串,并将其取代为word2 |
| :1,$s/woed1/word2/gc | 在第一行到最后一行寻找word1字符串,并将其取代为word2,在取代之前提示字符询问是否取代 |
删除复制与粘贴:
| x,X |
x:向后删除一个字符,等于【del】 X:向前删除一个字符,等于【backspace】 |
| nx | 连续向后删除n个字符 |
| dd | 删除游标所在的那一行 |
| ndd | 删除光标所在的向下n行 |
| d1G | 删除光标所在到第一列的所有数据 |
| dG | 删除光标所在到最后一列的所有数据 |
| d$ | 删除游标所在处,到该列的最后一个字符 |
| d0 | 删除游标所在处,到该列的第一个字符 |
| yy | 复制游标所在的哪一列 |
| nyy | 复制游标所在的向下n列 |
| y1G | 复制光标所在列到第一列的所有数据 |
| yG | 复制光标所在列到最后一列的所有数据 |
| y0 | 复制光标所在字符到行首的所有数据 |
| y$ | 复制光标所在的字符到行尾的所有数据 |
| p,P | 将已复制的数据在光标的下一列贴上,P则为游标的上一列 |
| J | 将光标所在列与下一列的数据合成一列 |
| c | 重复删除多个数据 |
| u | 复原前一个动作 |
| 【ctrl】+r | 重做上一个动作 |
| . | 重复前一个动作 |
一般指令模式切换到编辑模式可用的按键说明:
| i,I |
进入插入模式: i 【从目前光标所在处插入】 I 【从所在行的第一个非空格符处开始插入】 |
| a,A |
进入插入模式: A 【从光标所在列的最后一个字符处开始插入】 |
| o,O |
进入插入模式: o 【在光标所在列的下一列插入新的一列】 O 【在光标所在列的上一列插入新的一列】 |
| r,R |
进入取代模式: r 【取代光标所在的那个字符一次】 R 【一直取代光标所在的文字,直到按下Esc键为止】 |
| 【Esc】 | 退出编辑模式,回到一般指令模式 |
一般指令模式切换到指令列模式的可用按键:
| :w | 将编辑的数据写入硬盘 |
| :w! | 当文件的属性为【只读】时,强制写入该文件。到底能不能写入,与你对文件的权限有关 |
| :q | 离开vi |
| :q! | 曾修改过文件,又不想存储,使用!强制离开不存储文件 |
| :wq | 存储后离开 |
| :wq! | 存储后强制离开 |
| ZZ | 文件没有更改,则不存储离开,若文件已被更改,则存储后离开。 |
| :w【filename】 | 将编辑的数据存储成另一个文件 |
| :r[filename] | 在编辑的数据中,读入另外一个文件的数据 |
| :n1,n2w[filename] | 将n1到n2的内容存储成filename这个文件 |
| :!command |
暂时离开vi到指令列模式下执行command的显示结果!例如:【:!ls /home】 在vi中查看当前/home下的ls输出的文件信息 |
vim环境的变更
| :set nu | 显示行号,设定之后,会在每一列的前缀显示改行的行号 |
| :set nonu | 取消行号 |
特别注意在vi中,【数字】是很有意义的!数字通常代表重复做几次的意思!也有可能代表去第几个什么什么的意思。向下移动20列,那就是[20 j]即可。
Vi的三种模式及其指令的更多相关文章
- vi/vim 三种模式的操作
来源:http://www.runoob.com/linux/linux-vim.html ps:刚刚进入vi/vim 是命令模式 一.命令模式 i 切换到输入模式,以输入字符. x 删除当前光标所在 ...
- vi的三种模式
一般指令模式 (command mode)以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式) .在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字 ...
- Vi/Vim三种模式
命令模式,底线命令模式,输入模式:
- Linux之vi三种模式常用操作
vi的三种模式:命令模式.编辑模式.尾行模式 一.命令模式 1.光标移动 a.字符级 左(h) 下(j) 上(k) 右(l) b.单词级 w word移动到下个单词首字母 b before上个单词首字 ...
- vi三种模式的切换
基础上vi/vim共分为三种模式,分别是命令模式,输入模式和底线命令模式. 一.命令模式 用户刚刚启动vi/vim,便进入了命令模式. 在此状态下敲击键盘动作会被vim识别为命令,而非输入字符.比如我 ...
- vim(vi)下的三种模式及其相关命令
vim(vi)下的三种模式1.命令行模式 2.末行模式 3.插入模式 三种模式的联系及其相互转换 在我们输入vi命令进入编写程序的页面后,我们看到的是命令行模式,在我们输入“a”.“i”.“o”.“O ...
- 辛星跟您玩转vim第一节之vim的下载与三种模式
首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...
- hadoop学习;自己定义Input/OutputFormat;类引用mapreduce.mapper;三种模式
hadoop切割与读取输入文件的方式被定义在InputFormat接口的一个实现中.TextInputFormat是默认的实现,当你想要一次获取一行内容作为输入数据时又没有确定的键.从TextInpu ...
- Intel微处理器学习笔记(二) 三种模式
三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...
随机推荐
- 在 Windows Azure 中运行SuperSocket
关键字: Windows Azure, WorkRole, InputEndPoint, 云计算, 微软云 什么是 Windows Azure? Windows Azure 是微软的云计算平台!微软的 ...
- H3C 面向连接和无连接的服务
- ES6学习笔记第一天
## 三.const和let **3.1 const** const用来定义常量,所谓的常量就是值一旦给定后就不变,一次定义终身不变的量 const a = 10; a = 20; 上面的a就是一个常 ...
- 【CSS3】使用CSS3制作全屏切换效果
在线演示: DEMO DEMO中及以下代码并没有写兼容代码,请使用高级浏览器打开,IE版本对CSS3支持并不太友好,IE11打开没有滚屏效果. 兼容代码前缀: -webkit- -moz- -o- - ...
- java 菜单
继承体系 MenuBar,Menu,MenuItem之间的关系: 先创建菜单条,再创建菜单,每一个菜单中建立菜单项. 也可以菜单添加到菜单中,作为子菜单. 通过setMenuBar()方法,将菜单添加 ...
- 用Xshell连接谷歌云
谷歌云服务器,默认用浏览器进行SSH链接,而且也不告知密码.以Centos为例,先使用浏览器连接 1,给root修改密码 1 sudo passwd root 2,编辑ssh配置文件 sudo nan ...
- jquery ajax请求步骤
$.ajax({ type: "GET", url: "/alink-hq/checkCode", data: { "mobile": ph ...
- Teleport ultra/IDM(Internet Download Manager)
神器扒网站——teleport ultra IDM(Internet Download Manager) 在平时的开发或者学习的过程中,我们难免会看到一些让人心动的网站,于是自己想把它搞下来,自己手工 ...
- 有状态无状态回话bean
1.有状态(Stateful) 可以在不同的方法调用间保持针对各个客户端的状态 与客户端的联系必须被维持,这样做开销要大一些 有状态也可以这样理解,它存在存储能力,也就是说至少有一个属性来标识它目前的 ...
- codeforces 572(Div2)A、B、C、D1、D2、E
Cdoeforces 572(Div2)A.B.C.D1.D2.E 传送门:https://codeforces.com/contest/1189 A.题意: 给你一串长为n的字符串,要求你将其切割为 ...