Vim复制指定行到指定行的内容,并拷贝到新的文件中(适用于截取服务器日志,方便查看)

缘由:需要在庞大的日志中查询部分指定日志,如log日志记录的html(此类型的日志数据有很多行,普通右键复制和下载不是很方便)。

  • 因为服务器的日志文件太过庞大,所以可以使用复制指定行到指定行的方式,来截取目标日志内容并复制到新文件中,然后再下载到本地查看

1. Vim打开日志文件后

vim test.log

2. 普通模式输入冒号: 进入命令模式,输入想要复制的文本起始行数如200

3. 普通模式直接输入v进入visual可视模式,使用多种方式进行文本选择

可以使用v+j/k/h/l 进行文本选择,也可以使用方向键 ← ↑ ↓ → 进行文本选择   
输入 ^ 表示选中当前行,光标位置到行首
输入 $ 表示选中当前行,光标位置到行尾

4. v+想要选中的截止行数+G完成文本选中

如 v400G 表示选中当前光标行数至第400行的文本, 必须切换成大写G使用

5. 直接输入y键完成对选中文本的复制

381 lines yanked表示已经将选中的381行文本复制到了内置剪切板了

6. vim一个新文件,普通模式下直接输入p键完成粘贴,输入 :wq, 完成保存

  • 但是有个问题,我们明明复制的有381行,为什么粘贴下来只有50呢?
  • 因为Linux默认情况下,vim一次最多可以复制50行数据(从一个文件到另一个文件)
  • 所以我们需要更改下Linux的默认复制设置

7. 修改Linux的默认复制设置

  • 修改$HOME/.vimrc 路径下的vimrc文件(如果不存在则新建)
vim $HOME/.vimrc
  • 填写以下两个命令, 二选一,并保存:
set viminfo='1000
set viminfo='1000,<666

set viminfo='1000 表示不限制一次最多可以复制的行数。
set viminfo='1000,<666 表示一次最多可以复制666行,可以自行适当调整为自己所需的数值。

8. 重新完成上述复制操作后,vim新建文件粘贴后,复制的381行文本就都被复制粘贴好了

Computer science and software engineering have always been my passion

posted @ 2021-06-09 18:47  游弋在冷风中  阅读(4788)  评论(0编辑  收藏  举报