.vimrc表现得像Textmate?

时间:2012-03-05 22:14:30

标签: textmate vim

我正在从Textmate切换到VIM,我想知道我的.vimrc中应包含哪些内容以获得类似的行为:

  • 括号,paranthesis等自动关闭
  • 括号后的自动标签
  • 当我打开一个支架并选择回车时,开放式支架位于第一行,第二行的光标缩进,第三行的结束支架
  • 按下<tab>将会生成一个共同的'for'use

感谢。

2 个答案:

答案 0 :(得分:11)

首先要注意的是你无法将Vim变成TextMate 。第二,是你甚至不应该尝试

相反,请集中精力学习Vim,逐步增加/缩小您的设置和插件集合。使用Janus或其他一些“发行版”只会让Vim隐藏在其他人的任意选择之后。

那就是说,

  • “自动关闭括号,paranthesis等”

    可以通过将此行添加到~/.vimrc

    ,以“愚蠢”的方式完成
    inoremap ( ()<Left>
    
    • inoremap用于插入模式下的映射(请注意i

    • (是您要按的键,这是您的触发器

    • ()<Left>表示输入一对括号,然后返回括号之间的一个字符

    如果您需要“更聪明”的方式,可以选择many plugins

    你可能想尝试surround这本身就是我从TextMate切换的一个非常令人信服的理由。

  • “当我打开支架并选择回车时,左侧开放式支架,第二行上的光标缩进,第三行上的右侧括号”

    也可以通过多种方式完成,例如:

    inoremap <C-Return> <CR><CR><C-o>k<Tab>
    
    • inoremap,再次

    • <C-Return>表示Ctrl+Return,这是您的触发器

    • <CR><CR>表示2次回车以将结束括号推到下面2行

    • <C-o>仅针对一个命令退出插入模式

    • k上一行

    • <Tab>将插入光标放在正确的位置

    Vim中的映射就是这样:按键序列或更严重的脚本的快捷方式。

  • “按下<Tab>将会生成一个共同的”for“使用”

    可以使用像SnipMate这样的专用插件来完成。有others

答案 1 :(得分:7)

  

自动关闭括号,paranthesis等。

此功能有许多插件:autocloseclosepairssimplepairs

  

括号后的自动标签

通过这个,我相信你的意思是自动缩进。当您处理支持的文件类型时,这是默认的Vim行为。如果您刚开始使用某个文件并且尚未保存,则可以使用:set ft=<whatever filetype you want>手动设置文件类型,并且您将获得缩进和语法突出显示。

  

当我打开一个支架并选择回车时,开放式支架位于第一行,第二行的光标缩进,第三行的右括号

以上自动关闭插件将对此进行处理。

  

标签将生成一个共同的“for”使用

这些在TextMate中称为“片段”。 Snipmate是一个常用的片段Vim插件。其他人更喜欢xptemplate

如果您从TextMate迁移到Vim,我会尝试安装Janus并仔细阅读文档。

Janus是Vim,gVim和MacVim的插件和映射的首选发行版。它具有理智的默认设置,旨在使用最流行的插件和最常见的映射提供最小的工作环境。它由Carl Lerche和前TextMate用户Yehuda Katz开发并维护。

我个人的经验/建议是,你真的可以疯狂地试图模仿你最喜欢的编辑器的每个功能。你试图复制的每个功能可能只是你习惯通过肌肉记忆的一个怪癖。如果你只是开始“接受”Vim,学习它并重新训练你的肌肉记忆,你将会更有效率。