有什么方法可以让 vim 像 vscode 一样工作(至少接近)?

有什么方法可以让 vim 像 vscode 一样工作(至少接近)?

我不得不说,我和 vim 之间最大的障碍是缺乏简单的方法来实现

  1. 匹配整个单词
  2. 区分大小写
  3. 多光标

在此处输入图片描述

匹配整个单词的意思

在此处输入图片描述

关于多个游标,有一个答案: https://stackoverflow.com/questions/11784408/vim-multiline-editing-like-in-sublimetext

太复杂了,ctrl+d选择词块,点击一下,匹配一次再选择就好了。

我想要的就是尽可能简单,不必安装一些插件。我通常使用 vim 来检查一些文件,但是当我需要查找和替换或使用多个光标时,我必须切换到 vscode 或 sublime。

这对我来说是一个很大的障碍,无法使用 vim。我该如何配置/插件 vim 才能让它足够容易地达到三点。

答案1

我将尝试在这里解答您的问题,看看是否能为您解决其中的一些问题。

匹配整个单词

你可以在 Vim 中搜索时匹配整个单词,方法是使用\<\>锚点围绕着这个词。

例如:

/\<withColumn\>

更简单的方法围绕这个就是使用*#命令,它将搜索光标下的单词(*向前、#向后),并在执行此操作时自动使用\<\>锚点。我发现这些往往在我编写代码时最有用,因为我通常会在附近找到我要查找的函数/变量/类名,因此我可以直接导航到那里并使用*查找下一个出现的位置,然后重复使用以n继续查找更多出现的位置。

如果您倾向于/更频繁地使用搜索,并且希望节省输入\<和的时间\>,请考虑添加映射,例如:

nnoremap g/ /\<\><left><left>

g/键序列将开始搜索,然后为您输入\<\>,最后向左移动两次,使光标正好位于它们的中间,以便您输入搜索词,然后仅将其作为整个单词进行搜索。

区分大小写

您并没有真正详细说明...但默认情况下,Vim 中的搜索区分大小写。但您可能正在使用将.vimrc它们配置为不区分大小写或在某些情况下不区分大小写的设置,因此了解控制该设置的设置是很好的。

  • set ignorecase:这将使搜索不区分大小写,因此如果您想要区分大小写的搜索,请确保您没有设置该设置。您可以使用检查此设置的当前状态,:set ignorecase?也可以使用:set noignorecase(或:set noic.)禁用它。

  • set smartcase:这个使搜索不区分大小写只有当搜索词中只有小写字母 'ignorecase''ignorecase'也已设置。因此,更准确地说,当搜索词中有大写字符时,即使设置了,也会区分大小写。

您可能同时设置了这两个设置(这是一个相当流行的设置),并且当您的搜索词全部为小写时,您会看到不区分大小写的搜索...因此,如果始终区分大小写,您可能需要考虑'ignorecase'从中删除它.vimrc或明确覆盖它set noignorecase

您还可以在特定搜索中覆盖这些内容,\C\c作为搜索词的一部分。

如果您希望搜索整个单词的映射始终区分大小写,请考虑以下映射:

nnoremap g/ /\C\<\><left><left>

'ignorecase'这根本不取决于设置。

多个游标

您链接到了另一个问题,但我不确定您是否看到了答案中提到的插件,该插件完全符合您的要求。那里得票最高的答案只谈到了可视块模式,这非常有用,但在处理未对齐且不在连续行上的标识符时不起作用。

这个答案另一方面,提到了vim 多光标插件,据我所知,它的功能与 VSCode 或 Sublime 中的多个光标完全相同。

(我实际上不是这个插件的用户,也不是 VSCode 的用户,也不是 Sublime 的用户,所以我不能确定,但​​看视频,它看起来就像你描述的那样。)

我鼓励您仔细研究一下这个插件,看看它是否适合您的使用情况。

然而,我想指出的是,即使没有多个光标,你只需使用基本命令即可在 Vim 中对文件进行大规模更改,而无需任何插件。

我推荐这篇文章Christoph Hermann 的“在 vim 中你不需要多个光标”对这个主题进行了很好的阐述,其中包含许多具体的例子和高级用例,远远超出了您使用多个游标能够完成的范围。

简而言之,如果您需要多个光标,请查看vim 多光标插件,但如果您想学习 Vim 中可以执行相同类型编辑任务的命令,请阅读文章(或在线查找,您肯定会找到更多关于使用 Vim 高效重构代码的帖子。)

相关内容