PostgreSQL
coub
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
powershell
python
ubuntu
vim
virtualbox
анекдот
блог
игры
интересно
стихи
цитаты
Vim: перезагрузка ~/.vimrc налету
October 29, 2013
Очень неудобно бывает после правки .vimrc закрывать сессию полностью чтобы применить внесенные изменения. Можно этого избежать довольно легко:
# выполните в редакторе :echo $MYVIMRC чтобы понять что это за переменная source $MYVIMRCЧтобы было удобнее жить можно добавить пару команд покороче, например так:
" edit ~/.vimrc file command! RcEdit e $MYVIMRC " reload ~/.vimrc config command! RcReload source $MYVIMRC
Vim: поиск и замена строк в файле
October 22, 2013
Я пользуюсь этим в виме не часто пока и постоянно забываю как там танцуется эта замена, самый простенький вариант примерно такой: имеем файл пример с таким содержимым:
Интересный нюанс: чтобы заменить что-то с переводом строки \n придется использовать \r то есть примерно вот так
./folder1/folder2/file1.txt ./folder1/folder2/file2.txt ./folder1/folder2/file3.txt ./folder1/folder2/file4.txt ./folder3/folder5/file5.txt ./folder3/folder5/file6.txt ./folder3/folder5/file7.txt ./folder4/folder6/file8.txt ./folder4/folder6/file9.txt ./folder4/folder6/file10.txtДопустим нужно отрезать из каждой строки все что касается пути, то есть чтобы остались только имена файлов. Переходим в командный режим и выполняем
:%s/\.\/.*\///gcВыглядит довольно похабно, но в общем-то главное знать что искать. Синтаксис замены вообще примерно такой
:%s/serach-str/replace-str/gsearch-str - то что ищем, replace-str - то на что заменяем, просто в примере выше использовано регулярное выражение и слешей много из-за обычного скрина точки и слешей. Модификатор c в примере означает что каждое найденное совпадение и соответственно его замену нам надо будет подтвердить, иначе все найденное в файле будет молча заменено.
Интересный нюанс: чтобы заменить что-то с переводом строки \n придется использовать \r то есть примерно вот так
:%s/\n/ -- \r/gcЛибо как вариант, тоже самое
# чтобы ввести ^M жмем (прямо в строке набора команды) Ctrl+v - Enter :%s/\n/ -- ^M/gc
Vim: как отформатировать xml
October 21, 2013
Для этого понадобится установить xmllint
В .vimrc это будет выглядеть примерно так
# для ubuntu sudo apt-get install libxml2-utils
В .vimrc это будет выглядеть примерно так
command FormatXml execute "%!xmllint --format --recover - "После этого вызов в редакторе чтобы отформатировать текущий файл будет таким:
:FormatXmlДругие бинды на ваше усмотрение конечно.
Как ассоциировать файлы с macvim?
October 16, 2013
В случае если macvim установлен через brew например, то нельзя просто взять и в файндере обычным способом ассоциировать с ним файлы. Его просто нет в папке /Applications потому что он ставится куда-то в дебри /usr/local/Cellar/macvim
Если кто-то ещё не догадался то нужно просто сделать ссылку на него в приложениях
После этой процедуры macvim будет виден как обычное приложение.
Если кто-то ещё не догадался то нужно просто сделать ссылку на него в приложениях
ln /usr/local/Cellar/macvim/7.4-70/MacVim.app /Applications/MacVim.appСсылку мы делаем жесткую в этом случае, любознательные граждане могут полистать man ln
После этой процедуры macvim будет виден как обычное приложение.
Настройка PhpStorm + Xdebug
October 03, 2013
Вообще по-старинке я предпочитаю var_dump но бывает что сапортишь что-то такое что.. словом и xdebug бывает полезен.
-
Ставим сам xdebug (углубляться не буду в операционки, суть не в этом)
# ubuntu/debian sudo apt-get install php5-xdebug
-
После установки убедимся что его видно, все тип-топ
php -m | grep xdebug
- Смотрим phpinfo() и ищем там секцию xdebug. Если все хорошо, то она там должна быть, если не хорошо - пробуем перезагрузить веб-сервер или php-fpm, смотря что у вас установлено. Если все равно не хорошо (sic!) - идем гуглить как вообще xdebug устанавливать. В секции xdebug ищем директиву xdebug.remote_port это порт на который будет стучать отладчик по умолчанию (с сервера на клиент отладчика, у нас клиент - это шторм). Его можно понятное дело изменить на ваше усмотрение, поправив значение в конфиге. По умолчанию это порт 9000. Едем дальше.
-
В php.ini нужно добавить от такие инструкции и убедиться что их видно через браузер (тоже самое: если нужно - перезагружаем сервер)
xdebug.remote_enable=true xdebug.remote_port=9000 xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp
-
Теперь веб-сервер будет пытаться законнектиться на порт клиента который мы указали в настройках (xdebug.remote_port) при каждой загрузке страницы. Теперь надо поднастроить наш проект в шторме под отладчик. Для этого нужно добавить в проект конфигурацию веб-приложения и удаленной отладки. Ниже скриншоты раскрывающие суть этой магии.
Открываем конфигурацию проекта
Добавляем конфигурацию веб-приложения
Правим её
Если нужно добавляем и правим сервер (хост смотрит на хост нашего проекта)
Правим свойства удаленной отладки (после того как добавили конфиг конечно см. скриншот выше) -
Теперь осталось включить в шторме прослушку порта для отладчика. Для этого ищем кнопку на панели инструментов с телефонной трубкой как на скриншоте (или идем в меню Run и ищем там пункт "Start Listen PHP Debug Connections")
- Теоретически все должно работать на данный момент. Итого мы имеем установленный на сервере xdebug который при каждом запросе страницы отправляет клиенту запрос на порт xdebug.remote_port (из настроек сервера) и клиент отладчика в виде шторма с готовым для подключения отладчика портом. Теперь можно ставить брейкпойнты в любом месте приложения и вызывать выбранный юзкейз в браузере. По достижению брейкпоинта шторм должен всплыть и станут доступны все фичи отладчика. Ссылка на официальную доку.
-
Ещё маленькая деталь, отладчик в шторме должен быть настроен на тот же порт что и xdebug.remote_port. То есть на сервере прописываем куда будем стучать, а в шторме - где будем ловить подключение отладчика. Изменить номер порта в шторме можно в настройках проекта