最后更新于 .

网上的一张VIM的使用图,觉得不错就贴在这里(并无盗用之意,只是实在不知道出处是哪),看看各位VIMER们能看出他是怎么实现的不?

code_complete

呵呵,相信Vimer们就心照不宣啦~~我只吐个槽-----那就是,配色是desertEx,嘿嘿

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. args

    args on #

    完全不知道。。。。求出处??

    Reply

    1. Dante

      Dante on #

      刚才有朋友已经回答啦~~
      那些for循环之类的使用的这款插件--snipMate
      http://www.vim.org/scripts/script.php?script_id=2540
      有兴趣可以试一下~~

      Reply

  2. GeassLei

    GeassLei on #

    菜鸟求答案。。

    Reply

    1. Dante

      Dante on #

      刚才有朋友已经回答啦~~
      那些for循环之类的使用的这款插件--snipMate
      http://www.vim.org/scripts/script.php?script_id=2540
      有兴趣可以试一下~~ 嘿嘿 www.vim.org上有好多好插件的~~

      Reply

  3. qwert

    qwert on #

    snipMate

    http://www.vim.org/scripts/script.php?script_id=2540

    Reply

    1. Dante

      Dante on #

      哈哈,楼上正解~~

      Reply

  4. 果然如此

    果然如此 on #

    其实不是Snipmate,是Codecomplete
    http://www.vim.org/scripts/script.php?script_id=1764

    Snipmate的代码模板功能远强过Codecomplete
    但是Snipmate木有函数形参补全功能……

    话说在我一个留言里面说过好像,Codecomplete我早些时候用过,但是发觉他的模板功能不足,并且函数形参补全遇到复杂一点的形参,例如函数指针类型的形参就会出问题,后来就改用Snipmate了

    Reply

    1. Dante

      Dante on #

      哦哦,我那天又特意去看了vim这类相关的插件,像snippetEmu,Snipmate之类,奈何还是不习惯用他们,难道我喜欢手写代码的感觉?呃……杯具……

      Reply

  5. hydRAnger

    hydRAnger on #

    神奇…

    Reply

    1. Dante

      Dante on #

      嘿嘿,有时间可以试一下~

      Reply

  6. hehebushiwo

    hehebushiwo on #

    看这个应该是code_complete.vim.
    想知道图中出现的高亮的竖调是怎么操作的?有什么用处?

    Reply

    1. Dante

      Dante on #

      呵呵,终于看懂啥意思了,那是列模式,ctrl+v进入

      Reply

      1. Sunny

        Sunny on #

        他的意思是移动鼠标时的对齐/indent 提示吧, 我也想知道怎么实现的.

        Reply

        1. Yggdroot

          Yggdroot on #

          以前觉得这个功能不错,就实现了一下:
          autocmd CursorMoved,CursorMovedI *.cpp,*.c,*.h,*.cc
          \ if virtcol('.')%(&shiftwidth) == 1 && virtcol('.') != 1 &&
          \ index(['{','}'],getline('.')[virtcol('.')-1])>=0 |
          \ setlocal cursorcolumn |
          \ else |
          \ setlocal nocursorcolumn |
          \ endif
          后来觉得绕眼就去掉了。

          Reply

  7. iam070

    iam070 on #

    是不是需要原先建立标准函数库的tags

    Reply

    1. hehebushiwo

      hehebushiwo on #

      运行下面这个脚本:生成系统函数的tag文件(~/.vim/systags)。
      .vimrc 中添加此tag文件
      set tags+=~/.vim/systags

      脚本文件
      -------------------------------------------------------
      TAGS_BIN="/usr/bin/ctags"
      SYSTAGS_OUT="$HOME/.vim/systags"
      TAGFLIST="/usr/include/*"
      RTAGFLIST="/usr/local/include/gtk-2.0/ \
      /usr/include/sys/ \
      /usr/include/bits/ \
      /usr/local/include/glib-2.0/ \
      /usr/local/include/mysql/ \
      /usr/include/net \
      /usr/include/netinet \
      /usr/local/include/cairo \
      /usr/local/include/curl"

      CTAGS_FLAGS="--c-kinds=+p --fields=+iaS --extra=+q --language-force=c"

      #[[ -x $CTAGS_BIN ]] && \
      #$CTAGS_BIN --verbose $CTAGS_FLAGS -f $SYSTAGS_OUT $TAGFLIST -R $RTAGFLIST
      ctags --c-kinds=+p --fields=+S -f $SYSTAGS_OUT $TAGFLIST -R $RTAGFLIST
      ls -lh $SYSTAGS_OUT

      Reply

      1. Dante

        Dante on #

        嗯嗯,楼上正解~~ 把常用的几个库都给建立tags啦~~哈哈

        Reply

        1. iam070

          iam070 on #

          windows的话,只能自己来了。
          我问过code complete的作者了,他的标准函数形参补全也是需要建立tags。

          还有,你的_vimrc里面“自动记住上次文件打开位置”那部分跟code complete和echofunc冲突,导致第一次打开文件,必须在插入模式下输入几个字符,退出再打开,两个插件才能正常工作。

          Reply

    2. Dante

      Dante on #

      呃,codecomplete的问题应该确实要建立tags哦。
      对于那个自动记住文件位置那段代码,会有兼容的问题吗,那段代码是vimrc_example中的哦,应该没有什么问题的,我回去研究一下~~~

      Reply

      1. iam070

        iam070 on #

        我跟作者沟通了一下,他也不知道为什么会有这种问题。只是问我的_vimrc设置有没有问题。

        我就试着简化了一下_vimrc,看到你的那段记住打开位置的代码,不顺眼,删除了,一切就OK了。

        Reply

        1. Dante

          Dante on #

          呃,我不是用codecomplate……是用snipmate,所以一直没发现有这样的问题……

          Reply

  8. ivy

    ivy on #

    求解:这段话是指的是哪部分代码?
    你的_vimrc里面“自动记住上次文件打开位置”那部分跟code complete和echofunc冲突,导致第一次打开文件,必须在插入模式下输入几个字符,退出再打开,两个插件才能正常工作。

    我用latex_suite编辑tex时,每次打开文件都不能自己加载插件,要输入一条命令,关闭再打开才行,请问是什么问题?

    Reply

    1. Dante

      Dante on #

      那段代码的话是这里:
      autocmd BufReadPost *
      \ if line("'\"") > 1 && line("'\"") <= line("$") |
      \ exe "normal! g`\"" |
      \ endif

      对于第二个问题的话,你是不是没有打开文件类型检查?
      filetype plugin indent on

      Reply

      1. ivy

        ivy on #

        打开了,用其它语言比如C,C++都能识别并补全,就用latex_suite发现有问题.

        Reply

        1. Dante

          Dante on #

          奇怪,你要输入一条什么命令才正常的?

          Reply

          1. ivy

            ivy on #

            我要输入\documentclass之类的tex命令.
            所以每次都不能直接用模板,要先输入一条命令,再打开用:TTemplate命令选择模板.所以有点郁闷,不知道是什么问题.

            Reply

  9. bingoboy

    bingoboy on #

    博主。。它那个 for或者switch 里面生成的高亮显示的那个如何快速编辑阿。。。

    Reply

    1. Dante

      Dante on #

      snipmate

      Reply

  10. laoshufeifei

    laoshufeifei on #

    您好,我问个问题,我把snipMate配置好后,打入if然后按tab,他会自动打出{ },但是我不太习惯这种风格,我想问的是怎么把{ } 在同一列中对齐啊?

    Reply

    1. laoshufeifei

      laoshufeifei on #

      ok,我知道了,修改.vim/snippets/下的对应的文件就可以了。
      嘿嘿

      Reply

发表评论