PostgreSQL
coub
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
powershell
python
ubuntu
vim
virtualbox
анекдот
блог
игры
интересно
стихи
цитаты
Linux: как быстро создать структуру папок
November 19, 2013
Врядли это для кого-то открытие конечно, но тем не менее.
У mkdir (man mkdir) есть ключик -p который позволяет создавать довольно интересные структуры подпапок одним движением. Например
Можно сделать несколько интереснее
У mkdir (man mkdir) есть ключик -p который позволяет создавать довольно интересные структуры подпапок одним движением. Например
mkdir -p ./one/two/threeсоздаст три вложенных друг в друга папки внутри текущей директории.
Можно сделать несколько интереснее
mkdir -p ./one/{two1,two2,two3}/three
что даст нам такую структуру (допустим что мы запускали это все из домашней папки)
~/one/two1/three ~/one/two2/three ~/one/two3/threeНу и ещё раз если вдруг кто не понял что происходит
mkdir -p ./one/{two1,two2,two3}/{th1,th2,th3}
Создает такую структуру
~/one/two1/th1 ~/one/two1/th2 ~/one/two1/th3 ~/one/two2/th1 ~/one/two2/th2 ~/one/two2/th3 ~/one/two3/th1 ~/one/two3/th2 ~/one/two3/th3Ну и понятное дело фигурные скобки можно использовать не только с mkdir, в этом примере мы чистим папки с кешем и логами для трех типовых проектов лежащих в текущей папке
#!/bin/bash
rm -rf {proj1,proj2,proj3}/{logs,cache}/*
Vim: скринкасты
October 29, 2013
Тут буду подкладывать ссылок на кладбища скринкастов по виму
- Vim Tutorial Videos - для начинающих, от базовых до очень интересных вещей, веселый автор
- Vimcasts.org - широко известный ресурс, просто тонны всяких vim-вкусняшек, обязательно к посещению
- Destroy All Software - ворованный каталог из 80 скринкастов одного очень толкового дядьки. Кроме вима также рассматриваются git, TDD, *nix и т.д. Каталог можно глянуть вот тут.
- udioica.blogspot.ru - это не совсем скринкасты, а анимированные gif-ки с решениями задач с vimgolf.com. Вообще-то я не уверен что это человек. Больше похоже на vim-терминатора. Я не представляю как это все можно запомнить.
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Другие бинды на ваше усмотрение конечно.