Vim 8文本处理实战:教您得心应手在日常任务中使用Vim( 四 )
两种命令都可以将宽度/高度设置为具体的行数/列数 。
- :resize N用于将窗口高度设置为N 。
- :vertical resize N用于将窗口宽度设置为N 。
Vim用标签页来组织一个窗口的集合 , 进而支持在不同的窗口集合之间切换 , 这让用户方便地拥有了多个工作区 。 标签页通常用来在同一个Vim会话中区分不同的问题或者文件集合 。 标签页功能不一定是一个频繁使用的功能 , 但如果希望在不同项目或同一项目的不同上下文之间切换 , 那么标签页将是一个不错的选择 。
用户愿意使用标签页的另一个原因可能与Vim的diff功能有关 , 因为diff作用于一个标签页内 。 更多详情请参考第5章中关于vimdiff的介绍 。
在一个新标签页中打开一个空缓冲区的命令如下 。
:tabnew
在新标签页中打开一个已有文件的命令为:tabnew <文件名> 。如图9所示 , 标签页显示在屏幕的顶部 。 在标记为3 farm.py的标签页中打开了三个窗口及一个活动缓冲区farm.py 。 [No Name]标签页则是刚才打开过的空缓冲区 。
文章插图
图9
在一个标签页中 , 可以通过常用的方式(:e <文件名>)来加载文件 , 也可以用:b命令在不同缓冲区之间切换 。
为了在不同标签页之间跳转 , 可以使用如下命令 。
- 快捷键gt或:tabnext命令用于切换到下一个标签页 。
- 快捷键gT或:tabprevious命令用于切换到上一个标签页 。
:tabmove N命令将当前标签页移动到第N个标签页之后(如果N为0 , 则变成第一个标签页) 。
3.5 折叠Vim为浏览大型文件提供的一个强大工具是折叠 。 折叠功能支持文件部分内容的隐藏 , 隐藏的依据既可以是预定义的规则 , 也可以是手动添加的折叠标记 。
如图10所示 , animal_farm.py中的部分代码片断被折叠了 , 代码中每个方法的具体内容被隐藏了 , 从而可以在整体上来查看代码 。
文章插图
图10
1.折叠Python代码
因为本书以Python编程为例 , 所以这里只介绍Python示例代码的折叠方式 。 首先 , 需要在.vimrc文件中将foldmethod设置为indent , 设置代码如下 。
set foldmethod=indent
不要忘记重新加载~/.vimrc , 方法是重启Vim或在Vim中执行:source $MYVIMRC命令 。设置foldmethod为indent , 使Vim基于缩进来折叠代码 。
再次打开animal_farm.py , 可以看到该文件中的部分代码已经被隐藏 , 如图11所示 。
文章插图
图11
将光标移动到其中一个折叠行上 , 输入zo可以打开当前折叠 , 如图12所示 。
文章插图
图12
只要光标在一个潜在的折叠文本中(本例中为缩进的代码块) , 输入zc都会将此折叠关闭 。
为了方便看清折叠的位置 , 可以使用:set foldcolumn=N命令 , 其中N的取值为0~12 。 这会告诉Vim用从屏幕左边开始的N列来标记折叠 , 其中符号-表示一个打开的折叠 , 符号|表示打开的折叠的内容 , 符号+表示关闭的折叠 。
输入za可切换折叠状态(打开关闭的折叠或关闭打开的折叠) 。 输入zR和zM分别用于同时打开和关闭所有折叠 。
将foldmethod设置为自动类型(如indent)会默认将所有文件折叠 。 这只是一种偏好 , 读者也可能会选择在打开新文件时打开折叠 。 在.vimrc文件中添加autocmd BufRead * normal zR会在打开新文件时令折叠处于打开状态 , 即Vim在读取新的缓冲区时执行zR命令(打开所有折叠) 。
2.折叠的类型
从某种意义上来说 , Vim在折叠代码方面是比较智能的 , 而且支持多种折叠方式 。 折叠的方法由.vimrc文件中的foldmethod选项来指定 。 Vim支持如下折叠方式 。
- 缩小|调整电脑屏幕文本文字显示大小,系统设置放大缩小DPI图文教程
- 新一代|外媒: 高通新一代旗舰处理器或命名为骁龙888
- 将要发布|高通下一代处理器不叫骁龙875,而是叫骁龙888
- 天玑|天玑800U处理器加持的RedmiNote9
- 淘汰|过气旗舰不如狗?骁龙845处理器要被淘汰了
- 热点功能|旧手机别乱处理,分享旧手机6个小妙用,放在家里好值钱
- 款处理器|小米最便宜的大屏智能机,性价比超高,送长辈的不二之选
- 改名|小米首发?曝高通新一代旗舰处理器临时改名,或为骁龙888
- 骁龙875处理|进一步确定!小米11Pro采用2K+/120Hz屏,网友:价格贵也接受
- 创园|中国V谷的云存储之道,马栏山文创园将视频处理效率提升6倍