Emacs

313 readers
2 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
1
2
submitted 2 days ago by rglullis to c/emacs
2
3
 
 

cross-posted from: https://lemmy.sdf.org/post/25098327

I've been using gptel for a couple of days and it is absolutely bonkers. It is Magit-level of thought out. However I enjoyed relying less on the transient menu, and rather focus on writing my own wrapper functions via gptel-request.

Honestly I've been kind of an AI skeptic until very recently, and gptel in addition to this article were what pushed me over.

4
5
 
 

I am using counsel with projectile mainly for two use cases:

  • counsel-projectile-ag for project-wide grep
  • counsel-projectile-find-file to get a list of file names by typing some characters.

I usually have them bound to C-C C-sand C-C C-f, which used to work well with any other major modes.

Recently, I switched to using tree-sitter and set it up to use python-ts-mode. I also started using lsp-mode. Since then, whenever I open any python file, C-c C-s and C-c C-f are bound to the functions from python-mode. I've tried adding

(unbind-key "C-c C-s" python-ts-mode-map)
(unbind-key "C-c C-f" python-ts-mode-map)

to python-ts :config on use-package, and similar to python-mode, but I am still getting

python-ts-mode-map), which is an interactive native-compiled Lisp
function in ‘python.el’.

It is bound to C-c C-s.

(python-shell-send-string STRING &optional PROCESS MSG)

Send STRING to inferior Python PROCESS.
When optional argument MSG is non-nil, forces display of a
user-friendly message if there’s no process running; defaults to
t when called interactively.

[back]

What would be the correct way to set the configuration to get this always bound to the counsel-projectile commands whenever I open a python file?

Caveat: I am using NixOS home-manager to manage my emacs installation, which means that I am not manipulating my .emacs directly.

The relevant sections of my nix file.

usePackage = {
python-ts-mode = {
        enable = true;
        mode = [ ''("\\.py\\'" . python-ts-mode)'' ];
        hook = [
          "hs-minor-mode"
          "(python-ts-mode . python-isort-on-save-mode)"
        ];
        bind = {
          "C-c C-s" = "counsel-projectile-ag";
          "C-c C-f" = "counsel-projectile-find-file";
        };
        config = ''
        (unbind-key "C-c C-s" python-ts-mode-map)
        (unbind-key "C-c C-f" python-ts-mode-map)
        '';
      };

python-mode = {
        enable = true;
        bind = {
          "C-c C-s" = "counsel-projectile-ag";
          "C-c C-f" = "counsel-projectile-find-file";
        };
        config = ''
            (unbind-key "C-c C-s" python-mode-map)
            (unbind-key "C-c C-f" python-mode-map)
        '';
      };
lsp-mode = {
        enable = true;
        command = [ "lsp" ];
        hook = [
          "((python-ts-mode java-mode vue-mode javascript-ts-mode typescript-ts-mode) . lsp-deferred)"
        ];
        bind = {
          "C-c r r" = "lsp-rename";
          "C-c r f" = "lsp-format-buffer";
          "C-c r g" = "lsp-format-region";
          "C-c r a" = "lsp-execute-code-action";
          "C-c f r" = "lsp-find-references";
          "C-c C-s" = "counsel-projectile-ag";
          "C-c C-f" = "counsel-projectile-find-file";
        };
      };
counsel = {
        enable = true;
        bind = {
          "C-x C-d" = "counsel-dired-jump";
          "C-x C-r" = "counsel-recentf";
          "C-x C-y" = "counsel-yank-pop";
        };
        diminish = [ "counsel-mode" ];
      };

      counsel-projectile = {
        enable = true;
        bind = {
          "C-c C-s" = "counsel-projectile-ag";
          "C-c C-f" = "counsel-projectile-find-file";
        };
      };
};

Any help appreciated.

6
7
6
AI in Emacs (willschenk.com)
submitted 2 months ago by rglullis to c/emacs
8
9
 
 

Is ellama the recommended package to use for code assistance on emacs? @emacs

I'm getting some useful results when asking questions to Mistral (via Brave Browser) when working with programming languages that I am learning. What is the current recommended approach to get it working with #emacs?

10
 
 

So many cool posts about #emacs recently but I am not sure the microblog UI is the best for them. Ideally, I wish we could group AP actors to announce any activity by a certain hashtag, so they could become posts in something like #lemmy instead.

In the meantime, how do I get more of this emacs conversation on @emacs ?

11
4
submitted 2 months ago by rglullis to c/emacs
12
13
 
 

Its been a few weeks, but I didn't see any post about it here. In case you aren't following the emacs-devel list, Eli Zaretskii, the current MS-Windows maintainer, is asking for anyone to take over day to day issue management and supporting the port as he's wanting to step down from the role.

14
15
 
 

Take a look at the python code above. Because the word filter is a builtin function it gets highlighted differently than the rest of the code. The problem is, none of the occurrences of the word here relate to the builtin function and it semantically should not be any different from any other decorator or callable.

I honestly think that this is a bug with the syntax highlighter (as it should be easy to discern between a built-in function call and a method from another class, but if I could just disable syntax highlighting in python-mode for the specific keyword, it should be fine? Is that possible to do in elisp?

16
17
7
Keyboard Macros are Misunderstood (www.masteringemacs.org)
submitted 5 months ago by mao@lemmy.sdf.org to c/emacs
18
19
20
9
submitted 6 months ago by rglullis to c/emacs
21
2
How to Show Row Numbers in Emacs (linuxrenaissance.com)
submitted 7 months ago by rglullis to c/emacs
22
 
 

cross-posted from: https://lemmy.world/post/14012479

To all evil-mode users, how do you work with vterm?

As a long time Vimmer, I have recently started using Emacs out of sheer curiosity. I chose Doom Emacs as it has evil-mode enabled by default, and do not want to dive down the rabbit hole of configuring the editor from scratch (at least, not yet!).

After installing and enabling libvterm in Emacs, I am having a frustrating experience. I configured ZSH shell to use vi-mode keybindings which interferes with evil-mode whenever I press Esc or C-[.

After having searched a little, I came across a workaround to disable evil-mode when in vterm. But it is still not a smooth experience. For instance, when switching between buffers (C-w C-w).

I would like to know how others in the community tackled this problem. Is there a better solution to this problem? Or have you made peace with the aforementioned workaround? Or have you stopped using vterm entirely?

23
24
6
Emacs 29.3 released (lists.gnu.org)
submitted 8 months ago by rglullis to c/emacs
25
view more: next ›