Vim杂项记录

本文最后更新于:2022年3月16日 下午

Vim杂项记录

此处记录有关vim写作过程中遇到的问题或踩过的坑。

系统剪切板的通信

Vim 中的复制、删除的内容都会被存放到默认(未命名)寄存器中,之后可以通过粘贴操作读取默认寄存器中的内容。寄存器是完成这一过程的中转站,Vim 支持的寄存器非常多,其中常用的有 a-z A-Z 0-9 +”。其中:

  • 0-9:表示数字寄存器,是 Vim 用来保存最近复制、删除等操作的内容,其中 0 号寄存器保存的是最近一次的操作内容。

a-z A-Z:表示用户寄存器,Vim 不会读写这部分寄存器

  • “(单个双引号):未命名的寄存器,是 Vim 的默认寄存器,例如删除、复制等操作的内容都会被保存到这里。

  • +:剪切板寄存器,关联系统剪切板,保存在这个寄存器中的内容可以被系统其他程序访问,也可以通过这个寄存器访问其他程序保存到剪切板中的内容。

如果想了解更多寄存器内容,可参照官网文档

通过下面命令可以查看所有寄存器中的内容,也可以只查看指定寄存器的内容(将寄存器名称作为参数)

:reg [register_name]

然后你就能愉快地使用"+y来粘贴文本到系统的剪切板了。

安装clipboard功能

你可能会说,老哥你这个没有用啊!我根本都没看到"+寄存器啊!

其实我也是这么走过来的……,所以我告诉你,你是没有安装好clipboard的功能。

  • 检查vim是否支持clipboard功能:
vim --version | grep clipboard
  • 如果有 +clipboard 则跳过这一步; 如果显示的是 -clipboard 说明不支持, 需要
sudo apt install vim-gtk

安装完成之后就可以复制vim文本内容到clipboard了。

vim按了Ctrl + s后假死的解决办法

使用vim时,如果你不小心按了 Ctrl + s后,你会发现不能输入任何东西了,像死掉了一般,其实vim并没有死掉,这时vim只是停止向终端输出而已,要想退出这种状态,只需按 Ctrl + q即可恢复正常。

vim的宏录制功能

或许我们开始接触vim时会因为vim不能进行多次操作而觉得烦恼(比如我们想要将每一行的a改称b),我们会想这时候有多光标就好了(然而vim的使用最好是不用鼠标的)。这时候我们就需要宏了。

宏的简单介绍

宏的录制

在 Vim 编辑器中创建新文件或打开现有文件;
按 q 并跟上 宏名 开始录制。假设我们想要将宏名命名为 b ,则按 Esc 和 qb 开始录制;
文本编辑ing……
按 q 停止录制。至此,宏的录制已完成。

宏的运行

@接宏名即可运行宏一次,按次数接@宏名重复运行宏多次。

vim保存为文件

你是否有这样的烦恼,本来我就是使用vim来随便敲一下的,但是我发现我急需保存这个我写好的文件,而我却不知道怎么保存

使用:file filename(简便输入为:f filename)来保存你写好的文件,这样它会存在于你当前的目录中

使用vim对数字进行操作

Ctrl+a可以对数字进行自增(很智能的哪种,不是只能是个位数)。同理按Ctrl+x数字自减

使用buffer

缓冲区这个大家都很熟悉,由于比较有用还是得说一下

  • :ls

    list : 列出所有的buffers

    当然你也可以使用:buffers

    如果你使用:Buffers则会调出一个很方便的buffer管理器

  • :bnext

    next buffer : 调出下一个buffer

  • :b [bname]

    根据名字打开一个buffer

全局搜索

相信很多入门了vim的人都知道vim的全局搜索写法::[range]s/[pattern]/[substitute]/[flag],现在就讲讲这里面的参数

  • range

    不用说,就是多少行(范围)的意思

    " 1到5行
    :1,5
    " 所有行
    :%
  • pattern

    支持正则的搜索

  • flag

    g, n, c

    g代表全局搜索,n代表高亮显示匹配的内容,并返回匹配到的次数(这时候substitute就是空)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!