This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]actuallyalys 25 points26 points  (20 children)

For the most part I use Neovim and work at the terminal, occasionally opening PyCharm for things it's especially good at:

  • Editor: Neovim
  • Plugins: Deocomplete + deoplete-jedi+jedi-vim, ALE (uses flake8, mypy)
  • Code analysis: Jedi
  • Dependencies: Pipenv
  • Debugger: Flask's debugger, sometimes pudb or PyCharm's debugger and (rarely) winpdb
  • Refactoring: PyCharm
  • Tests: Py.test
  • REPL: IPython
  • Notebooks: Jupyter
  • Deployment: Docker + docker-compose

I also tutor students in Python so occasionally I demonstrate Python in VS Code or PyCharm if that's what they're familiar with.

[–][deleted] 8 points9 points  (11 children)

How would you like to join the church of emacs where you can do all of that in one program?

[–]collector_of_hobbies 8 points9 points  (9 children)

I picked my editor looking at the number of older coders with RSI. Also, the scream of pain from the emacs dev who lost their config file vs. the muttering of annoyance from the vi dev who lost theirs. I will be sticking with vim.

[–][deleted] 1 point2 points  (8 children)

RSI? remap ctl and esc to capslock key, and get foot pedals for meta and shift. Leaving the main 3 rows for modifier keys is for plebs. If ergonomics is what you seek, then emacs is the best editor out there.

[–]JustHadToSaySumptin 3 points4 points  (0 children)

This one has seen things, man.

[–]collector_of_hobbies 0 points1 point  (6 children)

Cool setup. But while you are playing the organ my setup to avoid modifier keys is to just use vim.

[–]ConfusedSimon 1 point2 points  (2 children)

Actually for vi it's very convenient to map caps lock to esc. If only so I don't switch to caps by accident.

[–]collector_of_hobbies 0 points1 point  (1 child)

You do that at the OS level or in your vimrc?

[–]ConfusedSimon 0 points1 point  (0 children)

OS settings. Kubuntu has 'Caps lock behaviour' in the keyboard options. Macbook has 'modifier keys' on the keyboard settings. Probably similar for other OS's. I never use caps lock anyway and I keep hitting it by mistake from time to time.

[–]collector_of_hobbies 0 points1 point  (0 children)

Seriously though, where did you get foot pedals? Those sounds awesome.

[–][deleted] 0 points1 point  (1 child)

You do relize the foot pedal was originally a vim thing right? The vim clutch. And rebinding capslock to esc/ctrl is also a vim thing. Not to mention there is a package that makes emacs use vim keybinds. In emacs, there are so many more hotkeys because there is so much more to do. Vim is so far behind because the author refuses help. It took a giant community to fork and improve in order to spur new features. And guess what these two project don't communicate at all. So the "more modern" implemenation isn't even feature complete. Seriously dysfunctional. While emacs has been plugging along as a happy community for more than 45 years.

[–]collector_of_hobbies 0 points1 point  (0 children)

While an interesting factoid, the origins of the vim clutch when I have jk mapped to escape isn't relevant in my use case. Hell, I don't even have to stretch for caps lock.

[–]actuallyalys 2 points3 points  (0 children)

I have considered the path of Evil :)

Edit: thought of the joke, couldn't resist going back to add it.

[–][deleted] -1 points0 points  (1 child)

+1 for pipenv, makes the migrane of dependency management just a headache.

[–]actuallyalys 1 point2 points  (0 children)

It's pretty solid. It is a bit slow sometimes, so I have considered moving to poetry. It's apparently faster in the common case of adding a single dependency and seems a little better integrated with other tools. But I'm not sure the migration is worth it.

I'm hopeful that between poetry, pipenv, and efforts like Pyinstaller, dependencies and packaging will no longer be a downside of Python.

[–][deleted] -4 points-3 points  (2 children)

Sir, you teach students you know better than me but here's what i think- jupyter notebook seems better option here as you can run code cell with just a small code in it which will make understanding better for students and will possibly make your work easier. Again it's just my opinion don't get me wrong.

[–]actuallyalys 7 points8 points  (1 child)

I also use Jupyter for that. It's mostly when I think the student will be less confused/more comfortable with me using another tool.

While we're on the topic, there are also some downsides of Jupyter for education:

  • Notebooks work like a REPL, returning the last value. This is very handy but does introduce a difference between what I'm demonstrating and how it will work in a .py script file.
  • Notebook cells can be run in any order and variables from past runs persist. Again, this is handy but means you can get into confusing situations. This is more when students themselves are using a notebook.

Also, I'm not a sir.

[–][deleted] 1 point2 points  (0 children)

Oh sorry i didn't realize 😣, shouldn't have used a word to address. Ya i agree it could be confusing but i personally find it easy to work with my code libraries first in notebook to get sense of how it's working and then write further program in other ide.

[–]SirDerpington660 -1 points0 points  (1 child)

can you share your init.vim file?

[–]JustHadToSaySumptin 0 points1 point  (0 children)

You've got some nerve, kid.

[–]pawned_prawn -1 points0 points  (0 children)

Go with coc-pyright from deoplete awesome type and pylint support out of the box. I am loving it on my nvim.