4 ms·
This is your annual reminder than vim and eMacs are fully featured and extensible IDEs that support code completion, folding, and navigation by default. Or, no
by falcolas 4y ago
This is your annual reminder than vim and eMacs are fully featured and extensible IDEs that support code completion, folding, and navigation by default.
Or, no, you don’t need to use a graphical IDE to develop code, as TFA states.
Thank you for coming to my Ted talk.
EDIT: Don't believe me that VIM is an IDE? Read the threads for elucidation. :)
- rob74 4y agoIn the case of Free Pascal, may I remind you that there is a fully featured IDE called Lazarus which offers all of that plus an intuitive user experience (i.e. you don't have to memorize all the keystrokes before you can be productive, you can find the available commands in them menu and if you use one particular command a lot, you can memorize the keyboard shortcut) and a graphical tool to build your UI and connect it to your code.
- genezeta 4y agoLazarus is already mentioned and explained in the first paragraphs of the article.
- alwillis 4y agoIn the case of Free Pascal, may I remind you that there is a fully featured IDE called Lazarus… That’s cool, but if you already use Neovim for other things, there’s a Free Pascal Language Server Protocol (LSP) server for it too [1]. You’ll many of the same features that Lazarus has, like code completion, diagnostics, etc. In fact, it’s the same LSP that’s available for VS Code [2] and it uses Lazarus as a backend. Too much is being made about how hard Neovim is to configure; if you’re new to it or to Lua, just use LSP Zero [3] that takes care of all of the details of installing LSP, linters, etc. [1]: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#pasls https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser... [2]: https://github.com/genericptr/pascal-language-server https://github.com/genericptr/pascal-language-server [3]: https://github.com/VonHeikemen/lsp-zero.nvim https://github.com/VonHeikemen/lsp-zero.nvim
- gnarbarian 4y agoI can see the argument for emacs being a IDE but isn't vim more of an editor?
- jhbadger 4y agoVi is just an editor, but vim is "Vi improved", and the improvements include the sorts of programmability that Emacs is known for, which allow modes to include syntax highlighting, code completion, and so on. It's not quite the same (the beauty of Emacs is that the executable is mostly a Lisp interpreter and the editor is written in the same Lisp you can write your extensions in), but close.
- coffeeblack 4y agoNot if you add about half a million partially conflicting add-ons to it, no it isn’t! Sorry. Yes, (n)vi(m) is great and useful and all, but it’s not an IDE.
- falcolas 4y agoVim defaults to being a C IDE, no plugins required. The features I called out above are available with no plugins.
- coffeeblack 4y agoInteresting, didn’t know, will try it. Does it do “jump to definition” out of the box?
- falcolas 4y agoSure does. :) `gd`
- coffeeblack 4y ago:gd E492: Not an editor command: gd VIM 8.2 Do I have to activate it somehow? :)
- idoubtit 4y ago> vim [...] extensible IDEs that support code completion, folding, and navigation by default. If "by default", you mean "with the default vim configuration", then this assertion is wrong. Vim does have a definition-search" feature, but it needs hand-made configuration for each language, and since it relies on regexp instead of parsing the language, it's useless outside of micro projects. To enable real code completion and navigation, vim needs plugins and external tools. The modern way is to use one of the LSP implementations for vim (I've tried ALE and CoC), but that's clearly not "out of the box" for vim.
- falcolas 4y agoIt works perfectly well with C by default - with no addons. I will agree, you do need a tags file (though it's is not even remotely hand-made (emacs uses these too)), but the rest is handled automatically, including code completion based on the contents of the tags file. Code completion, syntax highlighting, goto definition, goto tags... these are all core functions of VIM. Addons just help it work with languages other than C.
- ArtixFox 4y agobye bye emacs bye bye (n)vim