Последние посты

Больше статей

Опи­са­ние Этот ко­нфиг ис­поль­зую на всех де­скто­пах и те­ле­фо­нах. Посте­пенно он по­пол­ня­ет­ся. Акт­уаль­ную вер­сию вс­ег­да мож­но най­ти в ра­бо­чем ре­по­зи­то­рии: https://github.com/johnlepikhin/emacs-public/blob/master/settings.org. Из не­го ди­на­ми­чес­ки под­гру­жа­ют­ся фай­лы: ~/.emacs.d/local/user-info.org : на­ст­рой­ки email, име­ни поль­зо­ва­те­ля и т.д. ~/.emacs.d/local/org-agenda.org : лич­ные на­ст­рой­ки ша­бло­нов agenda ~/.emacs.d/local/org-capture.org : лич­ные ша­бло­ны org-за­пи­сей ~/.emacs.d/local/gnus-accounts.org : по­что­вые ак­ка­ун­ты ~/.emacs.d/local/gnus-templates.org : по­что­вые ша­бло­ны Как под­кл­ючать В ~/.emacs на­до на­пи­сать: (package-initialize) (defun my-load-org-config (subpath) (let ((ini-file (expand-file-name subpath user-emacs-directory))) (condition-case errinfo (org-babel-load-file ini-file) (error (message "Cannot load settings for file %s: %s" ini-file errinfo))))) (my-load-org-config "public/settings.

Читать далее

Час­то воз­ни­ка­ет не­об­хо­ди­мость за­пла­ни­ро­вать ка­кую-то слож­ную шту­ку к опре­де­лен­ной да­те. Напри­мер, это экс­пе­ди­ции, ММБ, тре­ни­ро­воч­ный план и т.д. То есть, не­кое ме­ропри­ятие, к ко­то­ро­му на­до на­чи­нать го­то­вить­ся за­ранее и ко­то­рое со­дер­жит к се­бе ку­чу от­дель­ных за­дач, каж­дое со сво­им сме­ще­ни­ем от ос­нов­ной да­ты. Рань­ше для ре­ше­ния этой за­да­чи я на­пи­сал сис­те­му темпле­йтов в org-mode, но ока­за­лось слиш­ком слож­но. Это вто­рая по­пы­тка: ме­ропри­ятие опи­сы­ва­ем в стан­дарт­ном ви­де, а по­том спе­ци­аль­ная функ­ция ко­пи­ру­ет всё под­де­ре­во с со­раз­мер­ным сдви­гом всех дат.

Читать далее

В ин­тер­не­те опять кто-то не­прав. На CPAN ку­ча мо­ду­лей для пар­си­нга LaTeX-до­ку­мен­тов, и аб­со­лют­но все кри­вые. Авто­ры яв­но не в кур­се о лек­си­чес­ком ана­ли­зе, о том что без то­ке­ни­за­ции ис­клю­чи­тель­но на ре­гэкс­пах да­же ба­зо­вую грам­ма­ти­ку вы­де­лить не по­лу­чит­ся. В ре­зуль­та­те, де­сят­ки ки­ло­ба­йт ко­да, не про­хо­дя­ще­го да­же про­стей­шие тес­ты ви­да: \command[opts]{arg} Пос­мот­рел на это, вспла­кнул, за па­ру ча­сов ре­али­зо­вал пар­сер и принтер грам­ма­ти­ки перво­го уро­вня. Может при­го­дит­ся ко­му-ни­будь: https://github.com/johnlepikhin/p5-TeX-Process. В README ку­ча при­ме­ров, не ви­жу смыс­ла как-то от­дель­но ком­мен­ти­ро­вать.

Читать далее

Решил вы­ло­жить в ви­де мо­ду­ля па­ру функ­ций в 20 строк, ко­то­рые дав­ным-дав­но тас­каю по всем сво­им про­ек­там и ко­то­рые силь­но упро­ща­ют на­пи­са­ние боль­ших про­ек­тов на Perl. Вот он: https://github.com/johnlepikhin/p5-Syntax-NamedArgs Функ­ции де­ла­ют про­стые ве­щи: Гаран­ти­ру­ют, что функ­цию по­зва­ли с хэш-ар­гу­мен­та­ми; Про­ве­ря­ют, что та­кие-то ар­гу­мен­ты пе­ре­да­ны; Позво­ля­ют за­дать зна­че­ние по умо­лча­нию; Валят чи­та­емую ошиб­ку, ес­ли где-то вглу­би сте­ка ока­за­лось, что ар­гу­мен­та не­хва­та­ет. В со­вокуп­нос­ти это по­зво­ля­ет пи­сать до­воль­но за­мыс­ло­ва­тые кон­ст­рук­ции с лег­кой ор­га­ни­за­ци­ей глу­бо­кой пе­ре­да­чи зна­че­ний.

Читать далее

Emacs не уме­ет ра­бо­тать с кноп­ка­ми аль­тер­на­тив­ных рас­кла­док. Точ­нее, уме­ет слиш­ком хо­ро­шо: для это­го на­до все го­ря­чие кноп­ки за­но­во объ­явить в аль­тер­на­тив­ной рас­клад­ке. Я лич­но к та­ким по­дви­гам не го­тов. Есть не­сколь­ко ре­ше­ний этой про­бле­мы (1, 2), но все они чу­до­вищ­ны и пло­хо управ­ля­емы: Пер­вый ко­стыль опре­де­ля­ет класс те­ку­ще­го ок­на и, ес­ли это Emacs, вмес­то сме­ны рас­клад­ки шлет код кноп­ки F31/F32. В Emacs на­зна­ча­ют­ся ху­ки для об­ра­бот­ки этих кнопок, ко­то­рые пе­ре­клю­ча­ют внут­рен­ний те­ку­щий ме­тод вво­да Ема­кса.

Читать далее