What's so great about TextMate? [closed] - text-editor

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Almost every developer that uses a Mac practically worships TextMate. Why? What extraordinary features does it have that other text editors and IDEs don't? I did a quick search and the only really useful feature that I found that most other editors lack is the column selection option, but I wouldn't use a certain editor just for that. What makes TextMate so amazing?

TextMate was the first app I bought when I switched to the Mac a few years ago.
The features I like most are:
bundle support
clean UI
project support
shell integration
fast for small files (fast startup time)
HTMLTidy built in
CSS and XHTML validation integrated (needs online connection)
but it also has some drawbacks:
slow for big files
lack of updates (for some time now, but TextMate 2.0 seems to be alive)

The main selling point is the ability to extend the UI using bundles, which are basically just shell scripts. It is also fairly lightweight.

I think the appeal of TextMate is that its not bloated ... its has just the right mix of text editing / IDE features, implemented in just the right way :)

A lot of editors have column selections (although in a lot of them its buried deep down). The actual fact TextMate is liked is it's bundle system, which makes some repetitive programming tasks much easier. It's not considered a replacement for languages that have IDE-s with "intellisense" support (Java, C#, etc.), but it's really useful if you want to create programs in a scripting language like ruby or python.

TextMate is very powerful and at the same time usable, intuitive, elegant and lightweight.
On the other hand e.g. the two most popular Unix editors Emacs and Vi(m) are both very powerful but IMHO(!) their usability is not up to todays standards. (I use all three of them but think TextMate is by far the best.)

I've been trying to use TextMate as a replacement for Emacs. So far I'm not sold, though I like projects, simpler/cleaner UI, and the idea that it's extensible using python, etc. (I've never mastered elisp).
Things I don't like [in comparison to Emacs]:
no ability to swap point/mark or return to previous marks.
movement keys don't automatically take you out of inline search.
tags not so great (ex: no symbols can be found in java files without classes).
completion only searches current file.
NOT OPEN SOURCE.
Okay, I still want to give it a fair shot, but mostly I'm just missing Emacs' superior functionality and feeling increasingly forgiving of its challenging UI and more willing to try to learn elisp for real. Even for projects, using emacs desktop-save in a project folder can accomplish nearly the same thing.
-taranaki

Textmate basically has all the power of <insert your favorite unix editor here> with a nice Mac OS X UI wrapped around it and a great plugin system using bundles, of which hundreds are available and most are either good or awesome.

Community support.

Related

Should I invest Time Learning Emacs? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I know that this question has been asked many times before. However, I want to take everything that I have read about Emacs/Vim from other posts, give my own understanding of the situation, and request feedback from senior developers.
Here is what I see as the advantages of each type of IDE:
Advantages of Modern IDE
Many features work with little hassle or need to configure like: Text
completion / autogenerating closing tags Useful warnings tailored to
the language
Solving issues like the ones above often require a
significant time investment. I know that you become faster at finding
and installing the packages you need, but it seems like every
extension you need in a traditional editor is much more readily
available or already built-in in modern IDE / Code editor.
For compiled languages like Java, IDEs like IntelliJ seem to have a clear
advantage in the way they are able to analyze code and for the robust
debugging they offer. As far as I can tell, even if you spend a lot
of time configuring Emacs, there is no substitute for IntelliJ even
no matter how much time you invest.
Emacs/Vim Advantages
Though there is a lot more time investment, it seems like there is a strong consensus that the time investment has a significant payout for many developers. I do not necessarily even know these benefits, but I just know that Emacs/Vim is a very powerful and loved tool by many many highly experienced devs.
Extensibility
Availability (you can use either in a terminal very easily)
Great for SSH
Full org mode (versus the much more limited org mode in VSC)
Model-editing / Vim keybindings can make editing much faster once you learn it. Also, key chords in Emacs can make you much faster and keep you on the keyboard.
Related to above, but it seems that the more you commit to Emacs, the more you can get out of it because of the extensibility. Whatever your work flow is, usually there is a way to set up Emacs to take care of the whole nine yards for you.
I am guessing because of the above, it probably helps with your focus. You can keep everything inside emacs.
So my only big question is, "Do I have an accurate understanding of the advantages of each IDE?" A harder to question answer for me is, "Do I want to invest more time in learning Emacs or Vim?" (sidenote: will probably go with Doom Emacs) Right now I have been programming for two years. I am currently learning Javascript to help me get employed and will be focusing on that for months in the future. I keep going back and forth on whether I should just go with VSC and focus on Javascript or if I should learn Emacs concurrently.
I would recommend activate a Vim plugin within your IDE. That way you will learn bit by bit without affecting your productivity. After some time you can judge by yourself if it is worth learning more and go full Vim or just use the IDE. I use Vim for 5 years and I still have to take a look at the Vim documentation everyday. But I do it because it is fun to learn to do complex text manipulation with few strokes. If Vim does not suit you, try Emacs, then. But only trying each one will tell you what fits your style.
Here is a quick intro to Vim

