пятница, 31 декабря 2010 г.

How to untrack some files in git

To delete it from history of tracked files
git -rm cached filename

To save the history
git reset HEAD [file/dir]

How to change terminal default editor in Ubuntu?


sudo update-alternatives --config editor

вторник, 28 декабря 2010 г.

Команды Emacs


Перемещение в буфере

Emacs был спроектирован таким образом, чтобы быть максимально переносимым и работать на любых терминалах. Поэтому у него имеются собственные привязки к клавишам для команд перемещения курсора (точки) в буфере. В таблице, приведенной ниже, перечислены основные команды перемещения курсора в буфере Emacs:
Сочетание клавишКомандаДействие
C-pprevious-lineВверх на одну строку
C-nnext-lineВниз на строку
C-fforward-charВперёд на один символ
C-bbackward-charНазад на один символ
C-abeggining-of-lineНачало строки
C-eend-of-lineКонец строки
C-vscroll-upВниз на одну страницу
M-vprevious-pageВверх на одну страницу
M-fnext-wordВперёд на одно слово
M-bprevious-wordНазад на одно слово
M-<beginning-of-bufferВ начало буфера
M->end-of-bufferВ конец буфера
C-gkeyboard-quitЗакончить (прервать) текущую операцию
goto-lineПереход на заданную строку
Как правило, при работе в системе X Window, кроме перечисленных клавиш, также работают и привычные для пользователей персональных компьютеров клавиши управления курсором (например, стрелки).

Основные команды

В таблицах приведенных ниже перечислены наиболее часто используемые команды, их действие, а также сочетания клавиш, которые используются для их быстрого вызова. Полная форма команды, приведённая в столбце "Команда", используется для запуска с помощью префиксного сочетания M-x, например M-x save-buffer.
  • Команды работы с текстом:
    Сочетание клавишКомандаДействие
    C-ddelete-charУдаление символа перед точкой
    M-dkill-wordУдалить следующее слово
    C-kkill-lineУдалить текст до конца строки
    M-kkill-sentenceУдалить текст до конца предложения
    M-\delete-horizontal-spaceУдалить все пробелы и знаки табуляции вокруг точки
    C-qquoted-insertВставка символа, соответствующего нажатой клавише или сочетанию, даже если это управляющая последовательность
    M-qfill-paragraphВыравнивает текст в текущем параграфе
  • Команды работы с пометками и регионами:
    Сочетание клавишКомандаДействие
    C-spaceset-mark-commandУстановить пометку в точке
    C-@set-mark-commandУстановить пометку в точке
    C-x C-xexchange-point-and-markПоменять местами точку и начало пометки
    mark-whole-bufferПометить весь буфер
    C-wkill-regionУдаление выделенной области в список удалений
    M-wkill-ring-saveКопирование выделенной области в список удалений
    C-yyankВставка текста из списка удалений в текущую позицию
    M-yyank-popПоследовательная вставка текста из списка удалений
    C-x x Ncopy-to-registerКопировать отмеченный текст в регистр (N может быть буквой или цифрой, позволяя использовать множество регистров)
    C-x g Ninsert-registerВставляет в точку содержимое регистра N
    M-\indent-regionВыравнивание строк выделенного фрагмента
  • Команды поиска и замены:
    Сочетание клавишКомандаДействие
    C-sisearch-forwardПоиск строки вперёд
    C-risearch-backwardПоиск строки в обратном направлении
    replace-stringПоиск и замена строки
    replace-regexpПоиск и замена с использованием регулярного выражения
    M-%query-replaceПоиск и замена с запросом
  • Команды работы с файлами буферами и окнами:
    Сочетание клавишКомандаДействие
    C-x C-ffind-fileОткрыть файл на диске
    C-x C-ssave-bufferСохранить буфер на диске
    C-x C-wwrite-fileСохранить буфер в файле с новым именем
    C-x C-blist-buffersОтобразить список открытых буферов в новом окне
    C-x bswitch-to-bufferПереключиться в другой буфер в текущем окне
    C-x C-csave-buffers-kill-emacsПеред выходом из редактора запросить о необходимости сохранения изменённых файлов
    C-x iinsert-fileВставить содержимое файла в буфер в текущую позицию
    C-x 0delete-windowЗакрыть текущее окно (при этом буфер не удаляется)
    C-x 1delete-other-windowsЗакрыть все окна кроме текущего
    C-x 2split-window-verticallyРазделить окно по горизонтали
    C-x oother-windowПереход в другое окно
  • Команды работы со справочной системой:
    Сочетание клавишКомандаДействие
    C-h ?help-for-helpИнформация об использовании справочной системы
    C-h thelp-with-tutorialИспользовать интерактивный учебник
    C-h fdescribe-functionПоказать справку по функции
    C-h vdescribe-variableПоказать справку по переменной
    C-h kdescribe-keyПоказать данные, о том, что делает последовательность клавиш
    C-h aaproposПоиск в справке по строке/регулярному выражению
    C-h Fview-emacs-FAQПоказать Emacs FAQ
    C-h iinfoПоказать документацию по Emacs (Info)
  • Прочие основные команды Emacs:
    Сочетание клавишКомандаДействие
    M-x commandВыполнить команду Emacs с именем command
    C-x uundoОтменить последнюю операцию
    C-x r mbookmark-setУстановить закладку. Полезно при поиске
    C-x r bbookmark-jumpПерейти к закладке

