7.1 编辑另一个文件
:edit filename.txt :编辑另一个文件
:edit! filename.txt :强制编辑另一个文件,不进行保存当前缓冲区的内容.
:hide edit filename.txt :隐藏缓冲区内容,直接编辑另一个文件,但此时不保存当前的文件.
7.2 文件列表
(1) 打开多个文件
vim note05.txt note06.txt note07.txt
(2) 文件列表——当前在编辑哪个文件???
:args命令(arguments):显示当前的文件列表,当前文件以[]括起来.
(3) 文件列表中的切换
:next命令 :打开编辑下一个文件.
:next!命令 :强制打开编辑下一个文件.
:wnext命令 :完成两个单独的命令 :write :next
:previous命令 :打开编辑上一个文件.
:wprevious命令 :保存当前文件,打开编辑上一个文件.
:last命令 :打开最后一个文件,wlast命令.
:first命令 :打开第一个文件,wfirst命令.
:2next命令 :使用计数命令,向前跳过两个文件.
(4) 自动保存
:set autowrite :在不同的文件转移时,不需要每次都执行write命令.
:set noautowrite :关闭自动保存.
备注:与word自动保存不同的,过一段时间会自动保存,指某个事件发生时自动保存这个文件.
(5) 编辑另一个文件列表
:args note01.txt note02.txt note03.txt
:args *.txt :支持通配符.
(6) 最后文件了吗???
当你有一个列表文件要编辑时,Vim会假设你要全部编辑它们.如果你要退出,需要再执行一次退出
命令.
7.3 切换到另一个文件
1. CTRL-^:两个文件之间快速的切换.
:args note01.txt note02.txt note03.txt
:next或previous之后,可以使用这个命令非常方便的在两个文件中进行切换.
2. 多个文件之间的标记
(1) 全局标记: 使用大写字母命名标记.
如:note06.txt 50%mM note07.txt GmB
'或`命令进行跳转到自定义标记的位置.
备注:如果你删除了局部标记所在的行,也就相当于删除了这个局部标记.
与全局标记不同,全局标记会一直存在下去.
(2) 预定义的标记
`":关闭文件时的光标的位置.
`.:文件最后一次修改的地方.
备注:在多文件中也可以使用CTRL-o CTRL-i两个同样试用.
7.4 备份
:set backup :生成备份文件,文件名为原文件名加一个~.
备注:ZZ进行退出,是不能生成备份文件的,需要使用:write
:set backupext=.bak :修改生成一个名为原文件名加.bak的备份文件.
:set patchmode=.orig :保存一份修改前的原始文件作为副本,同时后缀为.orig.
7.5 在文件间复制粘贴
1. 简单的复制粘贴
:edit thisfile.txt
/This
vjjj$y
:edit otherfile.txt
/There
p
2. 使用寄存器
复制多个独立的文本到另一个文件中时,这时可以使用寄存器,使用a到z的字母作为寄存器的名字.
CTRL-vjjj$"by :把一个文本块复制到名为b(block)的寄存器中.
"fyas :把一个句子复制到名为f(first)的寄存器中.
"l3Y :把3个整行的内容复制到名为l(line)的寄存器中.
"bp :取出寄存器b中的内容文本.
"wdaw :删除一个word并将其存入名为w(word)的寄存器中.
3. 向文件中追加内容
:read note06.txt :向当前文件进行追加note06.txt文件内容.
:write >> note06.txt :将当前文件追加到文件名为note06.txt文件中去,只能追加到文件的最后.
:write logfile :将当前文件写入到logfile中去
备注:Visual模式下也可以进行选择要写入的文本.
7.6 查看文件
vim note07.txt :直接打开编辑文件,可以读写.
vim -R note07.txt :以只读的方式打开该文本.
view note07.txt :以只读的方式打开该文本.
vim -M note07.txt :强制性地避免对文件进行修改,其中的-M选项告诉Vim工作于viewer模式中.
:set modifiable
:set write
7.7 更改文件名
:write filename :将当前文件写入到新的文件中去.
:saveas filename :将当前文件进行另存为操作.
:file filename :与saveas功能相似,也可以实现文件名的更改.