Все эти настройки нужно добавить в файл ~/.emacs.
Мне хотелось, чтобы компиляция запускалась по одной кнопке. Для каждого проекта вообще-то могут быть разные команды для компиляции. Например, чтобы скомпилировать qt'шный проект мне нужна вот такая команда qmake-qt4 CONFIG+=debug_and_release && make debug. Для какой-нибудь простой программки, где не хотелось бы городить файл Makefile, достаточно будет такой g++ имя_файла.cpp ну и т.п. По одной кнопке как-то и не получается, я сделал так, чтобы по одной кнопке происходил запуск последней команды компиляции. Вот так.
(global-set-key [f9] 'recompile)
По нажатии на кнопку F9 происходит перекомпиляция проекта.
Мне хотелось чтобы переключение между фреймами происходило по одной кнопке. Делается это вот так.
(global-set-key [f6] 'other-window)
По нажатии на кнопку F6 происходит переход в следующий фрейм.
И настройка отступов, так как нравиться мне, делается вот так.
(defun my-c-mode-common-hook ()
(c-set-offset 'substatement-open 0))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
Отступы от if, for, switch и т.п., когда ты ставишь { фигурную скобку равен нулю. Так как мне нравиться.
21 июня 2008 г.
31 мая 2008 г.
Emacs
Две недели назад у меня сломался Eclipse. Чего-то он индексировал, нагревая процессор моего ноутбука, потом о чем-то задумался и упал. Больше я его запустить не смог. Мне это так надоело, я лениво полазил по форумам, лениво почитал лог-файл и понял, что дальше так жить нельзя.
Слышал я, что существует очень быстрая, нетребовательная к ресурсам, управляемая с клавиатуры среда разработки под названием emacs. Но "умные" люди говорят, что нужно очень много учиться, чтобы можно была начать пользоваться emacs. О нем говорят, что в нем есть все кроме текстового редактора. Все это меня от emacs'а отпугивало, но деваться было некуда, Eclipse не запускался, да и надоел он мне.
Оказался emacs не таким уж и страшным, как его малевали. Это обычный текстовый редактор, в нем работают все клавиатурные сокращения к которым ты привык. Выделение куска теста с Shift'ом, копирование и вставка клавишами Ctrl+Ins, Shift+Ins. Курсор нормально управляется стрелочками. У него есть меню. В общем ты его просто запускаешь и начинаешь в нем работать.
Он из коробки без всяких настроек умеет компилировать C/C++ код. И в тексте умеет показывать, где произошла ошибка. Он из коробки без всяких настроек умет работать в режиме отладчика. В общем, он просто работает. Он быстро запускается и быстро работает. Это просто редактор, который работает.
Для меня он немного нудобен, я бы хотел, чтобы компиляция запускалась нажатием одной кнопки. Я бы хотел переключаться между фреймами нажатием одной кнопки, я бы хотел чтобы дебагер запускался нажатием одной кнопки. Я хочу, чтобы работало автозаполнение, мне не нравиться как он делает отступы фигурных скобок. Умные люди утверждают, что это можно настроить. Я надеюсь, что это так.
Слышал я, что существует очень быстрая, нетребовательная к ресурсам, управляемая с клавиатуры среда разработки под названием emacs. Но "умные" люди говорят, что нужно очень много учиться, чтобы можно была начать пользоваться emacs. О нем говорят, что в нем есть все кроме текстового редактора. Все это меня от emacs'а отпугивало, но деваться было некуда, Eclipse не запускался, да и надоел он мне.
Оказался emacs не таким уж и страшным, как его малевали. Это обычный текстовый редактор, в нем работают все клавиатурные сокращения к которым ты привык. Выделение куска теста с Shift'ом, копирование и вставка клавишами Ctrl+Ins, Shift+Ins. Курсор нормально управляется стрелочками. У него есть меню. В общем ты его просто запускаешь и начинаешь в нем работать.
Он из коробки без всяких настроек умеет компилировать C/C++ код. И в тексте умеет показывать, где произошла ошибка. Он из коробки без всяких настроек умет работать в режиме отладчика. В общем, он просто работает. Он быстро запускается и быстро работает. Это просто редактор, который работает.
Для меня он немного нудобен, я бы хотел, чтобы компиляция запускалась нажатием одной кнопки. Я бы хотел переключаться между фреймами нажатием одной кнопки, я бы хотел чтобы дебагер запускался нажатием одной кнопки. Я хочу, чтобы работало автозаполнение, мне не нравиться как он делает отступы фигурных скобок. Умные люди утверждают, что это можно настроить. Я надеюсь, что это так.
29 мая 2008 г.
Emacs памятка
C-x C-f открыть файл
C-x C-s сохранить файл
C-/ отмена
C-k удалить строку
C-s поиск
C-e поиск назад
M-x pwd
M-x cd
C-x s сохранить все с вопросом
C-x C-c выход
M-x dired браузер каталогов
C-x C-d распечатка каталога
C-x b буфер RET
выбор буфера
C-x C-b список буферов
C-x k имя буфера RET
уничтожить буфер
C-x о выбрать другое окно
C-x 0 удалить выбранное окно
C-x 1 удалить все окна кроме выбранного
C-j RET+TAB
C-u команда
задать счетчик повторов
M-x gdb дебагер
M-x compile
компиляция
С-x 2
C-x 3 разбиение окна по горизонтали и по вертикали
Команды дебагера
C-x SPS установить контрольную точку
C-c C-s step
C-c C-n next
C-c C-f возврат
C-c C-r run
C-c C-d удалить контрольную точку
C-x C-s сохранить файл
C-/ отмена
C-k удалить строку
C-s поиск
C-e поиск назад
M-x pwd
M-x cd
C-x s сохранить все с вопросом
C-x C-c выход
M-x dired браузер каталогов
C-x C-d распечатка каталога
C-x b буфер RET
выбор буфера
C-x C-b список буферов
C-x k имя буфера RET
уничтожить буфер
C-x о выбрать другое окно
C-x 0 удалить выбранное окно
C-x 1 удалить все окна кроме выбранного
C-j RET+TAB
C-u команда
задать счетчик повторов
M-x gdb дебагер
M-x compile
компиляция
С-x 2
C-x 3 разбиение окна по горизонтали и по вертикали
Команды дебагера
C-x SPS установить контрольную точку
C-c C-s step
C-c C-n next
C-c C-f возврат
C-c C-r run
C-c C-d удалить контрольную точку
6 апреля 2008 г.
Багаж
Смотрел правила провоза багажа на свой рейс в США. Получается можно взять два чемодана в багаж весом не более 23 кг и одну сумку в ручную кладь весом не более 12 кг. Получается если мы летим вдвоем, то можно увезти до 2*(2*23+12)=116 кг. Нормальненько так.
2 апреля 2008 г.
Разрезать и склеить файлы
Чтобы разрезать файлы нужно использовать команду split
Чтобы склеить фалы используйте команду cat
Чтобы склеить фалы используйте команду cat
25 марта 2008 г.
Резервное копирование
Подумал о правильном резервном копировании данных на моем компьютере. Раньше я делал это простым tar скриптом, который все данные скидывает в один файл и все. Недостаток этого дела, в том что затруднен доступ к отдельным файлам, процесс резервного копирования достаточно долог. У меня резервная копия занимает около 14 Гб. Поиск в Интернете привел меня вот к такому посту:
http://www.linuxforum.org.ua/viewtopic.php?f=13&t=329
На всякий случай сделаю копию у себя:
http://www.linuxforum.org.ua/viewtopic.php?f=13&t=329
На всякий случай сделаю копию у себя:
Встала задача "правильно" бекапить свои файлы.
Начитался про инкрементное резервное копирование - захотелось и самому :)
nncron.ru писал(а):Инкрементное резервное копирование - очень эффективный и вместе с тем надежный способ резервного копирования. Его основные преимущества - скорость и высокая степень настраиваемости: в зависимости от размера исходных данных вы можете выбирать схему резервного копирования, которая уменьшит затраты времени на восстановление данных (особенно при больших объемах информации).
Режим инкрементного резервного копирования напоминает действие популярной юниксовой утилиты dump и позволяет сначала выполнить резервное копирование всего исходного каталога и потом "добавлять" к нему те файлы, которые изменились со времени последнего резервного копирования.
после некоторого времени потраченного на тесты - разобрался в системе и "подсел" на нее. Очень удобно. В первую очередь хочу поделиться с вами и с самим собой небольшой шпаргалкой по использованию rdiff-backup.
условимся что,
каталог /test/from - каталог с исходными файлами
каталог /test/to - каталог с бекапами
вот так вот делаем резервную копию
--print-statistics выводит небольшой отчет о бакапе.
Код:
rdiff-backup --print-statistics /test/from /test/to
вот так вот сравниваем изменения между уже существующим бекапом и настоящими файлами
Код:
rdiff-backup --compare /test/from /test/to
если мы не хотим бекапить определенный каталог - не страшно
/test/from/hernya - каталог который мы не хотим бекапить.
Код:
rdiff-backup --exclude /test/from/hernya --print-statistics /test/from /test/to
вот так вот просмотриваем количество сохраненных резервных копий и обьем которые занимают инкременты
Код:
rdiff-backup --list-increment-sizes /test/to
если все дисковое пространство сьели инкременты, можно например удалить все что старее чем "сейчас" (сам бекап остается)
Код:
rdiff-backup --remove-older-than now /test/to
а вот так восстанавливаем текущий бекап обратно (now можно заменить на другое время)
Код:
rdiff-backup -r now /test/to /test/from
кстати rdiff-backup работает не только с локальными дисками - но у удаленными.
еще примеров можно найти тут: http://www.nongnu.org/rdiff-backup/examples.html
Ну на совет мастера это не тянет, ну как шпора думаю пойдет :)
З.Ы. единственное что не получилось реализовать - статус бар прогресса выполнения копирования. (хотя с другой стороны, зачем он нужент - ведь это инкрементное копирование.)
исправления ошибок, дополнения и т.д. приветствуются.
20 марта 2008 г.
Как компилировать клиент MySql в Windows
С удивлением заметил, что мой C++ клиент для MySQL не хочет компилироваться из под Windows компилятором MinGW.
Инет говорит, что это нужно лечить вот так:
http://forums.mysql.com/read.php?45,64209,72004
У меня это работает тоже.
Инет говорит, что это нужно лечить вот так:
http://forums.mysql.com/read.php?45,64209,72004
Привет.
Я работаю под Windows XP SP2 и mingw32 (конечно и msys).
Чтобы собрать libmysql.def и libmysql.a нужно:
- Установить mingw-utils (с сайта mingw.org) (для reimp.exe и dlltool.exe)
- установить Windows версию mysql
- вручную скопировать $(MYSQL_PATH)/lib/opt/* в $(MINGW_PATH)/lib/mysql/
- вручную скопировать $(MYSQL_PATH)/include/* в $(MINGW_PATH)/include/mysql/
- запустить msys
- cd $(MINGW_PATH)/lib/mysql
- reimp.exe libmysql.lib
- mv liblibmysql.a libmysql.a
В ваших программах:
#include <winsock.h> // Всегда на первом месте!
#include <mysql.h>
#include ....
Компилировать со следующими флагами:
CFLAGS=-I$(MINGW_PATH)/include/mysql
LDFLAGS=-L$(MINGW_PATH)/lib/mysql -lmysql -lm -lz
У меня это работает. Я могу соеденяться, выбирать базу данных, создавать базу данных, выполнять запросы...
У меня это работает тоже.
18 марта 2008 г.
Как сделать USB звуковуху, устройством по умолчанию
Когда втыкаешь в компьютер внешнюю USB звуковую карточку, чтобы сделать ее alsa устройством по умолчанию нужно дать команду:
asoundconf set-default-card Audio
Чтобы увидеть список звуковых устройств нужно дать команду:
asoundconf list
asoundconf set-default-card Audio
Чтобы увидеть список звуковых устройств нужно дать команду:
asoundconf list
14 марта 2008 г.
Доводка Eclipse
Продолжаем доводку Eclipse зубилом и напильником. В Ubuntu только что установленный Eclipse жутко тормозит.
Первым делом нужно заставить его работать под управлением java машины от Sun. Для это нужно в файле /etc/eclipse/java_home первой строчкой поставить путь к java машине от Sun, что-то типа этого /usr/lib/jvm/java-6-sun.
Второе, у меня периодически во время индексирования С++ исходного кода, Eclipse вылетал с сообщением о нехватке памяти. Иклипсу нужно дать больше памяти. Чтобы это сделать его нужно запускать вот так:
eclipse -vmargs -Xmx512m -Xms512m
Надеюсь, что жить под Eclipse станет легче.
Первым делом нужно заставить его работать под управлением java машины от Sun. Для это нужно в файле /etc/eclipse/java_home первой строчкой поставить путь к java машине от Sun, что-то типа этого /usr/lib/jvm/java-6-sun.
Второе, у меня периодически во время индексирования С++ исходного кода, Eclipse вылетал с сообщением о нехватке памяти. Иклипсу нужно дать больше памяти. Чтобы это сделать его нужно запускать вот так:
eclipse -vmargs -Xmx512m -Xms512m
Надеюсь, что жить под Eclipse станет легче.
Подписаться на:
Комментарии (Atom)