PDA

Просмотр полной версии : [Урок] Редактор кода "Vim" | Использование в Pawn



Disinterpreter
14.08.2017, 00:25
Привет, народ!
Это мой очередной очень сложный гайд/урок/называйте как хотите.
И сегодня я расскажу вам об очень интересной проблеме.
Итак, представьте, что у вас есть сервер, плагины которого есть только под Linux, а нужно под них что-то разработать, нам придется разрабатывать и компилировать под Linux, и этим гайдом я покажу как можно приблизить это к реальности (только вот это скорей для линуксойдов).
Изначально, я хотел презентовать свои наработки, но подумал, можно добавить пару вещей.

Для начала нужно поставить Vim (https://ru.wikibooks.org/wiki/Vim) пока всё просто: sudo apt-get update && sudo apt-get install vim.
После чего установить Vundle. Vundle же ставится относительно нетрудно и гайды есть.
Пример каноничного гайда: https://github.com/VundleVim/Vundle.vim#quick-start

Выкачиваем Vundle этой командой, если нет гита то поставить: sudo apt-get install git
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Создаем файлик ~/.vimrc и в него вставляем


set nocompatible " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required

Ну и для уверенности можно зайти в Vim и ввести :PluginInstall

Окей, Vundle мы поставили, теперь ставим то, что я писал поверх Vundle. Для этого мы клонируем содержимое репозитория https://github.com/Disinterpreter/vim-pawn.git в ~/.vim/bundle/


git clone https://github.com/Disinterpreter/vim-pawn.git ~/.vim/bundle/

http://i.imgur.com/5Kid8fH.png
т.е директории compiler, fdetect, syntax должны лежать в папке vim-pawn которая лежит в bundle.

Окей теперь можно настроить файл ~/.vimrc хотя я его и положил в своей репозиторить, но нужно оттуда взять самое важное это

syntax on
set number
set makeprg=pawncc\ %:r.pwn\ -i\/home/disi/samp03/pawn/include
function! MakePawn()
silent make | copen
redraw!
endfunction

map <F5> :exec MakePawn()<CR>


Важный момент: в set makeprg укажите пусть до ваших инклюдов.

И перейдем к pawncc, в своем случае я взял pawn от Zeex, выкачал его репозиторий, собрал pawncc компилятор(cmake . && make) и положил его в /bin (sudo cp pawncc /bin)
После чего прописал выше.


https://camo.githubusercontent.com/4c36823d5669a32bdc5670a115317745fcecf851/687474703a2f2f692e696d6775722e636f6d2f706e52586843 412e706e67

https://camo.githubusercontent.com/804776b6e1f4295ed750601f2a9b80928d435925/687474703a2f2f692e696d6775722e636f6d2f41366f364c76 4c2e706e67

И видео: http://webmshare.com/wKxG0

Автор: Disinterpreter

P.S Вначале я решил просто попробовать сделать плагины для Vim, взял старый код для SourcePawn и адаптировал до SAMP репозиторий тут: https://github.com/Disinterpreter/vim-pawn



Для всех кто считает, что этот урок несет смысловую нагрузку и хочет стянуть к себе на форум:
https://i.creativecommons.org/l/by/4.0/88x31.png (http://creativecommons.org/licenses/by/4.0/)

Fallen A.
14.08.2017, 13:26
Сор за оффтоп, но я думал, что ты покажешь, как выйти из vim. xD

Disinterpreter
14.08.2017, 14:09
Сор за оффтоп, но я думал, что ты покажешь, как выйти из vim. xD

https://stackoverflow.blog/2017/05/23/stack-overflow-helping-one-million-developers-exit-vim/

Fallen A.
14.08.2017, 18:21
https://stackoverflow.blog/2017/05/23/stack-overflow-helping-one-million-developers-exit-vim/

Сломал систему.

mapov
17.11.2020, 11:18
Всем привет.

Хочу внести свою лепту, поделиться русской версией справочника по Vim. https://r-notes.ru/administrirovanie/poleznosti/151-osnovnoj-fajl-spravki-vim.html Думаю всем будет полезно, кто в теме.