【问题标题】:Vim+ZenCoding. How can I get SublimeText2-like behaviour?Vim+Zen 编码。如何获得类似 SublimeText2 的行为?
【发布时间】:2012-02-12 11:25:27
【问题描述】:

我开始使用带有 zencoding 插件的 vim。例如,我输入 div,点击 mapkey 并得到这个(我是光标位置):

<div>I</div>

如果然后我会按 enter,我会得到这个:

<div>
I</div>

但我想得到这个(就像在 SublimeText2 中使用相同的 zencoding 插件):

<div>
    I
</div>

我该怎么做?也许在 zencoding 插件或 vim 中的 secret mapkey 中有一些设置?

ps 对不起我的英语。

UPD 我尝试使用 SparkUp,但它根本不起作用。我的 vimrc 文件中有 Python 2.7 和 "filetype ... on" 行,但它仍然不起作用。为什么?我不知道。 关于环绕插件。不一样,就像用sn-ps一样。

【问题讨论】:

  • Surround 和 Zen/Sparkup/Snipmate 有两种不同的用途。环绕是当您认为“这是我的内容,我希望它是 p”或“这个标题不是那么重要,我必须将其设为 h2”。其他是当您认为“我将在此处放置 div”或“好的,我需要一个 table 和 3 个 trs 和每个 4 个 tds”时。

标签: vim emmet


【解决方案1】:

这个映射对我有用:

inoremap <C-Return> <CR><CR><C-o>k<Tab>

详细说明:

  • inoremap 表示这是一个INSERT模式映射

  • &lt;C-Return&gt; 表示我必须点击Ctrl-Return 才能触发它

  • &lt;CR&gt;&lt;CR&gt;插入两个回车

    <div>|</div> ==> <div>
    
                     |</div>
    
  • &lt;C-o&gt; 允许在不离开 INSERT 模式的情况下键入单个 NORMAL 命令

  • k 是有问题的命令,它将光标向上移动一行

    <div>       <div>
            ==> |
    |</div>     </div>
    
  • &lt;Tab&gt; 将光标移动到我想要的位置

    <div>      <div>
    |      ==>     |
    </div>     </div>
    

【讨论】:

  • 感谢您的回答。我以前不知道 命令。你的键盘映射和这个有区别吗:&lt;cr&gt;&lt;Esc&gt;O&lt;Tab&gt;
  • 原则上并非如此。我使用&lt;C-o&gt; 而不是&lt;Esc&gt;,因为我在&lt;Esc&gt; 上自动发生了一些事情。我猜至少有十几种方法可以做到这一点。
【解决方案2】:

你可能想试试Sparkup,它是一个 Zencoding for vim 的实现(除了 zencoding.vim)。

此外,您可以尝试Surround,它允许使用 {、[、(、引号或 HTML/XML 标签“包围”任何文本对象。在可视模式下,选择文本对象并按 S(那是大写的“S”)并输入标签,结果就是你想用zencoding.vim实现的结果

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2011-04-11
    • 2019-06-14
    • 1970-01-01
    • 2012-12-29
    • 2011-09-24
    • 2023-04-02
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多