vi的复制粘贴命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vi的复制粘贴命令
vi编辑器有3种模式:命令模式、输⼊模式、末⾏模式。
掌握这三种模式⼗分重要:
命令模式:vi启动后默认进⼊的是命令模式,从这个模式使⽤命令可以切换到另外两种模式,同时⽆论在任何模式下只要按⼀下[Esc]键都可以返回命令模式。
在命令模式中输⼊字幕“i”就可以进⼊vi的输⼊模式编辑⽂件。
输⼊模式:在这个模式中我们可以编辑、修改、输⼊等编辑⼯作,在编辑器最后⼀⾏显⽰⼀个“--INSERT--”标志着vi进⼊了输⼊模式。
当我们完成修改输⼊等操作的时候我们需要保存⽂件,这时我们需要先返回命令模式,在进⼊末⾏模式保存。
末⾏模式:在命令模式输⼊“:”即可进⼊该模式,在末⾏模式中有好多好⽤的命令。
4.编辑操作
进⼊输⼊模式命令
i插⼊命令 a附加命令 o打开命令 c修改命令
r取代命令 s替换命令 Esc退出命令
输⼊模式的操作
Home光标到⾏⾸
End 光标到⾏尾
Page Up和Page Down上下翻页
Delect删除光标位置的字符
删除操作(命令模式使⽤)
x删除光标处的单个字符
dd删除光标所在⾏
dw删除当前字符到单词尾包括空格的所有字符
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前⾏开始向下删除三⾏⽂本
撤销操作
u命令取消最近⼀次的操作,可以使⽤多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使⽤u命令的操作
复制操作
yy命令复制当前整⾏的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制⼀个单词
y$复制光标所在位置到⾏尾内容到缓存区
y^复制光标所在位置到⾏⾸内容到缓存区
#yy例如:5yy就是复制5⾏
#yw例如:2yw就是复制两个单词
如果要复制第m⾏到第n⾏之间的内容,可以在末⾏模式中输⼊m,ny例如:3,5y复制第三⾏到第五⾏内容到缓存区。
5.查找和替换
vi的查找和替换功能主要在末⾏模式完成:
⾄上⽽下的查找
/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work
⾄下⽽上的查找
?要查找的字符窜例如:/ work
替换
: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
6恢复⽂件
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 中设置tab为4和⾃动转换成空格
2009-10-30 15:33
:set tabstop=4 " Force tabs to be displayed/expanded to 4 spaces (instead of default 8).
:set softtabstop=4 " Make Vim treat <Tab> key as 4 spaces, but respect hard Tabs.
: " I don't think this one will do what you want.
:set expandtab " Turn Tab keypresses into spaces. Sounds like this is happening to you.
" You can still insert real Tabs as [Ctrl]-V [Tab].
:set noexpandtab " Leave Tab keys as real tabs (ASCII 9 character).
:1,$retab! " Convert all tabs to space or ASCII-9 (per "expandtab"),
" on lines 1_to_end-of-file.
:set shiftwidth=4 " When auto-indenting, indent by this much.
" (Use spaces/tabs per "expandtab".)
:help tabstop " Find out more about this stuff.
:help vimrc " Find out more about .vimrc/_vimrc :-)
VI中复制与粘贴基本⽅法
2009-07-30 11:16 阅读407 评论0
字号:⼩
我们先做这样⼀个⼩⼩的尝试,请打开浏览器,从⽹页上随便复制⼀段⽂字,然后打开VIM,⽤VIM,⽤"p"粘贴⼀下,你会发现,什么都没有站贴过来,原因是这样的,不同于Windows,VIM具有多个剪贴板,并且和系统剪贴板是完全独⽴的,所以当你复制浏览器⾥的⽂字的时候,这段⽂字保存在了系统剪贴板,当你是⽤"p"来粘贴的时候,实际上,他读取的是VIM的剪切板。
那怎么⽅便的将系统剪贴板的内容复制过来呢?简单!⽤另外⼀个快捷⽅式"Shift+Insert"就可以了,如果你在使⽤Gvim的话,直接⽤⿏标中键也可起到相同的作⽤。
是不是很简单?
OK!我们开始进阶!
我们前⾯说过,VIM具有多个剪切板,⽬的是为了⽤户在做较复杂的字符处理的时候,可以更⽅便的复制粘贴。
请现在使⽤⼀下":reg"命令(先按 ESC键,退出编辑模式,然后按:进⼊命令模式,然后输⼊reg回车),看到了?屏幕上的输出结果!是不是特别眼熟,对了!就是您之前复制过的所有内容!也许这时候您还发现,VIM的剪切板原来有这么多个,按照数字还有符号⼀个⼀个的区分开的,这⾥举⼀个编号的例⼦--""5,看到了吗?是以"开头的。
还有!有没有看到编号为"+的剪切板?⾥⾯的内容是不是刚才你在浏览器⾥复制的那段⽂字啊?呵呵……没错了!系统剪切板的编号就是"+。
好了,这时候您已经知道了如何查看之前的所有剪贴板内容,我们现在就试着把某⼀个特定剪切板的内容复制进我们正在编辑的⽂件中。
我们知道,vi的粘贴指令是"p",但是如果要粘贴⼀个特定的剪贴板,只是⽤p就不⾏了,那怎么办?简单!把剪贴板的编号带上不就可以了?现在先按ESC,退出编辑模式,然后依次按"+p这三个字符(怎么按?不会吧!"和+怎么按?⽤Shift啊!),好了!你看看,之前在浏览器中复制的这段⽂本,是不是被粘贴进⽂档中了? 如何将系统剪切板⾥的内容复制进VIM当中,您已经清楚了。
那如何将ViM中复制的字符粘贴到其他地⽅呢?很简单,我们只需要把要复制的⽂字,复制进 "+剪切板不就可以了?("+剪切板是系统剪切板,忘记了?)在VIM中,复制的指令是y(在⾮编辑模式下按y就可以了),那要将⽂本复制进指定的剪切板,只需要加上剪切板的编号就可以了。
举个例⼦,我们希望把VIM中的⼀段⽂本复制下来,然后粘贴到浏览器的地址栏中:第⼀步,现把需要复制的⽂字选中(⾮编辑模式下),然后在键盘上依次按"+y这三个字符,OK!已经复制下来了,现在⽤:reg命令看看,是不是在"+剪切板中了? 好了,⽬前为⽌,您已经⼤致掌握了VIM剪切板的基本⽤法,当然,VIM剪切板的功能还很强⼤,本⽂也不能尽数道来,就请您继续发掘吧。
vi中多个⽂件相互之间的复制、粘贴功能简介!
发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 25次 | 进⼊讨论
昨天有⼈提出此类问题,我特地加以编辑⼀下,请⼤家共享,可能写的不好!
⼤家在vi编辑中,常常遇到想把⽂件A⾥⾯的⼀⾏或多⾏,复制到B⽂件⾥⾯去
(可能很多⼈不知道怎么办),该怎么做了?
下⾯是⼏中⽅法:
1.如果你有多台机器,⽽且是联⽹的,你可以term虚拟终端,telnet登陆主机对A⽂件进⾏修改、复制,然后打开B⽂件粘贴过去!
2.如果是单机,当然要⽤⾃带的编辑功能呢
先简单介绍⼀些vi编辑⾥的命令:
(A).yw 将当前字存⼊⽆名缓冲区,前⾯可加"x,表⽰存⼊名字为x的有名
缓冲区(x为a-z),也可加数字表⽰存⼊的字数,以后可⽤P或p命
令取出
yy 将当前⾏存⼊⽆名缓冲区,⽤法参看yw
(B).命令如下:a-Z 是缓冲区,也可移出数字1-9指定的删除缓冲区
利⽤命名缓冲区可很好地保存若⼲⽂本段,便于以后存取、移动或者重排。
这些缓冲区⽤a到z字母命名!为了访问这些缓冲区中的⼀个,要使⽤双引号
例如:要把⼀⾏插⼊a缓冲区,可键⼊:
"ayy
为了把这个⽂本放回该⽂件中,键⼊"ap
(c).m做标志命令:
m 字母⽤字母标记当前⾏,以后可⽤ '字母使光标移动到当前⾏,
(参看'命令)
列⼦:1。
将a⽂件中的4⾏到b⽂件中
命令如下:"ay4+
:ex b (转到b⽂件中)
然后"ap
2. 将a中多⾏复制到b⽂件中
先在开始处做标志mk
然后在末尾⽤"ay'k (光标⾃动回到开始处,此时已经把你的内容放到缓冲区了)
其中a表⽰缓冲区a
然后⽤ex转义到你的⽂件B中,然后⽤"ap命令粘贴就⾏
3。
如果你⽂件中有多次要复制粘贴的话,看下⾯:
a表⽰缓冲区a ,你还继续可以使⽤缓冲b吗
缓冲区有a-z和1-9这么多
缓冲区就好象下的煎切版⼀样,它有好多个,你可以把你想要的复制进去,然后粘贴,只不过你⽤"ay时候多换a就是了,如你要复制462⾏⽤"ay ,复制536⾏⽤"by
我编写的不好,恳请斑⽵帮我修改和补充,谢谢!。