Neovim(Vim) 中的跳转操作
Post on February 16, 2025 · 2526 words · reading time 2 min
一份关于 Neovim/Vim 中文件跳转和导航操作的详细指南,包含文件切换、快速打开、路径补全等实用技巧。
vim 跳转相关操作
快速打开或切换当前目录中的指定文件
- 直接在命令模式下打开
:e filename
:直接在当前 Vim 实例中打开指定文件filename
。- 例如,
:e config.json
会打开当前目录下的config.json
文件。
- 例如,
- 利用路径补全
- 输入
:e
后按下 Tab 键:Vim 会自动补全当前目录下的文件名,你只需要输入部分文件名,然后按下 Tab 键即可。
[!tips]
:e
是edit
的缩写,主要用于打开或编辑文件。
:e
命令的基本用法
- 打开新文件:
:e newfile.txt
这会打开一个新的 buffer
,并加载 newfile.txt
文件内容到 buffer 中(如果文件存在
- 切换到已打开的文件:
:e %
这个命令会切换到当前窗口中打开的另一个文件。
- 重新加载当前文件:
:e!
这个命令会丢弃当前缓冲区中的所有修改,并重新加载文件。
- 指定行号打开:
:e +10 filename.txt
这会打开 filename.txt
文件,并把光标定位在第 10 行。
- 指定搜索内容打开:
:e +/pattern filename.txt
这会打开 filename.txt
文件,并把光标定位在第一个匹配 pattern
的行。
- 打开远程文件:
:e scp://user@host/path/to/file
这会通过 SCP 协议打开远程服务器上的文件。
- 打开多个文件:
:args file1.txt file2.txt file3.txt
这会将多个文件添加到 ARG 列表中,然后你可以使用 :bn
和 :bp
在这些文件之间切换。
:e
命令与其他命令结合使用
:args
:列出所有打开的文件。:bn
:打开下一个文件。:bp
:打开上一个文件。:bw
:关闭当前窗口。:tabnew
:在新标签页中打开文件。:vsplit
:垂直分割窗口。:split
:水平分割窗口。
在已打开的文件间(窗口)切换:
[!tips]
:split
→ 创建分屏 (:vsplit
创建垂直分屏)<C-w><dir>
: dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个来切换分屏。<C-w>_
(或<C-w>|
) : 最大化尺寸 (<C-w>|
垂直分屏)<C-w>+
(或<C-w>-
) : 增加尺寸
Ctrl+w
+w
: 在所有打开的窗口之间循环切换。Ctrl+w
+h
: 切换到左边窗口。Ctrl+w
+j
: 切换到下边窗口。Ctrl+w
+k
: 切换到上边窗口。Ctrl+w
+l
: 切换到右边窗口。在已打开的文件间切换:
:bn
:打开下一个文件。:bp
:打开上一个文件。:ls
:列出所有打开的文件,并显示对应的编号。然后使用:b number
跳转至指定编号的文件。
举个例子:
如果你打开了三个文件,分别在三个窗口中显示,你可以:
- 使用
Ctrl+w w
不断在三个窗口之间切换。 - 使用
:ls
查看所有打开的文件,然后使用:b 2
跳转到第二个文件。
在当前编辑文件中跳转
跳转到指定行:
:行号
:直接跳转到指定行,例如:10
跳转到第 10 行。nG
:跳转到第 n 行(n 为行号)。gg
:跳转到文件开头。G
:跳转到文件末尾。
在当前行上移动光标: ![[../Illustrations/Pasted image 20250116131731.png]]
0
:跳转到行首。^
:跳转到行首第一个非空字符。$
:跳转到行尾。g_
: 到本行最后一个不是blank字符的位置。fx
:跳转到当前行第一个 x 字符(x 为任意字符非单个,例如’function’)等于1fx
ffunction
→ 跳转到当前行的第一个 “function” 字符4fi
→ 到当前行第四个出现的 i 。
Fx
:跳转到当前行最后一个 x 字符。tx
:跳转到当前行第一个 x 字符之前。d
和t
组合使用, 其他的命令也可,例如y
dt"
→ 删除所有的内容,直到遇到双引号"
Tx
:跳转到当前行最后一个 x 字符之后。
跳转到匹配的字符:
/pattern
:向下搜索 pattern。?pattern
:向上搜索 pattern。n
:重复上一次搜索。N
:反向重复上一次搜索。
跳转到匹配的括号:
%
:跳转到匹配的括号(如()
、{}
、[]
)。
跳转到标记:
ma
:在当前位置设置标记 a。'a
:跳转到标记 a 的位置。
快速跳转到文件开头或末尾:
H
:跳转到窗口顶部。L
:跳转到窗口底部。M
:跳转到窗口中间。
z 操作符
zz / z.
: 将当前行移动到屏幕中间,使当光标保持在当前行zt
: 将当前行移到窗口顶部。zb / z-
: 将当前行移到窗口底部。zf: 将当前行折叠成一个折叠。
zo: 打开一个折叠。
zc: 关闭一个折叠。
za: 交替打开或关闭一个折叠。
使用搜索和替换进行跳转:
:%s/old/new/gc
:全局搜索并替换,每次替换前询问确认。
示例
- 打开一个新的垂直分割窗口,编辑 test.txt 文件:
:vsplit test.txt
- 跳转到当前文件的第 20 行:
:20
- 跳转到当前行的第一个 “function” 字符:
ffunction
- 在所有文件中搜索 “error” 并替换为 “warning”:
:%s/error/warning/g
- 在当前文件设置一个标记 a,然后跳转到该标记:
ma
,'a
Other vim operates
Post on February 16, 2025 · 289 words