> Краткий обзор средств для работы с кодом из консоли_

Червонный Максим

Краткий обзор средств для работы с кодом из консоли_

Почему важно знать консольные команды

часто код удобнее редактировать непосредтвенно на удаленном сервере, чем скачивать его локально или монтировать удаленную FS

Почему важно знать консольные команды

  • быстрота
  • мобильность (vim и bash есть везде и бесплатно)
  • ЧСВ, эстетичность (зеленые буковки на черном фоне!)

Интерфейсы

  • удивительные

    (GUI, Google Wave, WoflramAlfa, Cuil, <select>)

  • удобные

    (Google Search, терминал)

Контекстные меню, тысячи их

Интуитивный интерфейс

set encoding=UTF-8

Системы контроля версий

VCS не просто система для синхронизации кода

Как вернуть изменения (changeset) определенной ревизии

  • svn diff -r362:363 filename | less
  • svn merge -r362:363 filename
  • git diff e76d3c43d84e05..48b2c7207ed2be
  • git reset e76d3c43d84e05

Как найти виноватого

  • svn blame
  • git blame

Как разруливать конфликты

<<<<<<< HEAD:helloworld.js
ololo = function() {
=======
function ololo() {
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:helloworld.js

Как разруливать конфликты

svn resolve --accept working

Поиск и замена

find, grep, пайпы, регулярные выражения

Поиск файлов

  • find . -name '*.html'
  • find . -name '*.html' | less
  • find . -name '*.html' | grep 'index'
  • find . -name '*.orig' -exec rm {} \;

Поиск в файлах

grep -r 'v2.08' .

Замена в файлах

  • grep -r 'v2.08' . | xargs sed -i "s/v2.08/v2.09/g"
  • find . -name "*.html" -print | xargs sed -i 's/<div id="sidebar">/<aside>/g'

Far

Find and Replace plugin

Imagemagick

  • convert
  • mogrify
    • mogrify -resize 100x *.jpg
  • montage
    • montage -mode Concatenate *-icon.png sprite.png

Толерантная разработка

  • ln -s bin/upgrading/s2/layers s2
  • ln reps/ma-kul-script/core/index.pl ~/bin/run-script
  • git svn
  • hg git