1 Востаннє редагувалося Teg Miles (15.05.2024 13:35:48)

Тема: Досвід використання IDE для Rust

Тема для обговорення досвіду використання різних IDE для Rust.

Я спочатку використовував RustRover від JetBrains.
Дійсно дуже гарне середовище розробки, усе працює з коробки, не треба морочитися з налаштуванням.
Проте вимагає більше ресурсів, ніж просто текстовий редактор,
і є комерційним продуктом, хоча зараз безкоштовно на стадії тестування.
Але найбільший недолік — третина офісів JetBrains знаходиться в Росії...

Ще є потужний текстовий редактор Kate. Налаштовується доволі швидко,
має вбудовану підтримку Rust, безкоштовний. Але під час останнього оновлення
системи почав глючити при роботі з rust analyzer. Тому поки що чекаю,
доки його полагодять.

Також є Vim — дуже швидкий і дуже потужний текстовий редактор.
Один із перший редакторів із великою спільнотою, що підтримує його.
Якщо вам потрібна потужність із можливістю налаштувань найменших дрібниць — він для вас.
Але до нього треба звикнути, бо створювався він для роботи виключно з клавіатурою і
без підтримки графічної складової.
Тому доведеться вчити необхідні комбінації клавіш і команди.
Є ще gVim — різновид Vim із підтримкою мишки та графіки.
Зараз я використовую саме його, бо без мишки дуже важко працювати, якщо вже звик до неї.
Залишу тут свій файл налаштувань (.vimrc), який потрібно мати в домашній директорії.
Можливо, комусь знадобиться. Там мінімум налаштувань необхідних для зручної роботи.
Він працює і для gVim, і для Vim, хоча для gVim можна створити окремий файл .gvimrc.
Плагіни встановлено за допомогою Vim Plug.

" Встановлення місця розташування плагінів.
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')

" Оголошення переліку плагінів.

Plug 'rust-lang/rust.vim' " Основний плагін для Rust
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " Плагін fzf, що дозволяє пошук файлів комадною Files
Plug 'junegunn/fzf.vim'
Plug 'dense-analysis/ale' " Плагін для підключення rust analyzer і схожих додатків
Plug 'vim-airline/vim-airline' " Лінія внизу екрана з різномантіною інформацією
Plug 'preservim/nerdtree' " Файловий менеджер
Plug 'preservim/tagbar' " Вивід дерева наявних функції, структур і т.д. присутніх у файлі
Plug 'dracula/vim', { 'as': 'dracula' } " Тема кольорового оформлення
Plug 'preservim/vim-indent-guides' " Вказівник відступів у рядках файлу

" Кінець переліку плагінів. Vim побачить їх після наступної команди.
call plug#end()

" Встановлення поточної кольрової схеми
colorscheme dracula

" Ввімкнення синтаксису
syntax enable
filetype plugin indent on

" Налаштування NERDTree
" CDC = директорія поточного файлу стає поточною директорією
command CDC cd %:p:h

" Показ / приховування NerdTree
nmap <F7> :NERDTreeToggle<CR>

" Автозапуск NERDTree та переміщення курсору до вікна поруч.
"autocmd VimEnter * NERDTree | wincmd p

" Вихід з Vim, якщо NERDTree єдине вікно єдиної вкладки.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif

"Налаштування ALE
let g:ale_linters = {
\  'rust': ['analyzer'],
\}

"let g:ale_fixers = { 'rust': ['rustfmt', 'trim_whitespace', 'remove_trailing_lines'] }

" Автодоповнення при друку
set completeopt=menu,menuone,preview,noselect,noinsert
let g:ale_completion_enabled = 1

" Відкрити перелік функцій tagbar
nmap <F8> :TagbarToggle<CR>

" Показувати відступи за умовчанням
let g:indent_guides_enable_on_vim_startup = 1
" Розмір лінії відступів
let g:indent_guides_guide_size = 1

" Встановлення повноекранного розміру вікна при старті програми
if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

" Встановлення стандартного штрифту
set guifont=Monospace\ 14

" Встановлення нумерації рядків
set number

" Встановлення вертикальної лінії-обмежувача на 80 символів максимум
set colorcolumn=80

" Запуск cargo run при натисканні F5
nnoremap <F5> :!cargo run<CR>

P.S.  Файл-шпаргалка з командами для Vim у прикріпленні.

Post's attachments

Vim Cheat Sheet.pdf 51.96 kb, 65 downloads since 2024-05-15 

Подякували: FakiNyan1