11

I'm a software engineer with a little development company. I just recently moved my company into the open-source movement. All of our non-client code is open-source, we run all of our servers and workstations on Linux, etc.

I have been using Kate as my text-editor on Ubuntu for quite some time, but it's lacking some functionality that I would like to have. I would like something with the following characteristics...

  • Free and Open-Source
  • Code highlighting for JavaScript, HTML, CSS, SCSS, and PHP. (Bonus for Python and Ruby)
  • Code completion for the same languages I mentioned above.
  • Either a built-in terminal, or the availability of a plugin for a terminal.
  • SFTP/FTP remote editing.
  • Ability to open a directory rather than a single file. (Both remotely and non-remotely.)
  • If the program is an IDE it must be lightweight. (Not something heavy like Eclipse or Netbeans.)

I would also be ecstatic if it could do version control and had the ability to push changes with Git.

I'm not sure if the last criteria is available in any IDE or text-editor. I have gone through quite a few today looking for one to meet my conditions, and not one of them has been able to open a directory. If this is not possible, or not currently available anywhere, please explain why if you know why, and offer an alternative.

  • 3
    Have you tried atom.io? I don't have time to completely check, but I'm pretty sure it meets all your requirements. – Seth May 11 '16 at 18:15
  • I think you should reconsider Eclipse. It is definitely heavier than vi, but I run three instances (three workspaces) most of the time, along with a variety of other things, so it's not terrible. There's no git/svn integration in it out of the box, but there are plugins for both. – CPerkins May 11 '16 at 18:54
  • Hmmm. I just tried Eclipse earlier today. I wasn't very impressed with it. It seems clunky with a lot of random, obscure functionality all in your face. That is without mentioning, I was finding the plug-in interface difficult to understand. I was also having a hard time reconciling with the fact that it seems like Eclipse is not very language-shift friendly. – Allenph May 11 '16 at 19:23
  • Why woudld you not want an IDE? How to you plan to debug without bereakpoints? – Mawg May 12 '16 at 7:38
  • 1
    Who debugs with breakpoints nowadays? Unless you are reversing a binary with no source code, of course. :-) – Andrea Lazzarotto May 12 '16 at 9:29
7

Atom is a very good text editor that covers your requirements.

  • Free and Open-Source
  • Code highlighting for JavaScript, HTML, CSS, SCSS, and PHP. (Bonus for Python and Ruby)
  • Code completion for the same languages I mentioned above.

Check. Atom is open source and it includes code highlighting for the languages you mentioned. Some auto-completion features are provided through packages.

  • Either a built-in terminal, or the availability of a plugin for a terminal.

Take your pick.

  • SFTP/FTP remote editing.

I am not sure about this one, but you mentioned you are working on Ubuntu. I usually just mount the resource using File → Connect to server in Nautilus and use Atom or other editors for working on the files. If you really want it to be managed by Atom, this package seems a good place to start.

  • Ability to open a directory rather than a single file. (Both remotely and non-remotely.)

You can have one or more directories set as projects and you will see the files in the navigation pane. I often run atom . in the working directory I want to use. Here's what it looks like:

Navigation pane in Atom

  • If the program is an IDE it must be lightweight. (Not something heavy like Eclipse or Netbeans.)

Lightweight may mean different things to different people. Atom runs on Electron (based on Chromium). It is a bit slow to start and it might have issues with huge files, however I find it totally fine to work with on a system with 4 GB of RAM.

I would also be ecstatic if it could do version control and had the ability to push changes with Git.

Atom is developed by GitHub. The colors you see in the navigation pane represent the status of each file. I do not use it, but this package seems to provide nice Git functionalities with keyboard shortcuts.

  • I really, really like Atom. The project has evolved a lot since I last saw it. The terminal-plus package is the best implementation of that functionality I've ever used. Unfortunately, the SSH remote file editing packages are terrible. Limited to one file opening at a time, or requiring sub-servers on both ends, etc. – Allenph May 12 '16 at 9:19
  • In fact I don't see why you would want to have Atom handle your SSH connection. Let Nautilus do it. ;-) – Andrea Lazzarotto May 12 '16 at 9:30
  • I tried that also. Atom complains that it can't delete files, I can't save anything etc. when I mount the server. – Allenph May 12 '16 at 9:34
  • @Allenph Are you sure you do not have permission issues? – Andrea Lazzarotto May 12 '16 at 13:34
  • Mhm. The remote server is Debian. It complains about the lack of a trash can, etc. – Allenph May 13 '16 at 6:03
1

Geany, (pronounced "genie") is GPL2, lightweight, highlights the OP's specified languages, does code completion, has a built in terminal (or a plugin tabbed terminal), etc.

FTP & directory opening, no, but sort of yes -- the developers recommend mounting remote file systems with Fuse or LUFS, which provides the same features as FTP et al.

Version control (git, subversion, etc.) can be had with the GeanyVC plugin, and git-changebar for a few more git features.

  • I actually was messing around with Geany a little earlier today. The main problem I had with it is that it seemed to be very picky about how it indexed projects. From what I could find on the web you have to keep a .geany config file in your project that explicitly defines which files belong to that project. Just using creating a Laravel project alone would be a nightmare to index by hand. – Allenph May 11 '16 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.