VI 下的命令操作---1
来源:互联网 发布:mac excel 提取数据 编辑:程序博客网 时间:2024/05/23 12:35
今天用VIM编辑程序,用起来感觉好麻烦,在网上找了篇关于VI的命令操作的文章,
网址:http://www.cnblogs.com/lansh/archive/2010/08/19/1803378.html
感谢该作者的总结。
vi编辑器有3种模式:
命令模式、输入模式、末行模式。
掌握这三种模式十分重要:
命令模式:
vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,
同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。
在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。
输入模式:
在这个模式中我们可以编辑、修改、输入等编辑工作,
在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。
当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,
在进入末行模式保存。
末行模式:
在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。
一.编辑操作
进入输入模式命令:
i插入命令 r取代命令 a附加命令 o打开命令c修改命令 s替换命令 Esc退出命令
输入模式的操作:
Home光标到行首End 光标到行尾
Page Up和Page Down上下翻页
Delect删除光标位置的字符
删除操作(命令模式使用):
x删除光标处的单个字符dd删除光标所在行
dw删除当前字符到单词尾包括空格的所有字符
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前行开始向下删除三行文本
撤销操作:
u命令取消最近一次的操作,可以使用多次来恢复原有的操作U取消所有操作
Ctrl+R可以恢复对使用u命令的操作
复制操作:
yy 命令复制当前整行的内容到vi缓冲区 3yy 就可以把光标所在行位置开始往下的3行复制.yw 复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$ 复制光标所在位置到行尾内容到缓存区
y^ 复制光标所在位置到行首内容到缓存区
#yy 例如:5yy就是复制5行
#yw 例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny
例如:3,5y复制第三行到第五行内容到缓存区。
不同文件之间的复制:
用:sp [filename]打开另一文件,(用^ww在文件之间切换,即是Ctrl + W),
然后按上述方法复制
有关的命令如下:
yy 将当前行复制到缓冲区
yw 将当前单词复制到缓冲区
y1 将光标处的一个字符复制到缓冲区
p 将缓冲区的信息粘贴到光标的后面
:行号1 ,行号2 copy 行号3 将行号1到行号2的内容复制到行号3所在行的后面。
:行号1 ,行号2 move 行号3 将行号1到行号2的文本内容移动到行号3所在行的后面。
直接输入:n1,n2 co n3。(n1为起始行,n2为结束行,n3为粘贴行) 把 co 改成 m 就成剪切了。
二.查找和替换
vi的查找和替换功能主要在末行模式完成:至上而下的查找
/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如: / work至下而上的查找
?要查找的字符窜 例如: ? work
n 匹配下一个;
N 匹配上一个;
替换
:s/old/new 用new替换行中首次出现的old: s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g 用new替换从第#行到第#行中出现的old
:% s/old/new/g 用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,
例如:s/old/new/c 或s/old/new/gc
三.恢复文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:O只读打开,不改变文件内容
E继续编辑文件,不恢复.swp文件保存的内容
R将恢复上次编辑以后未保存文件内容
Q退出vi
D删除.swp文件
或者使用vi -r 文件名来恢复未保存的内容
在GUI下:
(1)可按i进入插入模式
(2)使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区
(3)然后将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键),粘贴缓冲区内容。
在纯文本终端下:
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p
在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用Ctrl+w
命令前面加数字表示重复次数,加字母表示使用的缓冲区名称。
获取帮助,用:help [内容或命令]
- VI 下的命令操作---1
- VI 下的命令操作---2
- vi命令模式下的操作
- linux下 Vi 操作命令
- Linux下vi对文件的操作命令
- Linux下vi编辑器操作文件内容的命令
- linux vi的命令操作
- vi常用的操作命令
- linux下vi操作命令简介归纳
- Linux下的vi命令
- linux下的VI命令
- Linux下的vi命令
- Linux下的vi命令
- Linux下的vi命令
- linux VI编辑模式的操作命令
- vi基本操作(1) -- 基本编辑命令
- vi基本操作命令
- vi操作实用命令
- 我的WCF学习之旅(1)什么是WCF
- 我是这样学习Linux下C语言编程的-完全认识GNU C 语言库glibc
- canvas.translate(x,y)一点新的认识
- 近似求派: 【待解决 求助】
- WinPcap教程2——据说为珊瑚虫所译
- VI 下的命令操作---1
- 小菜鸟再认识session_destroy()
- VS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- Friday Q&A 2010-01-15: Stack and Heap Objects in Objective-C
- mysql explain
- SQL Server获取表中中间连续的记录(不用where语句)
- Ubuntu wlan/wifi 上网设置
- 犹太人
- 关于Hadoop的InputFormat类