Vim文件操作从同时操作多个文件和打开和保存文件两个方面进行总结。
(一)Vim同时操作多个文件
一个文件夹下有vitest、vitest2两个txt文件。同时操作两个文件。同时操作两个文件可以通过命令 'vim *.txt' 或者 'vim vitest.txt vitest2.txt' 来完成。此时进入文件操作界面与操作一个文件时的界面似乎没有差别。
①缓冲区列表
多个文件同时放入缓冲区可以通过 ':ls' 命令来查看,切莫与shell的ls命令搞混。
②缓冲区列表操作
通过 ':ls' 查看缓冲列表,可以通过命令在各个文件之间进行切换。
常见命令:
bnext : 跳转下一个
bprev : 跳转上一个
bfirst : 跳转到第一个
blast : 跳转到最后一个
输入命令比如 'bnext' 后,再通过 'ls' 查看,列表显示发生一些变化;
'%' 表示当前在窗口中的文件是哪个。'#' 代表轮换文件。可以通过 'Ctrl + ^' 在当前文件和轮换文件之间进行转换。
当删除缓冲区中文件时,可以通过 'bdelete 文件名' 完成删除操作。
③管理隐藏缓冲区
当对vitest1.txt进行操作后,通过 'bnext' 进行切换时,会无法切换
会提示切换前更新未写入。但此时并非不能切换,执行强制切换即可。 'bnext!'完成强制转换。完成转换后,通过 'ls' 查看列表,会发现又有新的变动。
'#' 之后多了 'h +' 两个字符, 'h' 表示一个隐藏缓冲区,即未进行写入的更改。保存更改的常见命令如下:
w[rite] : 写入当前文件的写改
e[dit] ! : 放弃当前文件的修改
wa[ll] ! : 写入所有修改
qa[ll] ! : 关闭窗口,放弃所有修改
④创建分割窗口
这个就比较有意思了,可以通过 'Ctrl + w + s' 水平切分当前窗口。
通过 'Ctrl + w + v' 完成垂直切分
当然,切分之后的子窗口也可以继续切分。
切分时,可以指定新的窗口载入其他文件通过 'sp[lit] 文件名' 的方式完成。例如 'sp vitest1':
如果想垂直切分窗口载入新文件,通过 'vsp[lit] 文件名' 来完成。
窗口间切换常用命令:
Ctrl + w + w : 窗口间循环切换
Ctrl + w + h : 切换到左边窗口
Ctrl + w + l : 切换到右边窗口
Ctrl + w + j : 切换到下边窗口
Ctrl + w + k : 切换到上边窗口
关闭窗口的方式:
:clo[se] : 关闭当前窗口
:on[ly] : 只保留当前窗口
(二)打开及保存文件
通过 'vim 文件名' 的方式打开文件是最常用的方式。但这节讨论的是在已经打开vim的情况下打开文件的操作。
①通过 ':edit' 命令打开
当前在vitest1.txt中,通过 'edit' 命令打开vitest2.txt。
②'edit' 命令文件路径操作
查看当前文件相对于当前所在目录的文件路径,使用命令 'edit %
按下Tab键,发生如下改变
如果使用 ':edit %:h
':h' 将隐藏文件名,保留其余路径。
③使用netrw管理文件系统
现在在/home/chuck/viexe目录下有vitest1.txt,vitest2.txt,vitest3.txt三个文件。输入 'vim .' 进入vim的原生文件管理器netrw。
通过 'j'、 'k' 控制上下,选择希望操作的文件,然后按回车键即可进行操作。也可以选择 '../
当然这是在终端中进入netrw,如果当前已经在使用vim操作文件,如何进入文件系统?使用 ':edit' 命令,如果是操作当前目录,只需要 ':edit .' 即可进入当前目录的文件管理系统。其他目录可以通过 ':edit 绝对/相对路径' 即可。
④保存文件
普通的保存通过 'w' 命令即可。但如果是保存到尚不存在的目录中。比如vim /home/chuck/viexe/sub/test.vim。而此时的viexe中并不存在sub目录,如果正常保存会发生:
需要两步走。第一步创建目录,通过 ':!mkdir -p %:h',输入回车键
此时再通过 'w' 写入,即可完成写入。