9 ms·
Most frequently enabled Emacs packages
- codemac 13y agoI'm amazed linum is not more popular in that list (~10% usage).. I definitely thought more people used linum than say something like winner. Interesting. Obviously, this type of data submission should be tied into something like package.el, though it is fraught with error.
- packetslave 13y agoAt least in my experience, linum makes Emacs 24 unusably slow to respond to typing. I haven't fully isolated this to "linum" vs "linum and XXX together", but when linum-mode is enabled, Emacs is noticeably sluggish.
- mark_h 13y agoMagnar had a great hack to only turn it on when you goto-line: http://whattheemacsd.com/key-bindings.el-01.html http://whattheemacsd.com/key-bindings.el-01.html
- barrkel 13y agoEmacs 24 loaded with -Q (so no customizations are loaded) and linum enabled on a large file makes Emacs sluggish. Other line numbering modes also suffer; it appears to be an issue with the gutter itself.
- jrockway 13y agoLine numbering is really the vi way of navigation. In Emacs, most people do an incremental search (or M-x occur) to move around.
- barrkel 13y agoLine numbering is the way you communicate when you're pair programming, and it's also the way tools tell you about errors - and not all of those tools are integrated, or necessarily work best when integrated, with mode-aware buffers. For example, I use pry and associated debugger stuff when working with Ruby. Want to set a breakpoint more precisely than a method? Need line numbers. Why would I not want that inside an emacs buffer? Because pry's symbolic completion is integrated with readline.
- jrockway 13y agoBreakpoints I agree with. Pair programming; I just describe the position in the program. Humans are much smarter than computers. "You see where you're catching FooError in Bar?" You can also use your finger to point. Anyway, I'm not saying you never need to know the line number, but I'm saying it's not the movement idiom in Emacs. In vi, all the motion commands take line numbers as arguments, so you use line numbers to navigate. In Emacs, the commands don't take line numbers as arguments, except for goto-line. (In this case, a leap of faith is necessary. Something tells you, error on line 42. So you tell Emacs to go to line 42. The line you are on now must be line 42. QED.)
- davidw 13y ago(global-set-key "\C-cg" 'goto-line) Is handy to navigate quickly to a line number.
- TacticalCoder 13y agoOne could argue that for any "on screen" navigation (that is: moving to any visible character), there's nothing faster than vim's EasyMotion stuff, which has been adapted in Emacs as "ace-jump-mode". The latest version allows to jump to any character in any window / frame. I hardly "other-window" (C-x o by default in Emacs) anymore because it already takes two keys while in two to three keys I can use ace-jump to jump directly to any character I want, anywhere (instead of first doing C-x o then moving where I want to). For stuff that is not on-screen, then it's the good old ways.
- ams6110 13y agoI thought transient-mark-mode was enabled by default in recent releases? iswitchb-mode seems to do some of what ido-mode (which I've never tried) does.
- jamesjporter 13y agoido doesn't become really amazing until you add ido-ubiquitous (which makes most minibuffer completions use the ido interface, as opposed to just file opens) and flx-ido (which allows fuzzy matching).
- a_e_k 13y agoYes, I've found using ido that way together with gtags to be particularly slick.
- ordinary 13y agoI thought transient-mark-mode was enabled by default in recent releases? Correct.
- Adrock 13y agoIt is enabled by default. I've updated the list to indicate that transient-mark-mode and blink-cursor-mode are on by default in modern Emacsen and that uniquify will be enabled by default in 24.4.
- codex 13y agoIs there an canonical opinionated configuration of Emacs where each component works relatively well with all others? I love Emacs but I don't want to spend 100 hours on research and tinkering to have something modern.
- stevenrace 13y agoThere are a few that come to mind. 'Prelude'[1] and 'Graphene'[2] both serve as a sensible defaults for most folks. I had intended to link to the 'Emacs Starter Kit', but it seems that project has been abandoned... Additionally, 'EmacsLive' [3] focuses on Clojure support. [1] https://github.com/bbatsov/prelude https://github.com/bbatsov/prelude [2] https://github.com/rdallasgray/graphene https://github.com/rdallasgray/graphene [3] https://github.com/overtone/emacs-live https://github.com/overtone/emacs-live
- subsection1h 13y agoThere are multiple starter kits, such as Emacs Starter Kit and Prelude. The following search for "Emacs" at GitHub brings up the aforementioned starter kits and more: https://github.com/search?q=Emacs&type=Repositories&s=stars https://github.com/search?q=Emacs&type=Repositories&s=stars I haven't used any of these starter kits because the starter kits that I've used for other platforms/frameworks caused me more trouble than they were worth and I generally need to devote only one weekend per year to Emacs tinkering, which I enjoy.
- jrockway 13y agoI don't think anyone sits down to configure their editor correctly from day one. You gradually add features as you see potential optimization in your workflow, or maybe try something when you read an article about it. The opinionated configuration is the one that comes out of the box. Other than the fonts and colors, it's 100% fine for any work you might need to do.
- barrkel 13y agoThe extended keys are also broken for most terminals in most stock OS installs.
- JoshTriplett 13y agoI'm surprised CUA mode isn't in the list.
- unhammer 13y agoI don't use full CUA unless I'm having other people type, but I do have this in my ~/.emacs: (when (fboundp 'cua-selection-mode) (setq cua-toggle-set-mark nil) ; o/w C-SPC doesn't set the mark if region-active-p (cua-selection-mode 1)) See http://trey-jackson.blogspot.no/2008/10/emacs-tip-26-cua-mode-specifically.html http://trey-jackson.blogspot.no/2008/10/emacs-tip-26-cua-mod... for why cua-selection is awesome.
- barrkel 13y agoYou're really swimming upstream if you don't use defaults for C-x and C-c. I have S-delete, C-insert, and M-insert bound to cut, copy and paste respectively; S-insert pastes the system clipboard in the terminals I use. I use these when doing a lot of moving text around. I do have C-v bound to yank, and M-v bound to yank-pop. C-y is a very awkward keystroke. But C-w isn't too hard to use for cut, nor M-w for copy, when avoiding the arrow keys / edit block.
- JoshTriplett 13y agoCUA's C-x/C-c/C-v bindings aside (which don't actually conflict with the standard Emacs prefix keys), it has a wildly useful rectangle selection mode, as well as convenient indent/outdent commands for the selected region.
- barrkel 13y agoI presume you say that because C-x and C-c don't act as cut and copy when there is no region, that there is no actual conflict? I use commands involving C-x and C-c with the region active fairly often; both because the command applies to the region, and also because I want to keep the region active while I do something else. I agree that CUA mode without binding the CUA keys is useful.
- barrkel 13y agoI only started using emacs about 3 months ago. The most useful packages for me, things I wish I'd known about from the beginning: * package, pointing at GNU and Milkbox repos. Any time I edit a new type of file, I look for packages that work well for it. * helm, much better than flex matching for my purposes. I use helm for all list completion except find-file, for which I use ido-find-file. helm-git-grep completely changed the way I work with mixed-source RoR projects, to the point I've fully abandoned RubyMine. * projectile, mostly just for finding files across a whole git repo. I use helm to complete the file to find (setq projectile-completion-system 'helm-comp-read). In addition, it helps enormously to not be afraid of Lisp. Emacs isn't really worth it if you're not interested in tweaking it, IMO. I had to tweak it quite a bit in order for it to play well with rxvt, my preferred terminal; and even further to get it to work well with screen in rxvt, and with mintty on Windows, and screen inside mintty. A familiarity with how termcap works, the esr's showkey utility, and a bunch of time with define-key got it sorted. Here's a function I use a lot (bk-helm-occur at the end): (defun get-point-text () "Get 'interesting' text at point; either word, or region" (if mark-active (buffer-substring (mark) (point)) (thing-at-point 'symbol))) (defun helm-occur-1 (initial-value) "Preconfigured helm for Occur with initial input." (setq helm-multi-occur-buffer-list (list (buffer-name (current-buffer)))) (helm-occur-init-source) (helm :sources 'helm-source-occur :buffer "*helm occur*" :history 'helm-grep-history :truncate-lines t :input initial-value)) (defun bk-helm-occur () "Invoke helm-occur with initial input configured from text at point" (interactive) (helm-occur-1 (get-point-text))) (global-set-key (kbd "M-o") 'bk-helm-occur) It lets me press Alt-O on any symbol and see all occurrences of that symbol in the file. I can then jump to uses, then use helm-resume to find the earlier occurrence and jump back. I have a similar function for a pre-initialized helm-git-grep. It's these kinds of customizations that make emacs shine. Any time you find yourself doing anything repetitive or tedious, you can usually hack a function up in a few minutes that improves your workflow. Prototyping Lisp functions is completely trivial owing to the ability to evaluate Lisp in the buffer.
- dancecodes 13y agothanks for nice script, I use helm and other too. But I bind instead "M-o" "M-s-o" I bind also hot-key to helm-git-grep-at-point. I use also helm-ls-git-ls too. Also these nice packages: bookmark+ elscreen magit auto-complete mark-multiple paredit yasnippet idle-highlights helm-gtags
- deleted 13y ago[deleted]