代码之家  ›  专栏  ›  技术社区  ›  Justin L.

使用vim编程Ruby(相对于Notepad++)有什么好处(其他语言也一样,但特别是Ruby)[关闭]

  •  2
  • Justin L.  · 技术社区  · 15 年前

    我用Notepad++已经有一段时间了;事实上,我甚至已经开始使用Launchy来实现“立即将此资源加载到编辑器中”的功能,这是许多像Eclipse这样更完整的IDE所具有的功能。它有语法高亮显示,拆分窗口视图,代码折叠,括号(和其他分隔符)配对,自动缩进,块注释。

    然而,似乎无论我走到哪里,人们都在使用vim来满足他们的编程需求。

    我不太了解的是人们所推崇的这些杀手级应用。“在vim中调试Ruby是一种改变生活的体验”,或者说,当使用它时,魔法是如何发生的。

    我特别指定Ruby是因为我想为它找到一些插件。请注意,我是 欣赏一些关于其他语言编程的通用vim知识。

    谢谢,我希望我的问题不要太含糊,也不要引起任何讨厌的编辑大战。

    6 回复  |  直到 15 年前
        1
  •  5
  •   DataWraith    15 年前

    我只列出一些我喜欢vim编程的东西(没有特别的顺序):

    • 语法突出显示

      ruby语法高亮显示非常好。有一点似乎特别独特,那就是关键字的颜色可以根据上下文的不同而有所不同。这个没有我想要的那么多,但是你可以很容易地看到 end 语句关闭,例如if语句或函数定义。

      另一个好处是,因为vim知道文本的哪些部分是注释,所以只能对这些部分进行拼写检查。

    • 自动缩进。

      = 自动(重新)缩进我突出显示的所有内容。

    • plugin completions 它们用途广泛。他们知道标准库中类的方法,查看您打开的其他文件(适用于变量名和类方法),识别您何时键入文件名,等等。

    • 有一个插件叫做 snipMate 为常用的文本片段提供快捷方式。这对写测试之类的东西有很大帮助。

    • 代码折叠

    • 插件,插件,插件!

      Rails integration , Rspec integration , autoclosing 圆括号, matching 打开块的关键字{ def do , if , while 等。)到他们的 结束

        2
  •  2
  •   Telemachus MrJames    15 年前

    它是一个非常强大的开箱即用的编辑器,它与版本控制集成良好,并且有大量优秀的附加组件可用(看到了吗 the scripts page 以及 the tips wiki )这些都是很好的理由 考虑

    对于非常特定于Ruby的附加组件,请查看 endwise by Tim Pope ,作为一个例子(它会自动插入 end 之后 do if 实际上几乎所有的 Tim Pope's scripts 可能对红宝石专家有用。

    如何获得语法突出显示?

    .vimrc .gvimrc 以获得语法高亮显示和自动缩进(假设您需要)。Vim附带的例子可以让你开始,如果你搜索'vimrc'或'gvimrc',你会得到大量的点击。也就是说,以下是我的一些建议:

    " Most general settings first
    set nocompatible            " Set Vim rather than Vi settings; must go first
    set noeb                    " Set no audio or visual error beep
    set bs=indent,eol,start     " Backspace over everything in insert mode
    set history=500             " Keep 50 lines of command line history
    
    " Set items for view @ bottom of windows
    set ruler                   " Show the cursor position all the time
    set showcmd                 " Display incomplete commands
    set showmode                " Display current mode
    set ls=2                    " Always show status bar
    
    " Syntax basics
    syntax on
    filetype indent on
    set autoindent
    set smartindent
    filetype plugin on
    
    " Text basics
    set textwidth=80            " Set text to wrap at 80 columns
    set expandtab               " Convert tabs to spaces
    set tabstop=4               " Tabs = 4 spaces 
    set shiftwidth=4            " Indent/outdent 4 spaces
    set softtabstop=4           " Tab key indents 
    set shiftround              " Indent/outdent to nearest tabstop
    set smarttab                " Uses shiftwidth @ start of lines
    set fo=trcn
    
    " An exception for Ruby files
    autocmd FileType ruby set tabstop=2
    autocmd FileType ruby set shiftwidth=2
    autocmd FileType ruby set softtabstop=2
    autocmd FileType ruby set number    
    
    " Search basics
    set incsearch               " Do incremental searching
    set showmatch               " Show matching brackets
    set hlsearch                " Highlight all matches in a search
    
    " Don't use Ex mode, use Q for formatting
    map Q gq
    
    " Pick a colorscheme
    colorscheme Dim
    
        3
  •  1
  •   Michael Ulm    15 年前

    我个人的杀手特征是谦逊 . 命令。此命令在当前光标位置重复上一次编辑。这可以节省大量的时间。

        4
  •  1
  •   maerics    15 年前

    ad-hoc macros .

    q 然后是存储宏的键名(我经常使用 m 对于宏助记符,但任何字母都可以)并且您会注意到 recording q 你又在信里录了一个宏 . 现在输入 @m 20@m

    特别是对于Ruby,语法高亮显示( :syn on ),自动缩进( :set cindent ),和paren/bracket paring( %

        5
  •  1
  •   mp.    15 年前

    我认为VIM的主要优势在于它是跨平台的。现在您使用的是notepad++,这是一个很棒的编辑器(即使它没有很好的宏功能)。明天,你可能不得不使用另一个操作系统,你应该学会使用另一个文本编辑器。

        6
  •  1
  •   Geoff Lanotte    15 年前

    我知道你从哪里来。我使用IDEs甚至notepad++的时间比我想记住的还要长。如果您使用VIM进行的只是基本的导航,那么您将无法充分利用它的潜力。虽然有几个非常强大的插件,但我不认为找到合适的插件是VIM如此强大的原因。

    对我来说,另一个致命的特性是使用regex搜索和替换。我强烈建议你多了解一下。或者用杰米斯巴克的话来说,“了解你的工具”。

    ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf