how do I install ruby-mode for emacs - ruby

I have just installed emacs for fedora.I want to use emacs to write ruby. What are the tools,extensions needed that provide me code hinting,code completion type features for ruby ?

ruby-mode is already included from Emacs 23 onwards. It's also available via ELPA though. Some other things you might be interested in are integrating RVM, feature-mode (Cucumber), rspec-mode, ruby-electric, inf-ruby, rinari (for Rails) etc. Here's my current Emacs configuration for Ruby development:
https://github.com/citizen428/emacs.d/blob/master/config/ruby-conf.el
I also wrote a blog post on this topic once, it's a bit outdated and my config has changed since then, but it's better documented and maybe helps you in getting started:
http://www.citizen428.net/blog/2010/07/06/emacs-for-rubyists
If you use yasnippet you can find Ruby completions here: https://github.com/bmaland/yasnippet-ruby-mode
If you are completely new to Emacs, you might want to start out with Emacs Prelude or the Starter Kit:
Emacs Prelude
emacs-starter-kit

Related

Is there a way to get code completion working with the qt4ruby library?

I'm currently just starting into ruby development and decided that I'd like to use qt4ruby to develop my gui, however when I use RubyMine or Aptana studio, code completion fails to function.
I've tried this both on Windows (with gem qtbindings) and ubuntu 14.04/15.04.
Thanks~
You might want to give Atom a try.
Atom does code completion. It does not have the Qt syntax built in, but it suggests completions of code which is already in memory.
And it does excellent syntax highlighting for ruby.

Vim's Ruby option is not enabled

I just started learning Ruby and I ran this command:
vim --version
The output looks like this (look at the yellow circle):
Which means that my Vim does not include the 'ruby' function.
But it seems my Vim supports Ruby fairly well:
q1: Is there any problem with my Ruby programming with the -ruby?
q2: How can I enable Ruby function in Vim?
The functionality on the second screenshot is given by installing the vim-ruby plugin.
The internal Ruby support is to allow people to write plugins and scripts for Vim using Ruby and it's not strictly necessary for what you seem to want to accomplish.
If you REALLY want to add Ruby support, you can always build Vim from source (or get a package with it already built). I suggest you to look into Vim's homepage for more info on this matter.
The difference you are missing is between using Vim to program in a language such as Ruby, and using a given language to program Vim.
Writing Ruby code using Vim is enabled by Vim's native syntax files, as well as various third-party plugins available for Vim. This is the case for many, many languages, not only those mentioned in the :version screen (Perl, Python, and Ruby). You can use Vim to write code in C, Scala, PHP, Javascript, and many other languages, with support for syntax highlighting, smart indenting, and so on.
Writing Vim functions and plugins can only be done in a small set of languages. Natively, Vim code is always written in its own language, Vimscript. However, Vimscript is notoriously difficult to deal with, and most people will not already know it. So Vim also has the ability to use plugins written in other languages, such as Python or Ruby. This enables people to use a more familiar language for plugin development.
However, using those languages requires binding to an interpreter for the language, and this must be decided at the time Vim is compiled. The :version screen is telling you that for your installation of Vim, the Ruby support was not enabled, so you can not write plugins using Ruby, nor can you use any available plugins which were written in Ruby.
Notice that +python is present, so you can use Python plugins (but -python3 is there too, meaning that you do not have Python 3.x support built in).

Recommendation for Emacs/Ruby setup

So far I'm very happy with my Clojure/Emacs setup but failed to come even close to this experience when using Ruby. I tried the enhanced ruby mode (no syntax highlighting) and robe (which fails with a syntax error as soon as the console is started). I would really appreciate any tips where to find some proper guidelines on how to configure Emacs for Ruby.
BTW: I do not need any Rails support. Just plain Ruby support.
I find the following setup quite good:
ruby-mode from Emacs 24.4 or above - it's quite an improvement over the one in Emacs 24.3
inf-ruby - a way to run irb/pry inside Emacs
smartparens - superb handling of delimiters like (), [], {}, do/end, etc.
yari - ri interface for Emacs
ruby-tools - adds commands to turn a string to symbol, symbol to string, single to double quote string, double to single quote string, clear string, interpolate and more...
flycheck + RuboCop for on-the-fly linting and code style checking
AFAIK many rubyists are also using yasnippet. I've given up on trying to find a good "intelli-sense" alternative for Ruby in Emacs, but other than that I'd say the above setup is quite solid. It's pretty much what you'd get by using Prelude's Ruby module.
This isn't a real answer since I'm not a Ruby user but I am tied into the Emacs community and these things have shown up on my radar before
http://www.emacswiki.org/emacs/RubyLanguage (the wiki, although sometimes out of date, is a good place to start from for queries like this).
http://crypt.codemancers.com/posts/2013-09-26-setting-up-emacs-as-development-environment-on-osx/ was recently on HN and has a detailed setup.
Sacha Chua's chat with Avdi Grimm mentions a few of the tools that Avdi uses for his Ruby work.

Setting up an emacs environment in windows?

