LINUX.ORG.RU

IDE на основе VIM для python, perl, c++, bash

 , ,


1

3

Искал расширение / набор скриптов для VIM чтобы использовать его как IDE для python ( perl, c++, bash, понятно, что для каждого языка будет свой набор ). Их оказалось так много – всех не перепробуешь.

а. какое бы вы посоветовали? В первую очередь интересует питон.

б. как сравнивать, может где-то есть рейтинги, которые я не нашёл?

Всем большое человеческое аригато! Буду приручать неовим с nvchad на малинке.

Для переболевших ковидом:

  1. Ставим неовим apt install neovim

https://github.com/neovim/neovim/wiki/Installing-Neovim

  1. git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 загружаем конфиги nvchad https://nvchad.com/docs/quickstart/install
★★

Последнее исправление: jia (всего исправлений: 4)

Если брать все же VSCode, то нужно будет открыть его и слева во вкладке плагинов найти и нажать кнопку установить для:

  • «Python» от Microsoft
  • «C/C++» от Microsoft; Я еще заменил именно языковой сервер на clangd, но отладчик у меня идет из плагина «C/C++»
  • «Bash Debug» от rogalmic, и «Bash IDE» от «Mads Hartmann»
  • «Perl» от Gerald Richter

Если брать vim, то в него тоже можно поставить clangd, и Perl Language Server. Но обычно в нем пишут имея 3 строки в .vimrc связанных с расстановкой пробелов. Если тебе не нужен отладчик, автокомплит, то тогда и тебе достаточно настроить выравнивание, включить номера строк по желанию и можно даже плагины не подключать.

У меня в .vimrc есть такие строки:

function! Fzf()
  let f=tempname()
  execute 'silent !fzf > ' . fnameescape(f)
  try 
    let n = readfile(f, '', -1)
    if len(n) > 0 
      execute 'e ' . n[0]
    endif
  finally
    call delete(f)
    redraw!
  endtry
endfunction
command! Find call Fzf()
noremap ff :Find<cr>
если нажать два раза клавишу f, то появится рекурсивный нечеткий поиск по директории, например если в проекте есть файл, prefix_some_task_code.py, то достаточно набрать «task», и нажать Enter, и откроется этот файл.

Только нужно установить fzf, для Debian - apt install fzf

MOPKOBKA ★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)

Советую попробовать NvChad. Я очень долго ковырял свой конфиг для Neovim, но эта штука оказалась очень близка к моему дефолту - мне пришлось буквально всего несколько строчек добавить в custom. Тебе останется только подключить нужные LSP через mason.

Turbid ★★★★★
()
Последнее исправление: Turbid (всего исправлений: 2)

Современный путь в неовим выглядит так:

Ставите какую-нибудь сборку из https://github.com/rockerBOO/awesome-neovim#preconfigured-configuration . Хвалят NvChad, lunarvim и astronvim. В них скорее всего уже будет поддержка вашего языка вместе с форматированием и отладкой

Затем вы понимаете, что выпиливать ненужное из готовой сборки сложнее, чем пилить свою. Берете за основу kickstart.nvim (есть по ссылке выше) и начинаете пилить свой конфиг. У этого пути есть начало но нет конца, за это мы и любим нвим

Также заходите в чатик неовимеров https://t.me/nvimers там душевная атмосфера

anonymous7
()
Последнее исправление: anonymous7 (всего исправлений: 1)
Ответ на: комментарий от blex

we be of one blood, thou and i! С++ меня тоже очень интересует, в заголовке четыре языка, по недоразумению я С++ на третье место поставил, короче – я полностью вас поддерживаю.

jia ★★
() автор топика
Ответ на: комментарий от anonymous7

и начинаете пилить свой конфиг. У этого пути есть начало но нет конца, за это мы и любим нвим

Под линуксом всегда найдётся что пилить, мне бы чтобы из коробки внятно работало. Никаких особых запросов нет – всё стандартно!

jia ★★
() автор топика
Ответ на: комментарий от blex

autocomplete и goto definition делаются при помощи LSP. В neovim есть встроенный клиент LSP, к нему надо поставить сервер (обычно clangd, есть в репозиториях всех дистров) и сконфигурировать.

Чтобы не конфигурировать руками, есть официальный плагин nvim-lspconfig. С ним достаточно прописать require("lspconfig")["clangd"].setup{}. Чтобы все батарейки заработали, оно должно видеть файл compile_commands.json в каталоге с проектом.

Дебаг работает по протоколу DAP. Для него есть плагин nvim-dap. Как конфигурировать, можно почитать в wiki.

Подсветка синтаксиса есть из коробки. Если нужна более лучшая подсветка, плюс всякие фичи типа правильно работающих отступов, подсветки парных скобок и т.п. то можно сконфигурировать treesitter. Он в neovim есть из коробки, для настройки нужно поставить плагин nvim-treesitter и прописать ensure_installed = { "cpp" } в его конфиге.

Лучше всего, как тут уже написали, поставить набор плагинов nvchad - там это все уже есть из коробки (кроме дебага), и нет блоата.

Lrrr ★★★★★
()

NVIM v0.7.2 Build type: Release LuaJIT 2.1.0-beta3 Übersetzt von team+vim@tracker.debian.org Features: +acl +iconv +tui See ":help feature-compile" System-vimrc-Datei: "$VIM/sysinit.vim" Voreinstellung für $VIM: "/usr/share/nvim" Run :checkhealth for more info

Fehler beim Ausführen von "/home/pi/.config/nvim/init.lua": lazy.nvim requires Neovim >= 0.8.0 Betätigen Sie die EINGABETASTE oder geben Sie einen Befehl ein

Не дотягивает mvim 0.7.2 на малинке до требуемой nvchad версии 0.8.0

jia ★★
() автор топика
Последнее исправление: jia (всего исправлений: 3)
Ответ на: комментарий от jia

логично. Версия 0.7.2 вышла больше года назад. Проект активно пилится, цифры 0.x в версиях намекают, что стабильных релизов, которые можно не обновлять несколько лет, там пока нет. Если в дебиане почему-то думают по-другому - ну извините.

Lrrr ★★★★★
()
Ответ на: комментарий от Turbid

Если не брезгуете - поставьте из snap

Чур меня! Если бы я был чуть умнее и мог контролировать активность snap, но пока мне это не удалось и snap пытается жить какой-то своей жизнью. Ну его!

jia ★★
() автор топика

Сделал для Neovim свой конфиг года 3 назад: куча настроек под себя, функции вроде индентации, подсветки, поиска, немного плагинов для языков, иногда раз в полгода-год один из плагинов обновляется и нужно починить, но в целом очень стабильно. Для C и C++ - clangd, для Rust - rust-analyzer, для Python - ruff и pyright, вместо mason.nvim беру системные. Может быть Nvchad был бы проще, зато знаю где всё лежит, как сделано, и могу спокойно починить, и не париться о дополнительных внешних факторах.

ac130kz ★★
()
Ответ на: комментарий от kristall

Спасибо за рекомендацию. Посмотрю.

Она на GTK. А мне GUI и не нужен, мне нужен терминал по ssh на сервера.

Но GNAT посмотрю, особенно что она может в части удаленной работы.

blex ★★
()