【问题标题】:Vim Shortcuts or plug-ins for the following以下的 Vim 快捷方式或插件
【发布时间】:2014-10-02 11:16:46
【问题描述】:

我一直在使用 Sublime 编辑器,并且正在切换到 vim(因为我必须这样做)。我听说 Vim 是最好的编辑器,如果你能掌握所有的快捷键的话。以下是我的一些需求。请告诉我应该使用哪个快捷方式/插件来实现它们。

  1. C 中的 Switch-case 语句:我需要 10 个 case。那么如何快速添加它们呢?有没有类似case n:10+ 的东西?
  2. 大括号补全:我需要一个自动关闭大括号}。与括号相同。
  3. 在 CSS 中:属性的代码完成。
  4. 代码收缩选项:在 Sublime 中,您可以通过按行号左侧的 > 类似符号来收缩块中存在的代码(如函数或循环)。这在 Vim 中可行吗?
  5. 程序员(C、C++、php、CSS、HTML)可以使用任何其他快捷方式/插件来提高他/她的工作效率。

感谢任何帮助。

【问题讨论】:

  • “(因为我必须)”这将是第一次。

标签: html css c vim code-completion


【解决方案1】:
  1. C 中的 Switch-case 语句:我需要 10 个案例。那么如何快速添加它们呢?有没有类似案例 n:10+ 的东西?

    ocase :<CR>break;<Esc>
    9.
    

    :help repeating

    不过,请查看 SnipMateUltisnips

  2. 大括号补全:我需要一个自动关闭大括号}。同样需要括号。

    那个“功能”没有那个有用,但如果你还没有厌倦它,你可以找到a good list on the Vim wiki..

  3. 在 CSS 中:属性的代码完成。

    它是内置的。在几个字符后尝试&lt;C-x&gt;&lt;C-o&gt;。如果您不喜欢默认的&lt;C-x&gt;&lt;C-o&gt;,请创建自己的:

    inoremap <key> <C-x><C-o>
    

    参见:help key-mapping:help key-notation

  4. 代码收缩选项:在 Sublime 中,您可以通过在行号左侧按 > 类似符号来收缩块中存在的代码(如函数或循环)。这在 Vim 中可行吗?

    该功能被普遍称为“折叠”。您可以使用zc 关闭折叠,使用zo 打开它,使用za 切换它等等。见:help folding

  5. 程序员(C、C++、php、CSS、HTML)可以使用任何其他快捷方式/插件来提高他/她的工作效率。

    在寻找插件之前学习 Vim。

【讨论】:

  • 谢谢。我精通 vim 的基础知识。
  • 我推荐“环绕”,以及 Taglist 或 Tagbar,用于任何编码。除此之外,它实际上归结为偏好......那里有很多好的插件,你永远找不到“必须拥有”插件的明确列表。无论如何,这样的列表在 StackOverflow 上都是题外话。有一个软件建议堆栈交换,这是主题:softwarerecs.stackexchange.com
【解决方案2】:
  1. 如果 ctags 数据库已正确配置且是最新的,如果您的 switch 位于枚举上,则 lh-cpp 提供(通过 mu-template)CTRL-X_se 映射,该映射将生成您的 switch-case。如果您想从整数生成它,这是可能的(但如果没有映射/命令来封装它有点棘手)

    :call MuTemplate('c/switch', {'values':reverse(range(1,5)), "name": "foo"})

  2. lh-cpp 嵌入 lh 括号,提供nice brackets support

  3. (如果我没有写“3”,那么将重新编号 4 到 3。-> 这个空洞无用的答案)

  4. 这在 Vim 中称为折叠。通常人们使用syntaxindent foldingmethod。我厌倦了它并为 C 和 C++ 重新设计了旧的 plugin - 该插件仍然需要许多改进。

  5. 有很多。在 C 和 C++ 中,YouComplete 是必不可少的。然后我使用我的插件来集成 CMake,有一个项目概念。其他人使用其他东西。这个问题没有明确的答案。

【讨论】:

  • 谢谢。请给我发送有关此 ctags 数据库的链接。我无法消化这一切。任何作弊或参考就足够了
  • 你需要安装一个像 exuberant ctags 这样的软件。然后,对于您给定的项目,您需要告诉 vim 在哪里可以找到标签文件 (:h tags)。关于 C++,我使用以下选项生成我的 ctags 数据库:--c++-kinds=+p --fields=+imaS --extra=+q --language-force=C++(我通过 2 个插件来完成:一个用于项目管理,一个用于生成 ctags DB,以及一些调整)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 2011-04-14
相关资源
最近更新 更多