I am currently constrained to a windows dev box and I want to migrate my projects from eclipse to emacs.
What are some good references on setting up an emacs dev environment for windows? Anything that could assist in migrating from eclipse as well would be appreciated.
If you're used to windows behaviors (e.g. ctrl-c is copy, etc.), a good (customized) version of emacs for windows is the 'EmacsW32' package.
If you're looking at migrating away from eclipse, I assume that you probably want java support. For this you will want to get the JDEE package, also. Unfortunately, it's non-trivial to deploy on windows, as it depends on other packages (and requires cygwin or msys (pseudo-unix environments for windows) in order to install).
You may also want to install additional modes to support e.g. SCM systems, etc. A good source of information for this is the EmacsWiki. There's a significant amount of material there about emacs on windows, although some of it is out of date....
Sure, just download a prebuilt version and use it.
For example, as I use R a lot with the wonderful Emacs ESS mode, the prebuilt version by Vincent Goulet is really useful as it contains Emacs, ESS, Auctex (for LaTeX) and more.
Other prebuilds exist for Cygwin, MinGW, or plain old Windows.
Eclipse is pretty good on Windows; I'm a big user of emacs but for Java development I spend most of my time in Eclipse.
Regarding general use of emacs on windows I highly recommend you install GnuWin32, as it is much faster than Cygwin and integrates very well. Also see my blog post on Visual Studio tricks in emacs and this one on tags.
I'll assume you are doing Java development for the most part and that you would prefer not to be using Windows. This is a situation I find myself in from time to time. My preferences are to use a Linux machine (virutal or real) in addition to the Windows machine. Emacs just works better in a real Unix environment. And then use both Emacs and Eclipse where each is stronger. Emacs for editing, mail, planning, "thinking" type stuff and Eclipse for debugging, refactoring, some error fixing. Fortunately both Emacs and Eclipse make it easy to use both simultaneously.
I generally use EmacsW32 on a new box - it's a good option at least initially. I'd also recommend checking out the emacs starter kits which hook up to ELPA (http://tromey.com/elpa/), which allows you to get a usable setup pretty quickly.
Install Cygwin.
In your .emacs, load these two files, in this order:
http://www.emacswiki.org/emacs/download/cygwin-mount.el
http://www.emacswiki.org/emacs/download/setup-cygwin.el

Ruby and linux, preferred setup?

Mac's have TextMate as there preferred application for ruby development, but what would be the preferred application for linux? I need something where it's easy to work with multiple files, project structure and setup commands to run my ruby app or if it is one my merb app.Syntax highlighting is also a must.
Now I typically use Vim, but it's not the best for working with multiple files or with a project structure, even with VTreeView plug-in or multiple VIM windows.
So what would you guys suggest?
If you have better plugins to use for VIM feel free to mention them, I'm not ruling out VIM here.
I use Vim on both Windows and Linux for development in Rails (we have to use Windows in work, and I only use Linux at home). The environment is almost exactly the same for both platforms. Especially important for me is easy navigation between the various Rails components - from Controllers to views, partials and models, and quick navigation to test files.
Here are the plugins I use:
Vim Rails by Tim Pope. The :R, :A and gf commands are the ones I use mostly for navigation.
NERDTree for a project/explorer view.
NERDCommenter for easy multi-line commenting.
FuzzyFinder and "FuzzyFinder - Textmate" - allows you to quickly find files based on portins of a file name.
Ctags
Bufexplorer
dbext for executing SQL commands and getting the results in a Vim buffer.
Ack and the ack plugin for a better grepping experience from within Vim.
VividChalk colour scheme.
RubyMine from JetBrains.com works well for Mac/Linux/Windows, the price is 99$ but it's probably the most productive IDE for Ruby and Rails I have tested so far.
Setup Gedit to be almost like Textmate
Aptana with the Rails plugin is pretty good.
If you are on Ubuntu/Debian, plain old emacs with ruby-elisp package isn't bad. It's no TextMate, but it's not bad.
I prefer Netbeans on both linux and Mac
+1 for Netbeans for Rails. Each release gets better and better and with 6.7 beta it's better yet. Using it on Windows and Mac -- under Linux it's what I'd use as well.
Since you are a vimmer, have you looked at this? I have no experience with it, but looks quite good in the screencast.
Why don't you just use Sublime Text 2 Text Editor, it is free and cross platform and lighter than any IDE, and then you can install the SublimeCodeIntel which will provide you with autocomplete features , you can do that through installing Package Control , then
⌘+shift+p → “install” → ENTER → “codeintel” → ENTER → Restart ST2
It is working perfectly with me and I'm totally in love with this smart editor .
You can find this helpful somehow if you wanna give it a try , http://www.rockettheme.com/magazine/1319-using-sublime-text-2-for-development
I'm using it with zsh Terminal http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
Anyways if you are looking for a full IDE give netbeans a try http://netbeans.org/projects/ruby/
I prefer Aptana/RadRails on both Mac and Linux. It gives a consistent experience for me no matter what OS I'm on.
I still don't get the excitement over Textmate...
Given that you use vim, this post might be interesting.
Her is the Fuzzyfinder Textmate vim plugin that the post refers to.
Aptana Studio is indeed very nice. Also Gedit does the job if you don't want a full IDE environment and are more inclined to do stuff by hand :).
The other answers are about ruby editors, so I thought I will add an answer on my linux setup.
I use Ubuntu with VM player (free) on top of windows 7. I dedicate 2 core and 2 GB to the vm. Benefit of using the VM on top of windows is that I can use linux just for development and windows for everything else. Skype, webex, and team viewer works in windows, but i find them to be flaky in linux. Also I use office once in a while, very easy on windows.
I have been using GMATE for a while and I can say that I only need gnome-terminal to complete my ruby/groovy/python setup. It have themes imported from textmate and do some method/property code completion (not much ok? but it comes handy).
Edit: forgot to say that GMATE is a set of plugins for Gedit (default text editor on gnome)
With Linux there are 3 really good IDEs and all are free. You have Eclipse, Netbeans, and Aptana... They are all very good and each have some benfits over the other, its more a matter of preference. I would suggest downloading all 3 and giving them a try to see which you prefer.

Resources