首页 > 代码库 > VIM管理多个文件相关知识

VIM管理多个文件相关知识

 

记住:我们编辑的文件只是在内存中的映像,   在VIm术语中称为"缓冲区"

 

 

用缓冲区列表管理打开的文件:

当打开多个文件时,可以用 :ls 查看缓冲区列表

如,打开了多个文件:

vim *.c

输入 :ls 命令,得到:

1 %a   "hello.c"                      第 312 #    "nihao.c"                      第 1 行
  3      "zhaimin.c"                    第 3 行

其中,%表示哪个文件在当前窗口可见, # 表示为轮换文件; 用 ctrl-^  可以在当前窗口文件与轮换文件之间切换;

用以下命令可以遍历缓冲区列表:

:bnext                  切换为下一个文件; 
:bprev                  切换为上一个文件; 
:bfirst                 切换为第一个文件; 
:blast                  切换为最后一个文件; 
                            
                            
:buffer N               切换为第N个文件; 
:buffer {name}          切换为名字为name的文件;

 

删除缓冲区列表,使用:

ddelete 编号                     #删除指定的编号;
#
m, n bdelete                       #删除指定的范围

 

缓冲区的参数列表

当用VIM打开多个文件时,如:

vim *.c

输入 :args 命令,就会出现参数列表:

[hello.c] nihao.c zhaimin.c

以上的三个参数就是VIM启动时传递给VIM的文件列表,其中[]表示处于活动状态的文件;

(注意:这个参数列表的内容是可以改变的)

 

如何填充参数列表呢?

方法一:使用文件名指定文件
 :args 1.txt 2.txt 3.txt

 方法二:使用Glob 模式进行指定文件;即正则化通配符
 如:args *.txt 
 注意: *符号用于匹配0个或多个符号,但是不会递归目录; 
 注意: **符号用于匹配0个或多个符号,它可以递归目录; 

方法三: 使用反引号指定文件; 
原理:1,该文件中放有要打开的文件名字;2,Vim会执行反撇号括起来的命令;              
反撇号的打法:Esc下面的那个键; 
如:args `cat argument.txt`

 

处理多个缓冲区的方式:

:w[rite]                把缓冲区内容写入到磁盘; 
:e[dit]!                把磁盘文件重新写入到缓冲区;                             
:qa[all]!               关闭所有的窗口; 
:w[all]                 把所以改变写入到缓冲区;

 

在工作区打开多个窗口及切换

复制一个当前的窗口: 使用ctrl-w + s 水平复制一个当前缓冲区,使用ctrl-w + v 垂直复制一个当前缓冲区;

使用:split {filename} 与 vsplit {filename} 水平或垂直打开一个新的文件;(可以省略写为:sp或vsp)

另外,也可以有新的窗口中利用 :edit {filename} 重新写入缓冲区中内容;

 

容器间的切换:

ctrl-w +w               在窗口间循环切换; 
ctrl-w +h               切换到窗口左边; 
ctrl-w +j               切换到窗口下边; 
ctrl-w +k               切换到窗口上边; 
ctrl-w +l               切换到窗口右边;

窗口的关闭:

:close 或ctrl-w + c             关闭活动窗口; 
:only  或ctrl-w + o             只保留活动窗口,其余都关闭;    

VIM管理多个文件相关知识