Расширения Emacs

Для расширения возможностей Emacs используются так называемые режимы — пакеты расширений, которые изменяют поведение буферов Emacs при редактировании и просмотре текста. Режимы делятся на основные и вспомогательные.
Основные режимы определяют общее поведение редактора. Как правило, основные режимы предоставляют команды и функции для редактирования определённых типов текста. Например, существуют режимы для редактирования исходного текста программ на языках С или Perl. Обычно для конкретного буфера может одновременно использоваться только один основной режим.
Вспомогательные режимы расширяют возможности Emacs. При этом отдельный вспомогательный режим может быть использован в сочетании с разными основными режимами. В одном буфере может быть использовано несколько вспомогательных режимов. Основной и вспомогательные режимы, действующие для данного буфера, отображаются в строке статуса.
Пакеты, входящие в состав дистрибутивов ALTLinux, обычно поставляются со сценариями, которые подключают режимы с определёнными параметрами по умолчанию. Вы можете настроить конкретные параметры для нужного вам режима, используя доступные для него команды настройки (смотрите раздел Настройка).
Многие основные режимы автоматически загружаются (включаются) при открытии файла с соответствующим расширением. Вы также можете включить или отключить нужный режим вручную с помощью команды M-x name-mode, где name — имя режима. Например, команда M-x auto-fill-mode включает режим автоматического заполнения строк или отключает его, если этот режим ранее был включён.
Кроме того, включение или отключение режима можно производить путём установки истинного или ложного значения переменной с именем name-mode. Для установки переменной можно использовать команду M-x set-variable, которая запросит у вас имя переменной и значение для неё. Для истинного значения обычно используется значение t, а для ложного — nil.

Работа с исходными текстами программ

CC Mode

Этот основной режим используется при редактировании исходных текстов программ на языках C, C++, Java и Objective C. Режим предоставляет несколько стилей оформления текстов программ, каждый из которых определяет отступы, расположение открывающих и закрывающих скобок, а также многие другие параметры. Кроме того, данный режим обеспечивает правильную работу с выражениями соответствующего языка, а также подсветку ключевых слов и других элементов текста программы.
Режим также обеспечивает возможность компиляции программ прямо из Emacs, а также интерфейс к отладчику.
Данный режим поставляется вместе с GNU Emacs. Как правило, он подключён (сделан доступным для Emacs) по умолчанию, так что вы можете смело открывать исходный текст на соответствующем языке — режим будет загружен автоматически.

Perl

Для редактирования программ на языке Perl самым распространённым является режим cperl-mode. Он обеспечивает подсветку синтаксиса языка, а также много полезных дополнений: например, вывод подсказки о синтаксисе операторов языка или развёртывание сокращений в полные конструкции языка. Режим поставляется вместе с GNU Emacs.

Другие режимы для языков программирования

Кроме перечисленных выше режимов, в поставку GNU Emacs входит много режимов для работы с исходными текстами программ на различных языках программирования, таких как SQL, Python, Tcl, Fortran, Pascal, язык файлов make, языки разных командных процессоров, и многие другие...
Подробный список таких режимов можно найти в Emacs Elisp Archive (смотрите раздел Дополнительные ресурсы).

Пакет JDEE

JDEE — это среда разработки Java для Emacs. Этот пакет обеспечивает эффективную работу с исходными текстами программ на языке Java.
JDEE позволяет компилировать, запускать и отлаживать как автономные программы, так и апплеты, написанные на языке Java. Кроме этого, пакет обеспечивает богатые возможности по автоматической вставке текста для различных конструкций Java, дополнение имён функций и переменных — членов классов, навигацию по исходным текстам и многое другое.