7 ms·
This is cool, I guess. Personally coding in a terminal like window for me would be awful - I like using my mouse to navigate among folders and save stuff etc in
by patientplatypus 9y ago
This is cool, I guess. Personally coding in a terminal like window for me would be awful - I like using my mouse to navigate among folders and save stuff etc in Atom/VSCode like environments. Plus, how often are people switching branches of code that the number of key strokes for git becomes a problem? Seems like an overengineered solution for a very niche audience - if it works for them great though.
- Retric 9y agoIt's really easy to start working on and switch between several different branches at the same time. O&M fixes may be handled by a different team and regularly need to be moved into development. Now add in some experimental branches used for various things etc.
- iBelieve 9y agoI recently started using Emacs in a tiling window manager on Linux after using "standard" GUI editors like PyCharm, AppCode, Atom, VSCode, etc. on macOS. At first, I felt exactly like you describe - it felt so constraining not having a tree view and tabs I could click on. But after a while I got used to using a keyboard shortcut to quickly jump between files or search for a file to open. I'm slowly getting used to it and find even the basic set of keyboard shortcuts I've learned feel so much more productive then combined use of a mouse and keyboard. Just one example of that - recently I needed to create some UUIDs to use in my code. Previously, I would have googled a UUID generator or used uuid on the command line and then pasted the output into my editor. With Emacs, I was able to easily insert the UUID directly into my code using `C-u M-! uuidgen` (that keyboard shortcut inserts the output of the given command at the current cursor location).
- eadmund 9y ago> it felt so constraining not having a tree view and tabs I could click on There are emacs packages for tree views[0] and tabs[1], but as you note the built-in buffer management is more powerful. Stuff like Helm or Ivy is even better! There's also an emacs uuidgen package, which can generate a uuid & insert it with M-x uuidgen; you could of course bind it to a key sequence if you use it frequently. 0: https://github.com/jaypei/emacs-neotree https://github.com/jaypei/emacs-neotree 1: https://www.emacswiki.org/emacs/TabBarMode https://www.emacswiki.org/emacs/TabBarMode
- nextlevelwizard 9y agoThous things are pretty much things to avoid in my opinion. I used to have NERDTree in Vim and all kind of other useless nonsense. After I learned how to use fuzzy searching to jump between files and definitions all tree view does is take up space. Even with Atom finding files is way faster than clicking through the tree viewer.
- eadmund 9y agoI agree re. tree views, but was merely noting that they exist, if one really wants them. rms may be doctrinaire, but emacs is not!
- iBelieve 9y agoThanks for the suggestions. I knew about tree views for Emacs, but I usually work with Emacs and a terminal side-by-side on a 13" laptop screen, so a tree view just takes up extra space and I ended up not missing it much. As for the uuidgen package, this was just a one-time thing for a few uuids, so using the uuidgen command I already had installed on Linux was simplier.
- codemac 9y agoYou can also try speedbar / speedbar-sr. Gives you a quick tree-like view when wanted, and then can be dismissed.
- cup-of-tea 9y agoEvery day around the world a few users discover that the most efficient input tool is directly in front of them, uses both hands and all digits.
- kuschku 9y agoAnd with pycharm you'd have simply used a generator preset for uuids. There's even a dozen of generator presets integrated, you can just easily invoke them from your keyboard, without pressing all modifier keys at once. And PyCharm even has all the keyboard navigation as well, you can even get emacs or vi keybindings, if you wish, I only use the mouse when the app's already running and I'm going through the log.
- iBelieve 9y agoPyCharm is great, and I use it along with AppCode and Android Studio. I'm mainly trying to learn Emacs because so many people have great things to say about it, plus I've started using Org Mode for todos and notes and it's awesome. In addition, I've tried using the VIM emulation in the Jetbrains IDEs and have always ended up turning it off each time as I kept forgetting I was in VIM mode and would try to use the editor like a normal editor. Emacs with Evil mode is different enough that I don't try to mix VIM and regular editor usage.
- Const-me 9y agoI agree. Another reasons why I prefer GUI are auto complete, tooltips and context menus. Also for some documents like xml, also when working with other people’s code, I find it useful to collapse/expand blocks of text. All these features pretty much require a GUI-based editor.
- sid-kap 9y agoSpacemacs has excellent context menus. It was suprising how discoverable everything is!
- yorwba 9y agoThere are vim plugins for auto-completion and it supports code folding out of the box. I'm not sure what you use tooltips and context menus for, but that functionality is probably available via some : command. But then most command-line editors are actually GUIs in the terminal with excellent keyboard support.
- Const-me 9y ago> I'm not sure what you use tooltips They show documentation (pulled from comments) for functions, classes and arguments. > and context menus For context-sensitive commands I use once per week or less often, so I don’t bother memorizing keyboard shortcuts for them. > most command-line editors are actually GUIs in the terminal Most developers don’t use command line editors. Here’s recent data from this year: https://insights.stackoverflow.com/survey/2018#development-environments-and-tools https://insights.stackoverflow.com/survey/2018#development-e... As you see, 4 most popular editors are VS Code, Visual Studio, Notepad++ and Sublime Text, all of them are GUI applications. Only 26% developers use Vim, 4% Emacs.
- oblio 9y agoThose stats are also probably skewed in favor of people actually bothering to fill their survey. Those are more likely to be active/proactive, which in my experience is correlated with tinkering with tools (ergo, using Vim or Emacs).
- yorwba 9y agoThere's nothing about terminal-like windows that precludes using the mouse. The magic of escape sequences makes e.g. mouse selection in Vim possible. I just don't find it very useful when there are keyboard shortcuts for everything. When you need to open a shell in a certain directory, do you use cd or do you navigate using a GUI? I much prefer the tab-completion I get with the former, especially in hierarchies with high branching factor.
- flukus 9y ago> When you need to open a shell in a certain directory, do you use cd or do you navigate using a GUI? Really depends on the workflow. If I know where I'm navigating then I prefer cd, if I don't then a gui is better than a cd/ls loop. Fortunately programs like ranger cover the latter quite well too.
- jolmg 9y agoAnother way to navigate with cd is to use tab completion instead of ls. "cd "+tab and you get a listing of files. You might have your shell configured to cycle among the options with tab or select with arrow keys. If you've selected a directory, press "/"+tab and repeat. If you want to go back up a level, quickly hit ctrl+w to delete the last piece of the path (that's the behavior of vi keybindings, emacs keybindings delete the whole path). You might in the end have found the file you want to work with and forego cd by using key shortcuts to quickly navigate to the beginning of the command line and switch the command. This is how I do all my file navigation.
- flukus 9y agoThis is great locally or at home, a lot of the time when I'm "browsing" it's on remote windows shares on another continent though, the latency from windows and the network is simply to high for tab completion to be usable, it makes using FTP over dialup seem snappy. This is through cygwin, real linux is another story. I don't know what the difference is between how windows and linux mount remote drives, but the performance difference is stark, ls on a mounted network drive in linux is essentially instant but there is a noticeable lag doing the same from a windows machine.
- hollerith 9y agoJust want to make sure that people realize that Emacs has decent support for pointing devices and can link with the native GUI libraries on Windows and Mac and GTK+ on Linux. So for example although the (very old) version of Emacs (/usr/bin/emacs) that comes with OS X was built in such a way that it can communicate with the user only via the terminal, the following command line will install a GUI-capable Emacs: brew tap railwaycat/emacsmacport && brew update && brew install emacs-mac (The simpler command line `brew update && brew install emacs` would install a GUI-capable Emacs, too, but delivers the pure-FSF version of Emacs, which for mac for many years now has been buggier than the FSF version plus Mitsuharu's patches, which is what the first command line delivers. In the past there have been times when `brew install emacs` would install an Emacs that is just not usable because of bugs while `brew install emacs-mac` would install and Emacs that works fine.) Whether or not the code Jane Street added to Emacs can be used with a pointing device I do not know.
- Lio 9y agoI use NeoVim in tmux pretty much exclusively. You can turn on mouse support for terminal apps like Vim and Emacs and still click things like the file viewer, scroll text with two fingers and resize windows with a mouse. You just have to configure it. This to my mind is the real difference between classic editors like Vim and Emacs and GUI IDEs. With the terminal editors you can be at least sure that you'll get a comprehensive keyboard interface system, I haven't always found that with GUI IDEs especially when it comes to third party plugins.