禅道博客

分享专业技术知识,文章内容干货满满

读书笔记《Vim实用技巧》:管理多个文件

2023-12-21 14:55:59
潘仙芝
原创 624
摘要:本文是关于《Vim实用技巧》读书笔记,本文记录了多个“管理多个文件”的技巧,有效帮助工作效率的提升。

一、技巧37 用缓冲区列表管理打开的文件

1.了解缓冲区和文件的区别

1.1 文件存储在磁盘上,缓冲区存在内存中

1.2 打开文件时候,文件内容会被读入一个具有相同名字的缓冲区

1.3 缓存区因为修改变动时,这会与文件内容不一致

1.4 决定保存缓存区内容后,修改内容会保存到文件中
缓冲区:buffer


2.结识缓冲区列表
2.1 Vim可以同时在多个缓冲区工作
vim *.php

:ls  //列出所有缓冲区


:bnext     //切换到列表的下一个缓冲区,#标识轮换文件,%指明哪一个缓冲区当前窗口中可见。
:ls
Ctrl+^ 可在所有的缓冲区中快速切换


3.使用缓冲区
4条命令遍历缓冲区列表
:bprev   //反向移动缓冲区,每次移动1项
:bnext  //正向移动缓冲区,每次移动1项
:bfirst   //跳到缓冲区列表的开头

:blast   //跳到缓冲区列表的结尾


4.删除缓冲区
:bdelete             //删除缓冲区
:bdelete 1 2 3     //删除编号1,2,3的缓冲区
:2,5 bdelete        //删除编号2,3,4,5缓冲区

二、技巧38 用参数列表将缓冲区分组

vim *.php

:ls  //列出所有缓冲区

:args  //分组显示 []标识当前活动的文件

1.填充参数列表
:args {arglist}   //{arglist}包括文件名、通配符,甚至是一条shell命令的输出结果
2.用文件名指定文件
:args config.php test0203.php

:args
工作量比较大,使用通配符比较快


3.用glob模式指定文件
:args *.*
:args **/*.js
:args **/*.*
:args **/*.js **/*.css
4.用反引号结构指定文件

:args `cat .php`
用cat命令获取 .php的文件


5.使用参数列表
缓冲区列表就像整洁的独立工作区
:argdo   //在列表中每个缓冲区执行同一条命令

:next    //正向遍历参数列表的文件

:prev    //反向遍历参数列表的文件

三、技巧39 管理隐藏缓冲区

缓冲区文件前有个+,标识这个缓冲区被修改过

不保存先切换缓冲区
:bnext
会有一条报错提示说当前缓冲区未保存修改

:bnext!
强制切换缓存区,原来的被标记为隐藏缓存区(hidden)

1.在退出时处理隐藏缓冲区
:quit   //退出缓冲区

:write   //缓冲区保存到文件 :w
:edit!   //放弃修改,缓冲区不保存到文件 :e!
:qall!   //不想检查缓冲区直接退出 :qa
:wall   //保存所有的缓存区到文件,且不需要检查 :wa


2.运行 :*do 命令前,启用 hidden 设置
默认情况下,不会从一个改动过的缓冲区切换到其他缓存区

:next!
:bnext!
:cnext!
都会弹出错误信息,提示已修改但未保存

四、技巧40 将工作区切分成窗口

1.创建切分窗口
Ctrl+w+s
Ctrl+w+v
:sp 2 test.php    //水平切分当前窗口,并在新窗口中打开test.php文件
:vsp 2 test.php   //垂直切分当前窗口,并在新窗口中打开test.php文件
test.php


2.在窗口间切换
Ctrl+ww    //在窗口间循环切换
Ctrl+wh    //切换到左边的窗口

Ctrl+wj     //切换到下边的窗口

Ctrl+wk    //切换到上边的窗口

Ctrl+wl     //切换到右边的窗口


3.关闭窗口
:close   //关闭活动窗口 :clo
:only    //关闭除活动窗口外的所有窗口 :on


4.改变窗口大小及重新排列窗口
Ctrl+w=            //所有窗口等宽、等高
Ctrl+w_            //最大化活动窗口的高度
Ctrl+w|            //最大化活动窗口的宽度
N+Ctrl+w_            //把活动窗口的高度设为N行
N+Ctrl+w|            //把活动窗口的宽度设为N行

五、技巧41 用标签页将窗口分组

1.如何使用标签页
:cld {path}               //设置当前窗口的本地工作目录
:windo lcd {path}      //设置所有窗口的本地工作目录


2.打开及关闭标签页

:close        //关闭此窗口以及包含此窗口的标签页
:tabclose    //关闭当前标签页,无论其中有多少个窗口 :tabc
:tabonly    //关闭当前标签页外的所有其他标签页 :tabo

:tabedit {filename}    //在新标签页打开文件  :tabe
Ctrl+w+T                //把当前窗口移到一个新标签页


3.在标签页中切换

123gt                  //跳到标签页123
123gT                 //跳转方向与上一条相反
:tabnext 2,同123gt   //切换到编号为2的标签页
:tabnext,同gt           //切换到下一个标签页
:tabprevious,同gT    //切换到上一个标签页


4.重排标签页

:tabmove N
当N为0时,当前标签页会被移到开头
当N为空时,当前标签页会被移到结尾
当N为123时,当前标签页会被移到123标签页

暂时没有记录
评论通过审核后显示。