noevim记录
#前言
noevim
一些技巧汇总
#删除并粘贴
删除或拷贝默认会替换剪切板的内容,虽然neovim
的剪切板可以设置为系统的,但是在系统中复制粘贴并不会写入0
号复制专用寄存器。
#nvim-cmp 顺序问题
在使用nvim-cmp
自动补全插件时,提示词并不会默认选中第一个,原因作者回复了:https://github.com/hrsh7th/nvim-cmp/issues/1809,是 gopls 的问题,解决方法是把插件的预选修改:
1 | local cmp = require("cmp") |
#查询格式化信息
本质上使用的是:conform.nvim
1 | :ConformInfo |
#查询 treesitter 节点信息
1 | :InspectTree |
#多行编辑
1 | # 竖向选区 |
#vim 笔记
- 高亮选区的范围由其两个端点界定。其中一端固定,而另一端可以随光标自由移动,我们可以用 o 键来切换其活动的端点。
- 启用了
wrap
之后,长度会折叠,出现屏幕行与实际行不同的情况。gj
作用于屏幕行,j
作用于实际行。 - 一个单词由字母、数字、下划线,或其他非空白字符的序列组成,单词间以空白字符分隔。而字串的定义则更简单,它由非空白字符序列组成,字串间以空白字符分隔。
W
、B
、E
、gE
是面向字串的移动方式。- 可视模式下,会有范围限定词,
t
是一个特殊的,代表 xml 或者 html 这类的标签选定(感觉算是特殊优化)。 m{a-zA-Z}
命令会用选定的字母标记当前光标所在位置。小写位置标记只在每个缓冲区里局部可见,而大写位置标记则全局可见。'{mark}
命令跳到位置标记所在行,并把光标置于该行第一个非空白字符上;而`{mark}
命令则把光标移动到设置此位置标记时光标所在之处,也就是说,它同时恢复行、列的位置。
- 当我们使用
y{motion}
命令时,要复制的文本不仅会被拷贝到无名寄存器中,而且也被拷贝到了复制专用寄存器中,后者可用数字0
加以引用。复制专用寄存器,顾名思义,仅当使用y{motion}
命令时才会被赋值。 - 怎样才能知道 p 命令是把寄存器的文本粘贴到当前字符之后还是当前行之后呢?这取决于这个指定的寄存器是怎样被赋值的。面向行的复制或者删除操作(例如:dd、yy 或者 dap),将创建面向行的寄存器;而面向字符的复制或者删除操作(例如:x、diw 或者 das),则创建面向字符的寄存器。一般而言,使用 p 命令的结果会一目了然。
Gitalking ...