第三章 代码浏览
约 914 字大约 3 分钟
2025-01-11
软件开发者通常会花费更多的时间编辑代码而不是写, 我通常在 Debug, 加一些特性和重构代码. 确实, 我最常做的就是在我的代码库中的某一行添加 print/printf/Println/console.log.
如果你之前用的是普通的文字处理或文本辑辑生态系统, 在代码中移动是 vim 的模式范式中最不同的地方. 即使你习惯用 vim, LazyVim 的默认插件提供了一些与旧的 Vim 不一样的代码跳转方法.
在 VS Code 中, 你想要从代码的一个地方跳转到另外一处, 最好的方法是用鼠标点. 对于小范围的移动, 鼠标可以很好的完成, 同时配合 Ctrl, Alt 和 Cmd/Win, 可以提升你的移动范围, 比如按词、段落,或者跳到行的开头或结尾。还有很多其他的快捷键可以让导航更方便,语言服务协议的支持使得语义代码导航变得简单,比如“跳转定义”和“跳转符号”。
注
我也不知道这什么
Vim同样支持鼠标导航,但一旦你熟悉了按键映射,你可能会更少使用它。LazyVim 为与 VS Code 相同的语言服务协议功能提供了键绑定,并且它们通常更易于访问。Vim 的一个大区别在于,当你的编辑器处于普通模式时,整个键盘的 navigation 命令都可以使用
寻找文本
LazyVim 自带了一个名为 flash.nvim 的插件, 由 Folke(LazyVim 的维护者)创建.
这个插件提供了一种代码跳转的方法,这种方法己经在 Vim 的插件中已经存在了很多年, 也一直有不少的争议. 许多长期使用 Vim 的用户认为它打破了 Vim 的范式。我不会详细说明原因,但我会承认在旧版本的范式中确实如此,但在现代版本中,如 flash.nvim,这种情况有所减轻。
如果你可以看到你要跳转的地方(在你当前屏幕上显着的), flash.nvim 通常以最快的方式将你的光标移动到那里. 当然, 你最少要三次按键, 但你并不需要额外的思考或逐渐接近你的目的地, 这在其他的 Vim 跳转方式( 或非模态编辑器中) 是效率很低的.
要调用 flash , 只需要在 正常模式按 s 键, 我的记忆技巧是将 s 和"seek", 联系到一起, 虽然也有人称为 "sneak" 或 "search", 但在 LazyVim 中 search 更多指 "/", 这不关心文本是否可见, 而 "sneaking" 听起来有点不诚实, 所以我使用 "Seek".
注
rainzm/flash-zh.nvim
提供了小鹤双拼的中文支持
shininome/flash-zh.nvim
提供了虎码的中文支持
当你按下 s 你会注意到所有的文本都会褪色, 状态栏会出现一个小闪电符号, 表示 Flash 模式己激活
你知道你光标要到哪里,你知道那里的符号是什么,你也正看着那里。所以在你进入 Seek 模式后,你只用简单的输入那个符号就好了。 例如,在如下的截图中,我想要修复这一部份标题的错字,把 test
改为 text
。
我已经双击了
s
, 然后每个 s
都转为蓝色,包含大写的 S
。