views:

123

answers:

6

Possible Duplicate:
Do you use a single editor (well)?

Do you use one text editor for all your needs?

I am reading Pragmatic programmer and in Basic Tools section, authors mention using learning one editor fully and then using it for all your needs - coding, email, documentation.

I use visual studio ide for c# and I see his point if I need to switch to other ides like eclipse or so. And I can't use visual studio editor for everything, so does it make sense to learn editor like vi.

And more importantly, Is it even possible to use one editor for most of your needs. How you cope with things like syntax highlighting and more importantly intellisense etc.

Edit: Thanks for the responses. I think I will continue with Visual Studio + Notepad++ for now.
At the same time I have downloaded gvim :) and while searching for it, it was heartening to see vim text mode for visual studio with VsVim which I hope to make use of

+1  A: 

Do you use one language for all your needs? Why don't you just focus on mastering one language? Maybe the carpenter should focus on just learning how to use a saw and master that?

The book was great, but this was one of the points I've learned to disagree with over time.

I currently use:

  • Visual Studio for .NET code
  • nuSphere PhpEd for PHP code
  • Flashnote for throwaway notes and snippets
  • Notepad++ for just about anything else

Having said that, if Visual Studio absorbed the things I like from the other editors I could be swayed to use only VS. The problem is that no one editor meets all of my specific needs, and the general question of whether one editor can possibly be general enough to meet all your needs but specific enough to meet them all well remains unanswered, as it does with programming languages.

Graphain
A: 

I use Visual Studio for compatible languages (C#, C++,..) and for everything else I love working with Notepad++, it has syntax highlighting for a lot of languages, it has some nice functionality and it has a decent skin system (I can't stand a with background)

From wikipedia:

Some IDEs support multiple languages, such as Eclipse or NetBeans, both based on Java, or MonoDevelop, based on C#.

Support for alternative languages is often provided by plugins, allowing them to be installed on the same IDE at the same time. For example, Eclipse and Netbeans have plugins for C/C++, Ada, Perl, Python, Ruby, and PHP, among other languages.

I tried using eclipse with the php plugin and both syntax highlighting and intellisense were great.

Lobsterm
+2  A: 

I don't think using one editor for everything is sensible or efficient. Usually, the one-size-fits-all editor really just caters to the lowest common denominator, and fails to deliver productivity gains for the specific environment in which you are working.

In my opinion, the best editors leverage significantly from the context in which they are used.

Intellisense-style features save a lot of time, but they require in-depth knowledge of context. In the case of C#, the Visual Studio editor knows enough about the structure and context of your project code to be able to assist you with useful suggestions for code completion.

Also, some of the most useful navigation shortcuts may be based upon context. In the case of Visual Studio, you can jump to the definition of a function or variable easily, because it knows the context and scope in which your search is conducted. Similarly, features like the object browser or class view are only relevant for programming, but are extremely useful.

In reverse, some features will just slow down the application if they are not useful in a specific context. For example, a spell-checker is a great feature in a document editor like Word, but serves very little purpose in a code editor like Visual Studio.

MrUpsideDown
As just about anybody who's used VA-X (for one example) can attest, having a spell-checker (that's intelligently designed) built into your code editor is actually *extremely* useful!
Jerry Coffin
A: 

Use an editor that (like VS) can adjust its behavior, syntax highlighting, etc., on a per-language basis. That way you can retain as much common behavior as you desire, but still have exactly the specialization you prefer as well.

In reality, of course, you'd like to be able to do a lot more per-language customization than VS does. It should allow a completely separate set of macros, add-ins, key-bindings, etc. You should be able to save each set of settings into a file (and have it auto-loaded from a file) so you can do things like have a company-wide set of files stored on a server or email somebody a reasonable starting point for being productive in the new language you just wrote a compiler for.

Of course, there are also editors other than VS that allow you to change the setup on a per-language basis, and some of them do quite a bit more of what I've outlined above than VS does.

Jerry Coffin
A: 

That sounds like a good suggestion: invest time and really learn to master one single text editor.

However, odds are you won't work for the same company for the rest of your life and you might eventually find yourself writing software professionally or as a hobby for different platforms (Windows, Linux, Mac OS X, ... you name it!) and will discover that each of these systems have pretty cool text editors with unique features that are worth mastering.

Keep an eye open for cross-platform solutions like Vim.

Once you master one text editor really well, you'll notice the transition to use another text editor is going to be much smoother than the previous one.

karlphillip
+2  A: 

Vim (or Emacs) are extremely powerful tools to edit text with. They both have every possible feature you could dream of for editing (spell checking comments, code-folding, definition lookup, reg-exp search/replace etc..). They take a long time to learn, but in the end you will be more efficient. It is not possible to edit text quicker in an IDE because it is oriented around the mouse and not the keyboard.

With that said, I would also quickly point out that Vim is oriented around a *nix environment. The build systems on Linux are based around text files and shell utilities. On Windows you loose all of that leverage which Vim has been developed around. Windows has taken the IDE approach. So, you will have an top-notch text-editor but your project build environment will probably be lacking.

So if you are lucky enough to only to only have to use Unix-like systems, then Vim or Emacs is definitely all you would need to know.

nate c