Vim 8文本处理实战:教您得心应手在日常任务中使用Vim( 二 )
:e animals/cat.py
然后 , 可以看到之前打开的文件已经被当前文件所取代 。 不过 , animal_farm.py仍然存储在某个缓冲区中 , 读者可以再次用:ls命令将其显示出来 。现在 , 可以看到两个文件名都被列出来了 , 如图3所示 。
文章插图
图3
那么怎样才能跳转到之前的文件呢?
Vim通过数字和名称来标识每个缓冲区 , 在同一个Vim会话中 , 它们都是唯一的(除非退出Vim) 。 为了在不同的缓冲区之间切换 , 可使用:b命令 , 其参数为缓冲区的编号数字 。
:b 1
:b 1命令中的空格可以省略 , 得到简化版的命令:b1 。通过一条很简单的命令就可以回到原来的文件 。 由于缓冲区还可以用文件名来标识 , 因此读者可以用文件名的一部分来切换缓冲区 。 下列命令将打开animals/cat.py的缓冲区 。
:b cat
不过 , 如果名称匹配了多个缓冲区 , 则Vim会报错 。 比如 , 用下面的命令查找所有文件名包含py的缓冲区 。:b py
Vim的状态栏中会显示错误 , 如图4所示 。文章插图
图4
为解决这个问题 , 可以使用Tab键补全文件名 , 从而实现在不同缓冲区之间循环切换 。 输入:b py(先不要按Enter键) , 然后按Tab键 , 在所有匹配的结果之间循环遍历 。
读者也可以使用:bn(:bnext)和:bp(:bprevious)命令循环遍历缓冲区 。
当不再需要某缓冲区的时候(如不再需要编辑该文件) , 可以将其删除 。 通过如下命令可以将一个缓冲区从打开的缓冲区列表中删除 , 而无须退出Vim 。
:bd
但如果没有保存当前缓冲区 , 则Vim会报错 。 因此 , 在不小心删除缓冲区之前 , 读者还有一次保存文件的机会 。3.2 插件——unimpairedTim Pope的vim-unimpaired是一个Vim插件,它为很多内置命令(以及一些新的命令)添加映射 。 本书作者每天都会使用这个插件 , 因为它提供了更为直观的映射 , 比如]b和[b用于循环遍历缓冲区 , ]f和[f用于遍历目录中的文件 。 该插件可以在GitHub仓库tpope/vim-unimpaired中找到(安装方法参见本章2.2节) 。
下面是vim-unimpaired提供的部分映射 。
- ]b和[b循环遍历缓冲区 。
- ]f和[f循环遍历同一目录中的文件 , 并打开为当前缓冲区 。
- ]l和[l遍历位置列表(参见第5章) 。
- ]q和[q遍历快速修复列表(参见第5章) 。
- ]t和[t遍历标签列表(参见第4章) 。
3.3 窗口Vim将缓冲区加载到窗口中 。 一个屏幕上可以同时显示多个窗口 , 它们将屏幕分割成几块 。
【Vim 8文本处理实战:教您得心应手在日常任务中使用Vim】1.窗口的创建、删除和跳转
本节将介绍Vim窗口的使用方式 。 首先 , 打开animal_farm.py文件(在命令行中执行$ vim animal_farm.py或从Vim中执行:e animal_farm.py) 。
然后 , 使用如下命令将窗口分割成两个 , 其中一个显示新的文件 。
:split animals/cat.py
:split命令可以简化为:sp 。可以看到animals/cat.py被打开 , 显示在原文件上方的窗口中 , 而且光标也出现在里面 , 如图5所示 。
文章插图
图5
也可以使用下面的命令按水平方向分割窗口 。
:vsplit farm.py
如图6所示 , 当前窗口又水平分隔出一个新的窗口(光标也随之移动到左边的新窗口中) 。文章插图
图6
:vs是:vsplit的简化版 。
通过组合:split和:vsplit , 可以生成任意多个窗口 。
目前本书提到的所有命令都适用于窗口 , 包括切换缓冲区 。 为了使光标能在不同窗口间移动 , 先按Ctrl + w组合键 , 然后输入一个方向键:h、j、k、l中的一个或键盘方向键 。
按Ctrl + h组合键 , 之后再按Ctrl + j组合键(Ctrl键可以不松开 , 记为Ctrl + w,j组合键) , 光标会进入下面的窗口 , 而使用Ctrl + w,k组合键则进入上面的窗口 。
如果经常使用窗口 , 读者可以按照如下配置绑定快捷键 。 " 使用
- 缩小|调整电脑屏幕文本文字显示大小,系统设置放大缩小DPI图文教程
- 新一代|外媒: 高通新一代旗舰处理器或命名为骁龙888
- 将要发布|高通下一代处理器不叫骁龙875,而是叫骁龙888
- 天玑|天玑800U处理器加持的RedmiNote9
- 淘汰|过气旗舰不如狗?骁龙845处理器要被淘汰了
- 热点功能|旧手机别乱处理,分享旧手机6个小妙用,放在家里好值钱
- 款处理器|小米最便宜的大屏智能机,性价比超高,送长辈的不二之选
- 改名|小米首发?曝高通新一代旗舰处理器临时改名,或为骁龙888
- 骁龙875处理|进一步确定!小米11Pro采用2K+/120Hz屏,网友:价格贵也接受
- 创园|中国V谷的云存储之道,马栏山文创园将视频处理效率提升6倍