Перейти к содержанию
Авторизация  
Rikka

Использование PAWN в текстовом редакторе Vim

Рекомендуемые сообщения

Rikka

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

Для начала нужно поставить Vim пока всё просто: sudo apt-get update && sudo apt-get install vim.
После чего установить Vundle. Vundle же ставится относительно нетрудно и гайды есть.
Пример каноничного гайда: https://github.com/VundleVim/Vundle.vim#quick-start
[spoiler=Для самых маленьких]
Выкачиваем 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

" 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/

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)
После чего прописал выше.

[spoiler=На выходе у меня получилось это]
7WiAqfM.png

1Iya9h4.png


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

Автор: Disinterpreter

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

 

Для всех кто считает, что этот урок несет смысловую нагрузку и хочет стянуть к себе на форум:
88x31.png

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rici

нормально смотрится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.