Should a Project Tree plugin like NERDTree be used alongside a fuzzy-searcher plugin like CtrlP? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Before you light all fuses; I know this might come off as quite opinion-based. I am asking for functional differences, not "is X better than Y and why".
I have been using fuzzysearcher-plugins for some years now, as my previous employer quickly made mockery of me for "needing to actually SEE my files". I've been getting along with CtrlP for a while, but more often than not, when I see a Vim-user whip up his environment, there's NERDTree.
Am I missing out on any important functionality?
Depending the the nature of your project the structure could be very important. It maybe helpful to see you project files. However the use of an always open NerdTree instance is probably not worth it. Please see Oil and vinegar - split windows and the project drawer.
As for exact functional advantages of having a file explorer always open, I seriously doubt it. I think you would get much more usage out of something like projectionist and of course using a fuzzy finder like you are currently doing. Personally I use Tim Pope's vinegar so that if I need a file explorer it is a simple - away.
First you have to understand that Vim already comes with a rather powerful file explorer called netrw (:help netrw) so there's actually no real hard need for another file explorer plugin like NERDTree. But netrw is not really designed to be used as a "side-panel" like those found in other editors and IDEs: "desire" for that feature is what prompted the creation of NERDTree which closely mimics those "side-panels".
Both NERDTree and netrw give you a familiar file navigation interface that's quite handy when you don't have a good knowledge of the project you are working on: they give you a comfortable experience and therefore are quite valuable.
When you know your directory structure well or use alternative means of navigation (I'm thinking about tags), a file explorer — especially one that's "always on" — is not that useful and it's quite legitimate to prefer the simple :e and/or :find or the higher level abstraction provided by CtrlP, FuzzyFinder, Command-T and friends.
I usually prefer :e, :find, :tag and related commands to using a file explorer but there's always a time when using one is more efficient and, when that time comes, netrw is only an :Ex away.
Both navigation methods are not mutually exclusive at all.
A core aspect of the issue worth discussing, IMO, is the perceived need for such a "side-panel". Do we really need to have a list of the files in our project visible at all times? What's the benefit of such a feature when you consider that you never look at it and, really, never use it unless you need to open or interact with some files? Since you have to switch your focus from the editor to the file explorer anyway, why not simply, well… "open" the file explorer when you actually need it? Of course, the NERDTree window can be toggled but, most of the times, it's just left open. Simply because that's what most people are used to.
Now, comformity, lazyness and ignorance also come into play: NERDTree is listed as a "must have" in every blog post and, AFAIK, it's also provided by default in every crappy distribution so people often install it right away, without even knowing about netrw. The same could be said about CtrlP, of course.

Wish to learn a new programming language [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I wish to learn a new programming language but there are so many out there! So thought I'd ask here if there are any that correspond with what I wrote in this list that you might know of:
Making applications with GUI
That would preferably run on any system, preferably Windows (I run Windows 7)
That would not need a hardcore IDE and hopefully no compiling
That is not incredibly advanced (Hard syntax paired with OOP etc.)
That does not need any 'platform' or 'component' installed to work (can be opened with a click, say an .exe file or any other file type)
I already know:
HTML, JavaScript and PHP
Thanks in advance for your input.
I'd recommend Python to anyone.
You seem to have some mutually exclusive options here.
For example, no compiling and opening an .exe. An exe file is generated via compilation.
IMHO, Qt probably best suits your needs. It runs on just about everything, doesn't need an IDE (though qtcreator is a fantastic one, I suggest trying it before you choose not to use an IDE) and is easy to learn and well documented.
If you want compile-less then you'll need to use the python or other scripting language bindings too it.
I would suggest C-sharp / F-sharp combination with WPF thrown into that to get GUI's going...
It a pretty rough learning curve but the combinations are endless...
A couple things to certainly look into:
PRISM
M-V-VM ( Model , View, Viewmodel)
If you are interested in an other back-end persistancy try going into object databases, such a great new world opened up for me when I discovered all the things you can do with that... ( DB4O is my preferred one at this moment.. it has loads of info and a very active community )
It is only limited by your imagination ;)
This is one of those questions of having 10000 people going to an Ice cream shop and then choosing which flavour they want. So far I have worked with Delphi and C#, I am doing SQL, Asp.net and javascript, well, basically!
The answer should be somewhat simple. Go check out which programming language fits your needs, and is in great demand in the working world. If you want to program websites for companies, then PHP, ASP.NET and the older HTML is for you. As far as I know, flash is also coding.#
Another way to look at this question is not only the availability of the language you seek, but its future, if it will become obsolete or the coding language of the century.All coding is the same, but some are more rigorous in certain tasks (like C# and delphi are good languages to build forms applications to handle tasks for data manipulation, integration and whatnot.)
The answer to this question is to explore! What is Your flavour? Sitting in front of a desk doing CRUD operations and staring into a gui which has countless buttons and textb
oxes, but real in-depth code, or to start into a rich gui with XML based code?
I recommend HTML5+Javascript.
You can use Canvas or SVG for
graphic.
It works depending on the browser. So
any OS or system can use it.
Javascript and HTML can be edited in
any thing for example: notepad.
You can write your JS using OOP.
How to open a HTML file? just
double-click on it.
Have fun :)

Any alternatives to Eclipse? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm a long-term Linux developer, and I've been using Eclipse to do all my coding for years. It's got decent syntax highlighting for a range of languages, good project management, top-notch integrated VCS support, and its Java support is superb.
Unfortunately it's also huge, rather clunky, and has a number of bad habits ranging from files disappearing irrevocably if you accidentally undo in the project view after creating a file, to mysterious lockups where it will sit and think at 100% CPU for a minute, to an extremely clumsy package manager that seems to become more and more fragile the more stuff you install with it. So I'm looking for suggestions to an alternative to Eclipse that I can try.
There are, however, some provisos.
There are two main styles of IDE. There's the Eclipse style, where a project is a directory; moving files in the project moves the files in the directory, so the project view can be treated as a file manager. And then there's the Visual Studio style, where the project is an abstract thing that does not necessarily match the layout on disk, and a project can contain files from multiple directories and moving files in the project doesn't touch the disk. This latter style I cannot stand, as it simply doesn't match the way I work. Unfortunately most Linux IDEs I've found work like Visual Studio. e.g. qtcreator, netbeans, monodevelop, etc.
I must be able to create a raw, unmanaged project, where the IDE doesn't try to build stuff, debug stuff, or touch the files in any way other than just editing them and managing them. This is because most of my stuff tends to get built from the command line. For example, Code::Blocks, which otherwise looks excellent, insists on all projects having a managed build system with build configurations etc, and won't take no for an answer, even if said build system is totally irrelevant to what I want to do. Integrated build systems are all very well but if I can't just point the IDE at a directory full of files and edit them, I'm afraid it's useless to me.
The languages I work in are C, C++, Java, Lua, shell script, Vala, and a myriad of other things, so something with decently robust syntax highlighting would be nice.
I realise that I'm being quite picky, but IDEs are a very personal thing, and, well, that's how I work. I don't dislike Eclipse enough to warrant changing my workflow, but I would like to know if there's something better out there that I can use with the same workflow...
I'm not really a very experienced programmer, I only have about 3 years of experience, but during those three years I have become completely disappointed with every IDE that I used.
I tried Visual Studio, Eclipse, NetBeans, IntelliJ IDEA (that was the most horrible of them, probably), Qt Creator (this one was the nicest, for Qt projects). All of them were too slow, clunky, too "intrusive", had a lot of features I didn't even need and using them was a real pain. So here is what I did.
I uninstalled all those IDE's, installed the good old gvim text editor, downloaded a nice color scheme for it, installed a good font for programmers (terminus), installed a few nice vim plugins, learned the VIM commands, learned how to use my tools (GNU make, g++, cvs, git etc.) and lived happily ever after.
The advantage of Vim is that it's lightweight, does not hog up your system's resources, does not tell you what to do, yet it is powerful enough to be one of the best text editors out there.
However, if you find Vim hard to grok, I suggest that you try Geany, a lightweight text editor for programmers. Also, I have recetly checked out Code::Blocks and it seems close enough to be good. It's not good for Java development, though, but for C++ it's decent. So, you know, pick your poison :)
How about JEdit?
I highly recommend Intellij Idea. As of about a year ago they've got a free Community Edition.
Since you are using Linux why not use xemacs (http://www.xemacs.org/)
To get an idea how to set it up for various languages you can look at this:
http://www.xemacs.org/Documentation/packages/html/prog-modes.html
Then for Java, you can look at http://jdee.sourceforge.net/
Emacs is very flexible, so you can get it to work as you desire, but, it will require more effort on your part that using a standard IDE, such as Eclipse.
When I don't want to wait for Eclipse to load I just use gedit - it's fast and has syntax highlighting.
You can open the sidebar to jump between open files or use the file browser and the bottom panel has a terminal to make in. If you use the External Tools Manager you can add custom scripts to be run by any shortcut key combination.

As a grapical IDE user, should I be interested in traditional editors? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I use full blown graphical IDEs such as Eclipse CDT (Linux) and Visual Studio (Windows) which have features like auto completion, built in debugging, etc. These are features that I feel I can't live without.
I keep hearing about how many people use emacs/vim on a daily basis. How come people still use console based editors when graphical IDEs appear to be easier to use? I know how to use vim and emacs, but for day-to-day programming I just use an IDE as I find myself being more productive.
This is not a vim vs emacs question so please don't argue one against the other, please instead argue graphical IDE against console IDE.
As I'm already familiar with graphical IDEs, am I likely to gain any productive advantage by using emacs/vim instead?
I expect the answer is "maybe not", simply because of the learning curve, and I'd miss the usual graphical IDE features such as auto complete and the built in debugger; but apparently emacs supports auto complete and debugging. However, to someone who uses a standard GUI text editor, I'd probably say that they should use emacs/vim. What do you think?
Related questions:
SciTE user wants to know if they should use emacs.
vi user wants to know if they should learn emacs.
There is an advantage to learning to master a command line editor for those situations where a full IDE is not available. I know people who swear by VIM and people who swear by Emacs. I think the latter is more configurable, but you might not even need that. Since you already know VI, it might be enough for your needs.
I humbly admit that in the few situations where I do need to edit not through an IDE, I just use pico... :(
All that being said, I do have the impression that for some people in certain programmer subcultures and companies, using emacs rather than an IDE is an issue of honor, like using leaves rather than TP on camping trips.
I would always suggest knowing at least one command-line only editor, be it Vi, emacs, pico, ed, etc., even if you do most of your developing in an IDE. If you're more productive in an IDE than in another editor, then by all means use the IDE.
That said, my reasoning is this: say you're installing a graphics driver on Linux, and the driver is not being co-operative. Your version of X doesn't start correctly using the new configuration, and you need to edit your X configuration. You could copy the backup of the working configuration over the edited configuration, start X, use a GUI editor to edit the X configuration, and then restart X, or you could do the edit very quickly using an editor that doesn't depend on X (typically, command line).
Eclipse has built-in support for Emacs key-bindings. The only support I've seen for Vim is a commercial plugin.
You certainly don't need to learn one or the other, and you don't need arguments extolling the virtues of one editor vs. the other, but if you do learn Emacs, you can customize your Eclipse environment to use the Emacs key-bindings (it's under Windows->Preferences->General->Keys). This (in my mind) can greatly increase your productivity in Eclipse as your hands rarely need to leave the 'home' line of your keyboard.
This feature is one (of many) reasons I use Eclipse for my 90% of my development.
I have been an emacs user for nearly 10 years. Emacs is an IDE with X support it is not console based. It does have auto completion it does have integrated debugger. The advantages i consider emacs over other IDE's are you said that you use eclipse in linux and visual studio on windows well i use emacs on both OS's. Don't need to change tools when switching OS's. Also on my daily work i work with multiple languages ruby,c/c++,java emacs supports much more languages than any other tool out there. And once you master using your keyboard you are 100 times faster than using an IDE. You can move around a file in blazing speed. i got my terminal , connection to my database server right in the editor no need to change windows and loose my train of thought. Another nice feature is i can edit files on machines half way across the world just like they are sitting on my local file system.
Disadvantages are both emacs and vi have steep learning curves in order to use them properly you need to invest some time on them but the way i see it why not master one tool that works on all languages and works on all OS's. then to learn how to use multiple tools and learn a new one when you wanna learn a new language.
Using emacs after knowing vim will make that task somewhat annoying. The editor war has been long and there have been many casualties.
In short, you should simply evaluate whether you think the editor(s) you are using currently are not up to your expectations. If you feel hindered, try something new. If you are working just fine, keep working!

Resources