4 ms·
You can write Vim plugins in other languages as well.
by nullundefined 9y ago
You can write Vim plugins in other languages as well.
- DigitalJack 9y agoTechnically true, but practically worthless. Python example: import vim # Show current directory in Vim cwd = vim.eval('getcwd()') cmd.command(':Explore %s | redraw' % cwd) Ref: https://geoff.greer.fm/2015/01/15/why-neovim-is-better-than-vim/ https://geoff.greer.fm/2015/01/15/why-neovim-is-better-than-...
- camgunz 9y agoThis is a little unkind. Vim has actual APIs for most things you'd want to do. Ex: https://github.com/camgunz/u300Blog/blob/master/u3b.vim#L307 https://github.com/camgunz/u300Blog/blob/master/u3b.vim#L307 It's not complete coverage, but it's not "the API is just a thin Python wrapper around Vim commands as strings" as your comments suggest.
- deleted 9y ago[deleted]
- DigitalJack 9y agoIt looks to me like more than half of that is a thin wrapper around strings. I'm not trying to be mean or mislead. I've used vim for decades, and emacs too for that matter. My favorite editors by far.
- camgunz 9y agoHaha yeah I'm not trying to be shitty with you. Vim gives you buffer, window, cursor and range, plus eval and command. The eval/command stuff is a "shim", insofar as you have to wrap them yourself if you want more programmatic access; like you'd have to do `def getcwd(): vim.eval('getcwd()')` But for a lot of what you want to do, you're messing with buffer/window/cursor. I wouldn't call it a full-featured scripting API, and certainly Neovim's is better, but your posts suggested all the scripting API was was just an entry point to ex commands. There's a lot more than that, to the extent that it covers most of what you want to do.