(四)、vim的缓冲区、标签、窗口操作
1、缓冲区的基本操作
a、文件与缓冲区的区别
vim file1 打开一个文件时,其实是从磁盘中读取文件到内存中,文件的内容会被加载到缓冲区中,
这个缓冲区在一个窗口上显示,所以他是一个已激活的缓冲区,现在可以使用 :e file2 命令加载另一
个文件,file将会变成一个隐藏的缓冲区,并且 file2 变成已激活缓冲区,vim的一些操作是在操作缓
冲区,当使用vim的保存命令时,vim才将缓冲区写会给文件。
| 命令 | 用途 |
| :bprev | 跳转到前一个buffer |
| :bnext | 跳转到后一个buffer |
| :bfirst | 跳转到第一个buffer |
| :blast | 跳转到最后一个buffer |
| :buffer num | 激活加载第num个文件 |
| :w | 将当前buffer写入文件 |
| :e | 重新将文件内容加载到缓冲区 |
| :qa! | 关闭所有buffer,且不保存 |
| :wa! | 保存所有buffer |
| :ball | 为每一个buffer打开一个窗口 |
| :bdelete num 或者 文件名 | 从缓冲区删除第n个文件 |
| :badd filename | 新增一个缓冲区,指定的文件会被加载到缓冲区列表中 |
| :buffers, :files :ls | 列出当前编辑中的缓冲区信息,第一个数字是缓冲区的标号,第二个是缓冲区当前的状态 |
2、窗口
窗口是缓冲区的显示区域,既可以打开多个窗口,在这些窗口中显示同一个缓冲区,也可以在每一个窗口里载入不同的缓冲区。
| 命令 | 用途 |
| s | 水平切分当前窗口,新窗口仍显示当前缓冲区 |
| v | 水平切分当前窗口,新窗口仍显示当前缓冲区 |
| sp | 水平切分当前窗口,新窗口仍显示当前缓冲区 |
| vsp | 水平切分当前窗口,新窗口仍显示当前缓冲区 |
| w | 在窗口间循环切换 |
| h | 切换到左边的窗口 |
| j | 切换到下边的窗口 |
| k | 切换到上边的窗口 |
| l | 切换到右边的窗口 |
| c | 关闭活动窗口 |
| o | 只保留活动窗口,关闭其他所有窗口 |
3.标签页
Vim 的标签页接口和其他许多文本编辑器不同,在Vim中,可以用标签页把窗口组织到一系列
工作区中。典型文本编辑器的图形界面(GUI)有一个用于编辑文件的主工作区,还有一个显
示当前工程目录树的侧边栏。如果点击侧边栏中的文件,它会在主工作区为所选中的文件打开
一个新标签页。每个打开的文件都会创建一个新标签页。在此模型中,可以说标签页代表了当
前打开的文件。Vim 的标签页与缓冲区并非一一对应的关系,相反,应该把标签页想成容纳一
系列窗口的容器。每个标签页都可包含一个或多个窗口。
| 命令 | 用途 |
|---|---|
| :tabe[dit] {filename} | 在新标签页中打开 {filename} |
| :tabc[lose] | 关闭当前标签页及其中的所有窗口 |
| :tabo[nly] {filename} | 只保留活动标签页,关闭所有其他标签页 |
| :tabn[ext] {N} | 切换到编号为 {N} 的标签页 |
| :tabn[ext] | 切换到下一标签页 |
| :tabp[revious] | 切换到上一标签页 |
4.热键
" 窗口快捷方式
map <s-h> <c-w>h
map <s-l> <c-w>l
map <s-j> <c-w>j
map <s-k> <c-w>k
map <s-w> <c-w>w
map <s-c> <c-w>c
map <s-o> <c-w>o
" buffer 快捷方式
nnoremap <Leader>bn :bn<CR>
nnoremap <Leader>bb :bp<CR>
nnoremap <Leader>bf :bfirst<CR>
nnoremap <Leader>bl :blast<CR>
nnoremap <Leader>bc :bwipe<CR>
" 标签页快捷方式
nnoremap <Leader>tp :tabp<CR>
nnoremap <Leader>tn :tabn<CR>
nnoremap <Leader>tc :tabc<CR>
nnoremap <Leader>to :tabo<CR>
nnoremap <Leader>tN :tabn
nnoremap <Leader>te :tabe
(四)、vim的缓冲区、标签、窗口操作的更多相关文章
- 4. VIM 系列 - 认识VIM的缓冲区、窗口、标签页
目录 1. 缓冲区 2. 窗口 3. 标签页 4. 设置一下热键 1. 缓冲区 文件和缓冲区的区别 vim 打开一个文件时,其实是从磁盘中读取文件到内存中,vim的一些操作其实是在操作缓冲区, 当使用 ...
- Vim 缓冲区与窗口 操作
##############缓冲区 :e(:open) 打开新缓冲区 :ls (:buffers) 列出列表内所有缓冲区/bs /bv /be(BufExplore快捷键) :b 2(:buffer ...
- 【转】vim中多标签和多窗口的使用
原文:https://my.oschina.net/kutengshe/blog/464602 ---------------------------------------------------- ...
- 搞定vim的窗口操作
最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...
- vimcommandfilepatchcmdfold VIM技巧之分隔窗口 一级精华
VIM技巧之分隔窗口 分类: 技术2010-07-08 09:57 754人阅读 评论(1) 收藏 举报 同时显示两个不同的文件, 或者同时查看同一个文件的两个不同位置, 或者是同步显示两个文件的 ...
- [Vim]vim使用笔记--分屏操作
我们经常要打开多个文件,不同的窗口操作多个文件,分屏就很好用了. 1 命令模式下: :new,新建文件并分屏, 快捷键,Ctrl+W,然后马上按n键 :spilt 水平分屏,将当前屏分为两个,水平的. ...
- vim中的分屏操作
title: vim中的分屏操作 date: 2017-11-14 21:45:11 tags: vim categories: 开发工具 在命令行中: vim -On file1 file2 # O ...
- 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口
window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...
- vim的多标签
vim支持多标签页,可以在同一窗口同时打开多个文档, 两种方法: vim -d 通过vim --help后发现vim -d相当与vimdiff模式 例子: $ vim -d a.txt b.txt c ...
随机推荐
- 2019-2020 ICPC Asia Hong Kong Regional Contest J. Junior Mathematician 题解(数位dp)
题目链接 题目大意 要你在[l,r]中找到有多少个数满足\(x\equiv f(x)(mod\; m)\) \(f(x)=\sum_{i=1}^{k-1} \sum_{j=i+1}^{k}d(x,i) ...
- uniapp分包(详尽版)
PS:本文是笔者对基于uniapp的一小程序项目进行分包后的复盘文档,不足之处请多多指教. 一:分包相关概念 本质上是改变项目的路由以及优化项目各个模块的启动时间的一种优化技术. 主包与分包的概念 1 ...
- 实用主义当道——GitHub 热点速览 Vol.48
作者:HelloGitHub-小鱼干 当你看到实用为本周的关键词时,就应该知道本周的 GitHub 热点霸榜的基本为高星老项目,例如:知名的性能测试工具 k6,让你能在预生产环境和 QA 环境中以高负 ...
- PHP后台基本语法使用笔记
1. PHP中报500错误时如何查看错误信息 //将如下的代码放入PHP的文件中ini_set("display_errors","On"); error_re ...
- python语法元素的名称
变量 什么是变量? """ 变量是保存和表示数据值的一种语法元素,在程序中十分常见.顾名思义,变量的值是可以改变的,能够通过赋值(使用等号"=")方式 ...
- JavaScript原型链及其污染
JavaScript原型链及其污染 一.什么是原型链? 1.JavaScript中,我们如果要define一个类,需要以define"构造函数"的方式来define: functi ...
- 解决IDEA更新为最新的2020.3版后,右键运行居然没有以xml形式运行的Run显示
一.前言 个人一直喜欢用IDEA最新版,结果更新后,发现TestNg批量执行,选中testng.xml右键没Run,如下图: 刚开始以为是配置错误呢,下载了2018.2版本的IDEA,还能正常运行,于 ...
- moviepy音视频剪辑:与大小相关的视频变换函数详解
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...
- PyQt(Python+Qt)学习随笔:QListView的layoutMode属性和batchSize属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 batchSize属性 该属性是在layoutMode属性设置为Batched时,用于控制每个批量的 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的焦点策略focusPolicy设置
在Qt Designer中可以设置部件的焦点策略,部件的焦点策略属性取值范围由枚举类型Qt.FocusPolicy来定义,该枚举类型及其含义如下表所示: 注意:经老猿测试鼠标轮滚动获取焦点,只有在鼠标 ...