Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • 说明
  • Vim

  • VSCode

  • Chrome

  • iTerm

  • mac

  • Obsidian

  • lazygit

  • 学习双拼
  • Vim 技巧

    • Vim 技巧 - 说明
    • Vim 技巧 - 以退为进
    • Vim 技巧 - 点范式
    • Vim 技巧 - 把撤销单元切成块
    • Vim 技巧 - 构造可重复的修改
    • Vim 技巧 - 用次数做简单的算术运算
    • Vim 技巧 - 能够重复,就别用次数
    • Vim 技巧 - 在插入模式中可即时更正错误
    • Vim 技巧 - 结识插入 - 普通模式
    • Vim 技巧 - 不离开插入模式,粘贴寄存器中的文本
    • Vim 技巧 - 重复执行面向行的可视命令
    • Vim 技巧 - 只要可能,最好用操作符命令,而不是可视命令
    • Vim 技巧 - 结识 Vim 的命令行模式
    • Vim 技巧 - 在一行或多个连续行上执行命令
    • Vim 技巧 - 使用‘:t’和‘:m’命令复制和移动行
    • Vim 技巧 - 在指定范围上执行普通模式命令
    • Vim 技巧 - 重复上次的 Ex 命令
    • Vim 技巧 - 把当前单词插入到命令行
    • Vim 技巧 - 回溯历史命令
    • Vim 技巧 - 运行 Shell 命令
    • Vim 技巧 - 将工作区切分成窗
      • 创建分割窗口
      • 在窗口间切换
      • 关闭窗口
      • 改变窗口大小及重新排列窗口
    • Vim 技巧 - 区分实际行与屏幕行
    • Vim 技巧 - 通过查找进行移动
    • Vim 技巧 - 遍历改变列表
    • Vim 技巧 - 用无名寄存器实现删除、复制与粘贴操作
    • Vim 技巧 - 深入理解 Vim 寄存器
    • Vim 技巧 - 用寄存器中的内容替换高亮选区的文本
    • Vim 技巧 - 把寄存器的内容粘贴出来
    • Vim 技巧 - 宏的读取与执行
    • Vim 技巧 - 规范光标位置、直达目标以及中止宏
    • Vim 技巧 - 加次数回放宏
    • Vim 技巧 - 在连续的文本行上重复修改
    • Vim 技巧 - 给宏追加命令
    • Vim 技巧 - 编辑宏的内容
    • Vim 技巧 - 调整查找模式的大小写敏感性
    • Vim 技巧 - 查找使用 v 或 V 模式
    • Vim 技巧 - 界定单词的边界
    • Vim 技巧 - 转义问题字符
    • Vim 技巧 - 结识查找命令
    • Vim 技巧 - 在执行查找前预览第一处匹配
    • Vim 技巧 - 将光标偏移到查找匹配的结尾
    • Vim 技巧 - 利用查找历史,迭代完成复杂的模式
    • Vim 技巧 - 结识 substitute 命令
    • Vim 技巧 - 在文件范围内查找并替换每一处匹配
    • Vim 技巧 - 手动控制每一次替换操作
    • Vim 技巧 - 重用上次的查找模式
    • Vim 技巧 - 用寄存器的内容替换
    • Vim 技巧 - 重复上一次 substitute 命令
    • Vim 技巧 - 使用子匹配重排 CSV 文件的字段
    • Vim 技巧 - 自动补全整行文本
    • Vim 技巧 - 以 g 开头的命令
    • Vim 技巧 - 以 z 开头的命令
    • Vim 技巧-ctrl 命令
    • Vim 技巧
    • 每日一 Vim 笔记
  • 键盘侠
  • Vim 技巧
Henry
2022-09-11
目录

Vim 技巧 - 将工作区切分成窗

Vim 允许我们将工作区切分成若干窗口,在这些窗口里并排显示多个缓冲区。

# 创建分割窗口

Vim 在启动时只会打开单个窗口。用 <C-w>s 命令可以水平切分此窗口,使之成为两个高度相同的窗口;或者可以用 <C-w>v 命令对其进行垂直切分,这样会产生两个宽度相同的窗口。这两条命令可以重复任意多次,结果就会把工作区一次次地切分为更小的窗口,就像细胞分裂那样。

下图展示了切分后的效果,图中的阴影区域代表活动窗口。

每次执行完 <C-w>s 和 <C-w>v 命令后,新生成的两个窗口都会显示与原窗口相同的缓冲区。把同一缓冲区显示在不同窗口里会很有用,特别是在编辑长文件时。举个例子,我们可以滚动其中一个窗口,使之显示缓冲区的一部分,这样,在修改第二个窗口中缓冲区的另外一部分时,就可以参考第一个窗口中的内容。

我们可以用 :edit 命令把另外一个缓冲区载入活动窗口中。如果先执行 <C-w>s,再执行 :edit {filename},就会把工作区分成两个窗口,并在其中一个窗口中打开新缓冲区,而另一个窗口则继续显示原有的缓冲区。另外一种做法是使用 :split {filename} 命令,它把上述两步合并成为了一步。下表总结了把工作区切分为窗口的几种方式:

# 在窗口间切换

Vim 提供了一些在窗口间进行切换的命令,下表总结了其中最常用的一些命令(完整命令列表参见:h window-move-cursor):

实际上,<C-w><C-w> 完成的功能和<C-w>w 相同,就是说我们可以一直按住<Ctrl> 键,然后再输入 ww(或 wj,或上表中的其他命令)来切换活动窗口。<C-w><C-w> 要比 <C-w>w 更容易按一些,尽管写出来时它显得更繁琐。如果经常使用多个窗口,那么你可能需要考虑把这些命令映射成更方便的按键。

# 关闭窗口

想减少工作区中窗口的数量,可以用两种方式:一是使用 :close 命令关闭活动窗口,二是用 :only 命令关闭除活动窗口外的所有其他窗口。下表总结了这两条命令,并列出了与之等效的普通模式命令:

# 改变窗口大小及重新排列窗口

Vim 提供了一些用于改变窗口大小的按键映射项,完整的列表请查阅:h window-resize,下表中列出了最常用的几个命令:

改变窗口大小是我喜欢用鼠标做的少量操作之一,其做法很简单。点击窗口间的分隔线,拖动鼠标直至窗口变成期望的大小,然后松开鼠标即可。

编辑 (opens new window)
#Vim
上次更新: 5/27/2023, 1:02:05 PM
Vim 技巧 - 运行 Shell 命令
Vim 技巧 - 区分实际行与屏幕行

← Vim 技巧 - 运行 Shell 命令 Vim 技巧 - 区分实际行与屏幕行→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式