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-s
and 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.
Sorry, I can not let go of this. I don't know if you realized that the whole reason that I am doing this is because you kept pushing this idea that you'd be more than willing to contribute to different instances and that the only thing that is stopping you is that you'd be worried about me being the only person.
Even with me telling you that I have other people to take over my operations, you were doubting me.
Now that I am actually going forward and offering to get more people onboard, while asking for NOTHING in return, you are putting this bullshit, pretending to be worried about price of domains.
What you are doing is just Concern Trolling, and I am frankly tired of this. You have put no Skin in the Game, yet you continue to find ways to rationalize your senseless idea that this is going to grow magically without getting people to put significant resources at stake.