vi命令常用操作
一、vi的操作模式
vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
二、进入vi
$ vi filename
直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename
以只读方式打开文件filename
三、指令模式
3.1 进入输入模式
a 在当前游标之后输入
A 在当前行之末输入
i 在当前游标之前输入
I 在当前行之首输入
o 在当前行之下新增一行,并在新增行输入
O 在当前行之上新增一行,并在新增行输入
输入结束后,按Esc键退出输入模式。
3.2 游标移动
h 向左移动一个字元
l 向右移动一个字元
j 向下移动一个字元
k 向上移动一个字元
b 左移一个单词,至词首
w 右移一个单词,至词尾
0 移到当前行行首
$ 移到当前行行尾
+ 移至下一行的行首
- 移至上一行的行首
H 移至视窗的第一行
M 移至视窗的中间一行
L 移至视窗的最后一行
G 移至该文件的最后一行
nG 移至该文档的第n行
n+ 下移n行
n- 上移n行
3.3 视窗移动
<Ctrl> + f 视窗下卷一页
<Ctrl> + b 视窗上卷一页
<Ctrl> + d 视窗下卷半页
<Ctrl> + u 视窗上卷半页
<Ctrl> + e 视窗下卷一行
<Ctrl> + y 视窗上卷一行
3.4 删除操作
x 删除游标所在字元
X 删除游标前一字元
dw 从游标当前位置开始向后删除一个单词
db 从游标当前位置开始向前删除一个单词
d0 从行首删除至当前游标位置
d$ 从游标当前位置删除至行尾
dd 删除游标所在行
D 同d$
3.5 修改操作
s 修改游标所在字元,修改完成后按Esc键结束
S 修改整行内容,修改完成后按Esc键结束
r 替换当前游标所在字元
R 进入替换状态,直至按Esc键结束
cw 修改一个单词(从游标位置至词尾)
cb 修改一个单词(从词首至游标位置)
cc 修改整行内容,完成后按Esc键结束,同S
c0 修改行首至游标位置的内容
c$ 修改游标位置至行尾的内容
~ 游标所在字元大小写切换
3.6 指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:
nx 删除n个字元
ndd 删除n行
ns 修改n个字元
3.7 取消前一动作(Undo)
u 撤消上一指令的结果
3.8 查找字符串
/字符串 从当前游标向后查找该字符串
?字符串 从当前游标向前查找该字符串
n 从当前游标向后查找下一个字符串
N 从当前游标向前查找下一个字符串
3.9 查看编辑状况
<Ctrl> + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改
四、保存与退出
:w 保存,但不退出
:wq 保存并退出
:x 同:wq
:q 退出,如果当前文件没有保存,禁止退出
:q! 不保存退出
:w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件
:w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行
五、环境设置
:set 显示已设置的环境状况
:set all 显示所有的环境设置选项
:set nu 显示行号
:set nonu 不显示行号
:set ts = n 设置Tab键的长度为n
六、执行指令
以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。
: 10 , 20d 删除第10行至第20行的内容
:10d 删除第10行的内容
:%d 删除全部内容
: 10 , 20co30 将第10行至第20行的内容复制到第30行之后
: 10 , 20mo30 将第10行至第20行的内容移动到第30行之后
: 1 , $s/old/new 将第1行至最后一行中的old替换成new
: 1 , $s/^/new 将第1行至最后一行的内容前面插入new
: 10 将游标移至第10行
七、重复指令
. 重复上一条指令
八、切换到shell状态
:sh 切换到shell状态,exit返回
vi命令常用操作的更多相关文章
- Linux(Ubuntu)常用命令(五)—— vi/vim常用操作
vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...
- 想法子记忆Vi/Vim常用操作及指令
本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...
- top 命令常用操作
1.显示进程参数 top -c 下面操作为top命令后操作 2.按cpu/mem排序 shift + p/m 3.高亮 排序列 按x键 4.高亮 变化进程行 按b键 5.显示cpu每核的运行状态 按1 ...
- vi编辑器常用操作
vi的三种模式 1.命令模式 2.编辑模式 3.末行模式(命令模式下,按":"即可进入末行模式) 命令模式到编辑模式:插入命令i,附加命令a,打开命令o,修改命令c,取代命令r,替 ...
- Linux vi命令快操作汇总
第一部份:一般指令模式可用的按钮說明,游标移动.复制粘贴.搜寻取代等 一.移动游标的方法h 或 向左方向鍵(←) 游标向左移动一个字节j 或 向下方向鍵(↓) 游标向下移动一个字节k 或 向上方向 ...
- vi/vim常用操作
什么是vim? Vim是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. vim的 ...
- git命令常用操作
第一步:拉取git上的文件(git clone 远程仓库地址) 第二步:在主目录下运行git base here,执行git status 第三步:添加文件到本地仓库(git add 文件)之后,再次 ...
- linux下svn命令常用操作
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...
- docker基础命令,常用操作
docker基础命令 使用docker镜像 获取镜像 从docker registry获取镜像的命令是docker pull.命令格式是: docker pull [选项][docker regist ...
随机推荐
- hihocoder 1124 : 好矩阵 dp
好矩阵 时间限制:3000ms 单点时限:1000ms 内存限制:256MB 描写叙述 给定n, m.一个n × m矩阵是好矩阵当且仅当它的每一个位置都是非负整数,且每行每列的和 ≤ 2.求好矩阵的个 ...
- 一起talk C栗子吧(第九十五回:C语言实例--使用共享内存进行进程间通信一)
各位看官们,大家好,上一回中咱们说的是SystemV IPC结构概述的样例,这一回咱们说的样例是:使用共享内存进行进程间通信. 闲话休提.言归正转.让我们一起talk C栗子吧! 共享内存是Syste ...
- 手机Android音视频採集与直播推送,实现单兵、移动监控类应用
最新手机採集推送直播监控以及EasyDarwin开源流媒体平台的版本号及代码: EasyDarwin 开源流媒体云平台:https://github.com/easydarwin EasyClient ...
- 【BZOJ 1660】 [Usaco2006 Nov]Bad Hair Day 乱发节
1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 678 Solved: 32 ...
- thinkphp5项目--个人博客(五)
thinkphp5项目--个人博客(五) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- nyoj--42--一笔画问题(并查集)
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. ...
- Java 类和对象3
编写Java应用程序.首先,定义描述学生的类——Student,包括学号(int).姓名(String).年龄(int)等属性:二个方法:Student(int stuNo,String name,i ...
- 了解Linux的基础知识和一般概念
1.GNU和GPL GNU计划(又称革奴计划),是由Richard Stallman(理查德·斯托曼)在1983年9月27日公开发起的自由软件集体协作计划.它的目标是创建一套完全自由的操作系统. ...
- 超轻便的 Cache_Lite 文件缓存
Cache_Lite提供了快速,轻便和安全的缓存系统.它针对文件容器进行了优化,并且防止缓存损坏(因为它使用文件锁定和/或散列测试). 个人感觉还是挺方便的. Cache_Lite 官方参考地址. C ...
- NodeJS学习笔记 进阶 (6)本地调试远程服务器上的Node代码(ok)
https://github.com/chyingp/nodejs-learning-guide