代码之家  ›  专栏  ›  技术社区  ›  Brian M. Hunt

VIM中的Javascript缩进

  •  15
  • Brian M. Hunt  · 技术社区  · 16 年前

       new function($) {
         $.fn.setCursorPosition = function(pos) { 
           if ($(this).setSelectionRange) {
             $(this).setSelectionRange(pos, pos);
           } else if ($(this).createTextRange) {
             var range = $(this).createTextRange();
             range.collapse(true);
             range.moveEnd('character', pos);
             range.moveStart('character', pos);
             range.select();
           }
    

    结果是相当荒谬的:

           new function($) {
           $.fn.setCursorPosition = function(pos) {
           if ($(this).setSelectionRange) {
           $(this).setSelectionRange(pos, pos);
           } else if ($(this).createTextRange) {
           var range = $(this).createTextRange();
           range.collapse(true);
           range.moveEnd('character', pos);
           range.moveStart('character', pos);
           range.select();
           }
    

    我已经准备好了 set syntax=javascript filetype 收件人:

    filetype detection:ON  plugin:ON  indent:ON
    

    虽然我已经试过每一种排列方式。我试过每一种 smartindent , autoindent ,和 cindent ,但似乎没有什么能给Vim带来预期的压痕。我已经准备好了 tabstop=4

    我已经安装了 javascript.vim ,和 IndentAnything

    对于如何在JavaScript中正确地进行Vim缩进,我将非常感激。

    7 回复  |  直到 11 年前
        1
  •  11
  •   Dean    12 年前

    哦,天哪,我刚花了几个小时解决了同样的问题。

    如果你有 filetype indent on 你可以在某处设置一些不同的设置。如果你使用 verbose set <option>?

    :verbose set autoindent?
    :verbose set cindent?
    :verbose set smartindent?
    :verbose set indentexpr?
    

    cindent 由默认缩进文件设置:

    cindent
    Last set from $VIMRUNTIME/indent/javascript.vim
    

    在哪里? $VIMRUNTIME 是你跑步时得到的路 :echo $VIMRUNTIME .

    对我来说,我有一个插件(eclim)正在设置 identexpr 引发了这个问题:

    identexpr=EclimGetJavascriptIndent(V:lnum)
    Last set from ~/.vim/bundle/eclim/indent/javascript.vim
    
        2
  •  5
  •   ryanjdillon    8 年前

    https://github.com/pangloss/vim-javascript

    安装非常简单。

    pathogen ,请使用以下步骤:

      cd ~/.vim/bundle
      git clone https://github.com/pangloss/vim-javascript.git
    

    如果你正在使用 呜呜 使用以下步骤:

    Plugin "pangloss/vim-javascript"
    

    然后安装它:

    :so ~/.vimrc
    :PluginInstall
    
        3
  •  4
  •   sleepynate    16 年前

    添加两个右大括号并使用 vi{ 在没有插件的gvim7.2中为我提供了适当的自动缩进。您可能想看看是否有一个错误的插件在使用 --noplugins

        4
  •  3
  •   michaelmichael    16 年前

    我不喜欢说“这对我有用”之类的无益的话,但确实如此。即使我的.vimrc和所有插件都没有关闭,我也得到了正确的缩进。

    new function($) {
        $.fn.setCursorPosition = function(pos) { 
            if ($(this).setSelectionRange) {
                $(this).setSelectionRange(pos, pos);
            } else if ($(this).createTextRange) {
                var range = $(this).createTextRange();
                range.collapse(true);
                range.moveEnd('character', pos);
                range.moveStart('character', pos);
                range.select();
            }
    

    你试过用维姆装 --noplugins

        5
  •  3
  •   Habi    16 年前

    对我来说,它很管用(我知道,这不是很有用的说法;—)。

     :set filetype
    

    说什么?它应该报告“javascript”。

    提示:请注意有一个名为“filetype”的选项和一个名为:filetype的命令。

        6
  •  3
  •   Blair Holloway    16 年前

    前几天我在MacVim7.2和一个Lua文件中遇到了问题,即使在使用之后也不能正确缩进 set syntax , set filetype filetype indent on ,它没有正确缩进文件。

    filetype plugin indent on
    

    给我的 .gvimrc 文件解决了这个问题,至少对我来说。基督教青年会。

        7
  •  0
  •   theoski    9 年前

    我在卢本图使用Vim7.4