【极客时间-系列教程】Vim 实用技巧必知必会-多文件打开与缓冲区:复制粘贴的正确姿势

多文件打开与缓冲区:复制粘贴的正确姿势

单文件打开方式

文件打开的方式不限于一种,包括但不限于有以下几种

  1. 进入目录,vim 文件名打开文件
  2. 直接vim 绝对路径打开文件
  3. 在打开vim时,:e 文件路径打开文件

可能打开文件的方式还有,这些方式是能满足一般需求的

粘贴格式错乱

有没有遇到一情况?就是使用vim粘贴时,出现格式较乱,如果粘贴带有注释的文字,我想可能遇到过,解决这个问题的办法是将:set paste打开,vim就会认为你在粘贴,智能缩进、制表符正常展示了。原因是打开vim时它并不知道你在粘贴还是在插入,会出现格式错乱的情况。

已经存在的交换文件

在使用vim的过程中肯定还遇到过这种情况

E325: ATTENTION
Found a swap file by the name ".littlePrice.txt.swp"
          owned by: root   dated: Thu Nov 16 09:41:33 2023
         file name: ~root/vimtest/littlePrice.txt
          modified: no
         user name: root   host name: localhost
        process ID: 912 (STILL RUNNING)
While opening file "littlePrice.txt"
             dated: Tue Nov 14 16:42:18 2023

(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r littlePrice.txt"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".littlePrice.txt.swp"
    to avoid this message.

Swap file ".littlePrice.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: 

原因可能有两个,我只知道一个,人家之所以称之为极客是有原因的,人家对某件事情研究的确实到位

  1. 有另外一个vim在编辑此文件
  2. 之前有编辑,在编辑过程中崩溃了

怎么区分是哪种导致的呢?
含有STILL RUNNING就是情况

         # 这里有用户和主机名
         user name: root   host name: localhost   
         # 含有STILL RUNNING就是有人在运行
         process ID: 912 (STILL RUNNING)

如果遇到这种情况,最好的办法是找到谁在编辑,找到对应的位置继续编辑,如果是只读那选择o即可,实在是找不到那就选择d来删除缓存文件吧。虽然残忍但是有效。
大佬任务这种单文件打开方式是低效的,而我恰恰都是选用的这种方式。

多文件的打开方式

多文件打开对我来说我是没见过的,但并不能说明它没有,它是存在的,只不过我不知道。
我觉得多个文件编辑是这样的

vim *.java *.txt

打开后是这样的

public class text1 {
    public static void main (String[] args){
        System.out.println("hello world");
    }
}
~                                                                                                                                                                                                                                                                                                                                                           
"Hello.java" 5L, 117B

怎么切换呢?还是没有打开,那肯定是打开了的,看看设置

  • :args:可以显示“参数”,即需要编辑的多个文件的列表
  • :args 文件名:使用新的文件名替换参数列表
  • :next(可缩写为 :n):打开下一个文件;如当前文件修改(未存盘)则会报错中止,但如果命令后面加 ! 则会放弃修改内容,其他命令也类似
  • :Next(缩写 :N)或 :previous(缩写 :prev):打开上一个文件
  • :first 或 :rewind:回到列表中的第一个文件
  • :last:打开列表中的最后一个文件

相比于单个文件相比,方式有些变化

  • 拷贝方便,这么能打开多个文件,之间拷贝是非常方便的,使用v进入行选择的可视模式,移动光标到所需文本,然后使用y复制选中的各行
  • 可以设置:set autowrite进行自动存盘

缓冲区的管理和切换

还有一个缓冲区(buffer),和多文件有啥不一样呢
缓冲区的用法

  • :buffers 或 :ls:可以显示缓冲区的列表
  • :buffer 缓冲区列表里的编号(:buffer 可缩写为 :b):跳转到编号对应的缓冲区;如当前缓冲区已被修改(未存盘)则会报错中止,但如果命令后面加 ! 则会放弃修改内容;其他命令也类似
  • :bdelete 缓冲区列表里的编号(:bdelete 可缩写为 :bd):删除编号对应的缓冲区;编号省略的话删除当前缓冲区
  • :bnext(缩写 :bn):跳转到下一个缓冲区
  • :bNext(缩写 :bN)或 :bprevious(缩写 :bp):跳转到上一个缓冲区
  • :bfirst 或 :brewind:跳转到缓冲区列表中的第一个文件
  • :blast:跳转到缓冲区列表中的最后一个文件

这些要多学多练多用,否则依然会忘掉,别让高效的vim,变的不高效。

注:此文章为11月Day15学习笔记,内容来源于极客时间《Vim 实用技巧必知必会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值