Vim的基本使用
好用的教程:https://vim.nauxscript.com/
常用命令:
查找字符串,例如搜索user:/user
,此时关键字被高亮,按n可以找下一个匹配,N为上一个
用法 | 键位 |
---|---|
移到单词开头 | b |
移到单词结尾 | e |
撤回 | u |
取消撤回 | control+r |
删除一行 | dd |
向后删一个单词 | de |
不退出vim执行shell | :shell ,然后exit返回vim |
搜索,例如user | /user ,然后n往下找,N往上 |
取消搜索高亮 | :noh |
移动到行尾 | ^ 也就是shift+6 |
移动到行首 | $ ,也就是shift+4 |
删除到结尾 | d$ |
替换一个字母 | r |
跳到某一行 | :n(n是具体的行数) |
vim使用技巧
删除匹配内容的行:
:g/@ApiOperation/d
这里,
g
代表全局命令,/@ApiOperation/
是搜索模式,匹配包含@ApiOperation
的行,d
是删除命令。这个命令会删除所有包含
@ApiOperation
注解的行。如果你想预览将要删除的行,可以先使用以下命令::g/@ApiOperation/p
替换匹配文本
-
替换第一个匹配项:
:s/old/new
这将替换当前行的第一个 "old" 为 "new"。
-
替换当前行的所有匹配项:
:s/old/new/g
g
修饰符代表全局替换(global),将当前行中的所有 "old" 替换为 "new"。 -
替换所有行的所有匹配项:
:%s/old/new/g
找当前光标后面的第一个匹配项:
先按:f
,再按对应要匹配的字母
插入剪切板内容
按p
会把剪切板内容插入到当前光标后,按P
会把当前剪切板内容插入到光标前
如果想要插入到下一行,可以使用命令模式:pu
Just Vim It
起步
- 跳到单词尾:
e
(命令模式中) - 跳到单词头:
b
(命令模式中) - 跳到下一个单词开头:
w
(命令模式中) - 删除光标所在行并进入输入模式:
cc
(命令模式中)
行相关命令
-
移动到光标所在行的第一个字符:
0
-
移动到光标所在行的除
blank
字符外的第一个字符:^
-
移动到光标所在行的最后一个字符:
$
-
移动到光标所在行的除
blank
字符外的最后一个字符:g _
插件快捷键
-
窗口移动快捷键:
Ctrl+l
:移动到右侧的窗口(替换了Ctrl+w l
)。Ctrl+h
:移动到左侧的窗口(替换了Ctrl+w h
)。Ctrl+j
:移动到下侧的窗口(替换了Ctrl+w j
)。Ctrl+k
:移动到上侧的窗口(替换了Ctrl+w k
)。
-
窗口分割快捷键:
Space + v
:在当前窗口垂直分割新窗口(<Leader>v
-><C-w>v
)。Space + s
:在当前窗口水平分割新窗口(<Leader>s
-><C-w>s
)。
-
跳转快捷键:
Space + [
:跳转到上一个位置(<Leader>[
-><C-w>o
)。Space + ]
:跳转到下一个位置(<Leader>]
-><C-w>i
)。
-
屏幕行和物理行的移动:
j
:如果有计数前缀,移动物理行;如果没有计数前缀,移动屏幕行。k
:如果有计数前缀,移动物理行;如果没有计数前缀,移动屏幕行。
Lazy
输入:Lazy
打开面板
nvim-cmp
-
文档滚动:
Ctrl+b
:向上滚动文档。Ctrl+f
:向下滚动文档。
-
项目选择:
Ctrl+k
:选择上一个项目。Ctrl+j
:选择下一个项目。
-
确认选择:
Enter
:确认选择。
-
Tab键跳转:
Tab
:如果补全菜单可见,选择下一个项目;如果光标前有单词,触发补全。Shift+Tab
:选择上一个项目或跳转到上一个片段位置。
LSP-Mason
-
全局诊断快捷键:
Space + e
:打开诊断浮动窗口。[d
:跳转到上一个诊断。]d
:跳转到下一个诊断。Space + q
:将诊断设置为位置列表。
-
LSP 缓冲区快捷键(在
on_attach
函数内):gD
:跳转到声明。gd
:跳转到定义。K
:显示悬停文档。gi
:跳转到实现。Ctrl + k
:显示签名帮助。Space + wa
:添加工作区文件夹。Space + wr
:移除工作区文件夹。Space + wl
:列出工作区文件夹。Space + D
:跳转到类型定义。Space + rn
:重命名符号。Space + ca
:触发代码操作。gr
:列出引用。Space + f
:格式化代码(异步)。
null-ls格式化
-
跳转相关快捷键:
gD
:跳转到声明。gd
:跳转到定义。gi
:跳转到实现。gr
:查找引用。<leader>D
:跳转到类型定义。
-
文档及签名相关快捷键:
K
:显示悬停文档。<C-k>
:显示签名帮助。
-
工作区管理:
<leader>wa
:添加工作区文件夹。<leader>wr
:移除工作区文件夹。<leader>wl
:列出工作区文件夹。
-
重命名与代码操作:
<leader>rn
:重命名符号。<leader>ca
:触发代码操作(支持n
和v
模式)。
-
格式化代码:
<leader>f
:格式化代码(异步执行)。
telescope.nvim
-
查找文件:
<leader>p
:调用Telescope find_files
,用于查找文件。
-
全局搜索:
<leader>P
:调用Telescope live_grep
,在文件中执行全局搜索。
-
恢复上次搜索:
<leader>rs
:调用Telescope resume
,恢复上次的搜索结果。
-
打开最近文件:
<leader>q
:调用Telescope oldfiles
,打开最近访问的文件。
nerdtree
这是你配置的 NERDTree
插件快捷键列表:
-
切换 NERDTree:
<leader>t
:调用:NERDTreeToggle
,用于打开或关闭NERDTree
文 件浏览器。
-
查找当前文件位置:
<leader>l
:调用:NERDTreeFind
,在NERDTree
中定位当前文件。
TextObj
operator+textobj
- 比如我现在有一段文本:
dajhhjdwa(abc)
我想要把括号内的换成别的东西,那么只需要ci(
- 查看operator文档
:help operator
代码补全: