Форум программистов, компьютерный форум, киберфорум
Panda58dev
Войти
Регистрация
Восстановить пароль
Выкладываю всё, что считаю нужным.
Оценить эту запись

NeoVim для PHP разработчика на windows.#1 Установка(2021г)

Запись от Panda58dev размещена 16.05.2021 в 19:16
Обновил(-а) Panda58dev 21.05.2021 в 10:19

Вступление
И так, я не буду писать, какой NeoVim классный редактор, чем он круче других и даже не буду писать про его различия с Vim, если Вас интересует это - Вы не по адресу
Почему на windows? Да потому что полноценных гайдов по установке на шинду windows я не нашёл, так что решил написать его сам. Вообще хотелось бы разобрать конкретную конфигурацию, для разработки на PHP. За своей сборкой я работал примерно месяц и я уже смог составить свой конфиг (хотя он отчасти берёт своё содержимое из этой статьи).

Подготовка
Для начала, если Вам вздумалось кодить NeoVim, то его надо установить. Установку можно провести двумя способами:
  1. Скачать архив с программой и распакавать его у себя на машине;
  2. Поставить через пакетный менеджер choco.

Лично я придерживаюсь второго варианта, т.к. choco поставит все нужные зависимости. Если с первым вариантом всё понятно, то для второго нужно скачать сам пакетник. Заходим на сайт choco, смотрим на пункт "step2", открываем PowerShell (если Вы не умеете это делать, то затея с NeoVim хорошим не кончится), пишем туда Get-ExecutionPolicy, что бы можно было запускать скрипты без всяких подписей (либо можно в параметрах windows активировать режим разработчика), далее копируем строку ниже:
PowerShell
1
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Вставляем в открытый PowerShell жмём "Enter" и ждём пока установится (обычно не больше 30-ти секунд).
Поздравляю - пакетный менеджер установлен!

Установка NeoVim через choco
В PowerShell вставляем строку:
PowerShell
1
choco install neovim
Во время установки у Вас будут спрашивать, надо ли исполнять тот или иной скрипт. Можно на каждый писать Y (исполнить), но можно сразу ответить A (исполнить все).
Кроме NeoVim будут устанавливаться и некоторые другие желательные компоненты, поэтому, после окончания установки Вас попросят как можно быстрее перезагрузить компьютер. Советую так и поступить.

#Если надо использовать NeoVim из консоли:
Кликните здесь для просмотра всего текста
Теперь, если Вы ставили редактор, через choko, то можете запускать NeoVim из cmd/PowerShell (nvim - запуск в открытой консоли, nvim-qt - запуск в отдельном окне). Иначе, если Вы ставили через архив, то вам надо добавить папку C:\(путь до папки)\bin\ в переменную среду Path. На эту тему в интернете есть много подробных статей, так что проблем быть не должно. Уже добавили? Значит Вы молодец и можете использовать NeoVim из cmd/PowerShell.


Установка менеджера плагинов
Менеджеров плагинов несколько, но мы будем придерживаться классики и ставить будем Plug.
Тут всё просто, заходим на страницу в GitHub, смотрим метод установки на шинду windows, открываем любимый PowerShell и вставляем в него:
PowerShell
1
2
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
(Почему то при копировании с GitHub строки вводились в обратном порядке и из-за этого скрипт не работал, советую перепроверить вставку)

Теперь, если всё хорошо - осталось накачать NeoVim плагинами.

Установка плагинов для NeoVim
(Должен предупредить что конфигурация и плагины сделаны для удобного написания кода на PHP, для других ЯП-ов мой конфиг может быть бесполезным)

Для начала переходим в каталог C:\Users\(имя вашего пользователя)\AppData\Local\, создаём там директорию nvim, в неё помещаем файл init.vim
...
Что за файл init.vim? Это файл конфигурации, в нём содержится большая часть конфигурации редактора. Конкретно нам нужна конфигурация менеджера плагинов. Установка пакета в vim/neovim происходит не как в привычных Sublime Text и VS code, то бишь командами. В суровом редакторе линуксоидов, плагины, которые вы хотите установить, надо записывать в файл конфигурации. Скачиваем архив с шрифтом "Hack" для нормального отображения интерфейса Вложение 6972 (конкретно нам нужна поддержка Nerd). В интернете полно статей по редактированию init.vim, так что я просто покажу свою конфигурацию:
WARNING Данная конфигурация не полноценна, советую использовать init.vim из продолжения.
Код:
call plug#begin('~/AppData/Local/nvim/plugged')
"Начало списка пакетов

"Утилиты
Plug 'preservim/nerdtree'
Plug 'jlanzarotta/bufexplorer'
Plug 'tpope/vim-fugitive'

"Дизайн
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'"
Plug 'tomasr/molokai'
Plug 'ryanoasis/vim-devicons'

"Подстановка
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'StanAngeloff/php.vim'
Plug 'mattn/emmet-vim'

"Конец списка
call plug#end()

set encoding=utf-8 
syntax enable "Включает подсветку синтаксиса
colorscheme molokai

"Включение подсказок
let g:deoplete#enable_at_startup = 1

let g:airline_theme='simple' " Тема airline 
let g:airline_powerline_fonts = 1
let g:airline#extensions#keymap#enabled = 0 "Не показывать текущий маппинг
let g:airline_section_z = "\ue0a1:%l/%L Col:%c" "Кастомная графа положения курсора
let g:Powerline_symbols='unicode' "Поддержка unicode

" Делаем так, чтобы навигация работала на русском языке
nmap о j
nmap л k
nmap р h
nmap д l
nmap ш i
nmap ф a
nmap в d

nmap Ж :
nmap ц w
nmap й q
nmap м v
nmap ы s

" Отмена действия
inoremap <C-z> <ESC>:u<Return>a
" Комментирование
inoremap <C-/> /**<Return><Space><Return>/<Esc>"ka 
" Сохранение
inoremap <C-s> <ESC>:w<Return>
" Вставка 
inoremap <C-v> <ESC>"+Pa
" Копирование
inoremap <C-c> <ESC>"+Ya


set noshowmode " --INSERT-- не мозолит глаза
set guifont=Hack:h15 " Настройка шрифтов
set number " Нумерация строк
set wrap linebreak nolist " Перенос строки при переполнении окна
set cursorline " Подсветка строки с куросом

set keymap=russian-jcukenwin 
"Язык ввода при старте Вима - Английский
set iminsert=0
""Аналогично настраивается режим поиска
set imsearch=0

"Табуляция
"При нажатии Tab вставляется 4 пробела
set tabstop=4 
set expandtab
set shiftwidth=4
set smarttab
set smartindent

" В нормальном режиме Ctrl+n вызывает :NERDTree
nmap <C-n> :NERDTreeToggle<CR>
vmap ++ <plug>NERDCommenterToggle
nmap ++ <plug>NERDCommenterToggl
let g:NERDTreeGitStatusWithFlags = 1
let g:NERDTreeIgnore = ['^node_modules$']

" Перемещение по буферам
nmap <C-F5> <Esc>:BufExplorer<cr>
vmap <C-F5> <esc>:BufExplorer<cr>
imap <C-F5> <esc>:BufExplorer<cr>

" F6 - предыдущий буфер
nmap <C-F6> :bp<cr>
vmap <C-F6> <esc>:bp<cr>i
imap <C-F6> <esc>:bp<cr>i

" F7 - следующий буфер
nmap <C-F7> :bn<cr>
vmap <C-F7> <esc>:bn<cr>i
imap <C-F7> <esc>:bn<cr>i
Комментирование у меня ужасное, но опять же - все непонятное можно найти в интернете или спросить на форуме
Должен предупредить, что хоткеи по типу вставка/сохранение/отмена действия и т.д. будут работать только в режиме вставки текста.

Запускаем NeoVim или перезапускаем, если уже был запущен. В нормальном режиме вводим :PlugInstall, должен разделиться экран и начаться процесс установки. Перезапускаем редактор.

Название: nvim1.jpg
Просмотров: 308

Размер: 103.6 Кб

Казалось бы, вот и всё, бери и пользуйся! Но нет, нам надо ещё настроить COC.

Настройка/Установка плагинов COC
COC нам нужен для показа ошибок в коде, продвинутых подсказок и т.п.

Сначала нам надо установить node.js, иначе coc не будет работать. Сделать это довольно просто: переходим на страницу загрузки node, выбираем нужную нам версию, скачиваем, устанавливаем (может потребоваться перезагрузка). Либо можете попробовать поставить его через choco.

Перезапускаем редактор, в нормальном режиме вводим :CocInstall coc-phpls. Установилось? Теперь пишем :CocInstall coc-json, :CocInstall coc-html.

Заключение
В итоге мы получаем быстрый и удобный редактор с подстветкой синтаксиса, показом ошибок, небольшим файловым менеджером, интегрированным git и ещё многими плюшками. Если использовать полученный NeoVim в связке с xdebug, то можно получить полноценную IDE

Название: nvim2.jpg
Просмотров: 305

Размер: 104.8 Кб
Размещено в Без категории
Показов 1118 Комментарии 1
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для t_forward
    Буквы поплыли
    https://ibb.co/M9jmnQb
    Респект за php)
    Запись от t_forward размещена 21.05.2021 в 19:02 t_forward вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.