.vimrc表现得像Textmate?

Kob*_*obi 1 vim textmate

我正在从Textmate切换到VIM,我想知道我的.vimrc中应该包含什么来获得类似的行为:

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

谢谢.

rom*_*inl 11

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

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

那说,

  • "自动关闭括号,paranthesis等"

    可以通过将此行添加到您的"哑"方式来完成~/.vimrc:

    inoremap ( ()<Left>
    
    Run Code Online (Sandbox Code Playgroud)
    • inoremap用于在插入模式下映射(注意i)

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

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

    如果你需要一种"更聪明"的方式,有很多插件可供选择.

    您可能想尝试环绕,这本身就是我从TextMate切换的一个非常令人信服的理由.

  • "当我打开支架并选择回车时,开放式支架位于第1行,第2行的光标缩进,第3行的结束支架"

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

    inoremap <C-Return> <CR><CR><C-o>k<Tab>
    
    Run Code Online (Sandbox Code Playgroud)
    • inoremap再一次

    • <C-Return>意思是Ctrl+Return,这是你的触发器

    • <CR><CR> 意味着2个回车推动闭合支架2线以下

    • <C-o>仅对一个命令保留插入模式

    • k 上一行

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

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

  • "按下<Tab>将会产生一个共同''用'"

    可以使用像SnipMate这样的专用插件来完成.还有其他人.


mic*_*ael 7

括号,paranthesis等自动关闭

这个功能有很多插件:autoclose,closepairs,simplepairs

括号后自动标签

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

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

这将通过上述自动关闭插件来处理.

按下tab将产生一个共同的'for'用途

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

如果您从TextMate转移到Vim,我会尝试安装Janus并彻底阅读文档.

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

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