13 ms·
I can sympathize with this strongly. I have tried vim/emacs a few times, and frankly I can't see any improvement from just using any reasonable editor. Also fro
by melissalobos 4y ago
I can sympathize with this strongly. I have tried vim/emacs a few times, and frankly I can't see any improvement from just using any reasonable editor. Also from my own experience they tend to be much inferior IDEs than even a not so great one like Geany.
- anthk 4y agoGeany doesn't have org-mode for notes/programming/workflow and zillions of more features.
- melissalobos 4y agoI really can't say I have understood, what exactly org-mode is supposed to be. I have seen the website and had an ardent fan explain it to me, but still don't get it. How is it better than having another text file open in another tab? Or using a jupyter/pluto notebook?
- ravi-delia 4y agoOrg is theoretically just a markdown format. In practice it starts out as a markdown editor with a bunch of neat features, and can become this omnibus of organization. There's a whole organizational ecosystem which uses org as a sort of lingua franca, so the more you sacrifice at its alter the more it all comes together. I use it to unify my todo list and calendar, and have it display what needs to happen both on an hour to hour level and day to day. I use it to pin emails I want to reply to with one key combo, and connect notes to each other any way I want. I have no idea if it's useful enough to justify the time I put into it. For most people, probably not. But I've gotten it to the point that it's just totally frictionless for me, and not a single other system I've ever used has been easy enough to stick to.
- User23 4y agoYou’d have to try it for yourself and see.
- zelphirkalt 4y agoIt is much more capable than the things you mentioned. It can do technical documents up to thesis writing, with citations, references both document internal and external, have code blocks, which can be run, using multiple langs per file, use output of one as input for the other, spreadsheets with a whole programming lang or GNU calc behind them, per formula of course, not only per spreadsheet, it can schedule events, it can use library of babel, it can do literate programming, ... Need I say anything more?
- rout39574 4y agoYou start with an outline. You bolt literate programming onto it. Then you tell your code blocks they can send input and output to each other via text in the document. Now you've got an excruciatingly well documented multi-language pipeline. Then you get the source data for all your analyses in real time from [wherever they came from]. Then you render it _beautifully_ with your dependency graph documentation generated from graphviz (which graph data was newly inferred on this very run). My first org-mode killer app, years and years ago was a monthly billing collection and analysis for a backup system I was running. The first pass took me a week to figure out how to collect and analyze. A few iterations later it was literally open the org-mode document and tell it "Do the thing". All my intermediate work was shown, everything was clear and open to inspection, and beautifully typeset. And I could generate it as HTML if they wanted it in a web page. (at the time they wanted PDF). This is one of the ways org-mode is great. There are others. :)
- anthk 4y agoThis is what I meant. Exactly this.
- BeetleB 4y ago> I really can't say I have understood, what exactly org-mode is supposed to be. It's primarily two things: 1. A markup syntax 2. a TODO manager. It's flexible enough that you can come up with your own custom TODO workflows (e.g. GTD, etc). You can do queries on a fair amount of metadata to construct your TODO list. In support of all that, it has good table features (you can do spreadsheet like functionality in them), code management (execute source code blocks similar to Jupyter, but you can have code in multiple languages communicate with one other), link to just about anything (with a bit of setup, I can even link to Outlook emails). While in the middle of your work, you can capture notes and/or TODOs and have them filed away in the appropriate file and location within that file.[1] Finally, you can export into many formats (I don't write pure LaTeX any more - I always export an org file to LaTeX). Example of a simple thing I do. I read an email. It contains actionable information. With a keystroke, I create a TODO item in org mode, which contains a link to the email. Later when browsing my TODOs, I have access to the context. Likewise, I'm reading an article in Chrome/Firefox, and I want to file it away for some reason. With a click on a bookmarklet, it sends the URL and related info to Org mode in Emacs and it is filed away. A more sophisticated example that required some elisp: I take meeting minutes at work. Any time something comes up where a TODO is assigned to a person, I hit a keystroke and type in the TODO. It finds the heading called "Action Items" for that particular meeting and files it there. At the end of the meeting, I export the minutes into HTML or Word and email it out.
- Jenk 4y agoJust to pile on... I've been a (neo)vim user for many years now. My init.vim (previously .vimrc) file is a constant work in progress. It has become a companion. A partner. I have more backups of this file than I do of my will. Every time I (re)turn to a language or other text-based thing, I could very easily (and often do) get sucked into a tinker-thon trying to perfect my vim experience. I've had to accept that I just have to use the IDE du jour (or de la majorite, more accurately) to get up and running. Though you bet I'll lose some evenings to getting a vim setup working.
- pmoriarty 4y agoI used vi/vim for 25 years before switching to Emacs and have been using Emacs now for about a decade... with both editors there was always more to learn for me, despite being a veteran user. There's no way you're going to appreciate the power of either editor after using it only a few times.
- icambron 4y agoI’m not trying to convince you to change editors —- it’s a highly personal choice —- but you might be interested in a couple thoughts from someone who’s used practically every editor under the sun but uses neovim by default: - the main value of vi is editing speed. It’s just much more efficient to edit text this way. Have you ever realized you needed to make a bunch of changes to a file and then sort of groaned at how much legwork that will be? Maybe you even don’t bother because it doesn’t seem worth it? vi usually makes short work of these. It’s hard for me to overstate how big of a productivity impact this has had for me: it makes sure the mechanics are never the bottleneck in my coding process. The editor can keep up with me. - the most common painpoint with vi is that you don’t get all these snazzy IDE features. That’s why sometimes people run IDEs with vi keybindings which are never quite exact; they want features like language-aware renames and other refactoring support that vi lacks, so they make a tradeoff. But this is actually improving rapidly, thanks to the proliferation of language servers and their rapidly improving support in Neovim. I hope that soon I will no longer have to think about these tradeoffs. At any rate, everyone should write code in whatever tool they like most, but that’s been my experience with it.
- melissalobos 4y ago> - the main value of vi is editing speed If it is purely mechanical type changes I would just use sed or find and replace, otherwise I think scrolling with a mouse and clicking tends to be fast enough. Could you explain a bit more about how it could be faster?
- triyambakam 4y agoOne example is recording a macro - you can then execute it an arbitrary number of times. I've used it e.g. to add quotes and commas to a list of data so it's a proper string array, or to change a string into an object where a property is the former simple string. The workflow would be - record the abstracted process using vi editing commands, then play the macro over where needed. Probably best to see it in action to fully appreciate it.
- icambron 4y ago"Fast enough" is sort of complicated. There isn't really a fast enough, per se, just an amount of effort you're willing to put in vs some amount of efficiency gain you get for it. We all hit some point at which more effort doesn't appeal to us, especially relative to all our other priorities, and perhaps that place is scrolling and clicking for you. Who is to say? I'm sure there are people who think of my editing skills as painfully inefficient, and I just can't be bothered to push them past where they are by learning my tools better, or learning new tools, because I'd rather learn something else. But it really is a lot of faster. I've watched colleagues edit code with the mouse (e.g. move this "if" block under that "else" clause or what have you) and I will say it's much, much slower than I would do in vi. They are not incompetent or clumsy; I would have been slow with the mouse too. In fact, I'm editing this comment with a keyboard and trackpad and it feels awkward and slow. Here are a few ways in which these actions just happens faster vi: 1. jumping around in the file using your keyboard. Taking your hand off the keyboard, moving the mouse to the right spot, clicking there, putting your hands on the keyboard, and then typing is a lot of movement. In vi, you have lots of tools to just move around, i.e. to do the part you do with the mouse. You have incremental search, bookmarks, jumplists, keys for jumping to the delimiter match, or the next code block, or jumping to a line number or function definition. There are EasyMotion-style plugins that let you jump quickly to whatever you're looking at on the screen. And many more. These are all optimized to be just a couple keystrokes away. They take time to learn and become fluid with but they give you a kind of total, effortless control over what part of the file you are editing. 2. Just good keyboard-centric editing basics. Putting aside all the ways you can move around a file (or files!) and all the ways you can repeat similar actions in different parts of the file, you also just get to be quicker making specific edits. You can _probably_ do all of this with readline-style keyboard shortcuts in other editors (e.g. replace this word with another word without double-cliking it with a mouse), but vi forms a sort of interactive language for doing these edits, and the way vi works just causes you to learn them and use them consistently. 3. Fine-grained control of editing actions. This is the hardest one to explain. Modal editing has the property that your actions are sort of transactions. You are in normal mode, you take some action that puts you in edit mode, you do some typing, and then you leave edit mode and the thing you did is now a block of action. It can be undone as a block and applied again elsewhere as a block. So for example, if I want to replace "}," with ");" on like four lines, I can do that by doing it once and applying it three more times to each line (using "."). Sure, you could also do that with a find-and-replace tool, but just operating that menu isn't worth the overhead for four lines. In vi, that's just how you edit; it's by-the-by, with no special effort required. 4. For more complex repeatable actions, you have macros (which is sort of like a second-level of text editing transaction), vi's strong regex support, actions that work on rectangular selections, and plugins for multiple cursors. One way to think about the sed case is: what if you didn't have to reach for another tool and it was instead sort of conceptually integrated into your everyday editing experience? It would be much lower friction to reach for, so you'd use it more and more efficiently. There's more, but I think that's the important ones, or at least the ones I think have given me the most mileage. It's all easier to show than tell, and of course YMMV.
- bachmeier 4y agoHere's an example from this afternoon. I wrote a function that would cut an html div and paste it to a different place in the file. Then I created a keyboard shortcut to call that function, and I added a menu item for it as well. A few minutes after deciding I wanted that functionality, I had it. I've written Geany extensions too. Believe me, that's not something you'd do in a few minutes.
- ww520 4y agoA sample usage just yesterday. I needed to rename a field name of a struct in Rust. I hit a key shortcut for lsp-rename and it renames the field plus all the references in all the files in the project. I know it's just basic refactoring and some IDE's support it, but it's generic across all languages.