SDL2 Уроки

В рамках моего текущего помешательства на лиспе занимаюсь адаптацией замечательной серии туториалов Lazy Foo на Comon Lisp. Для этого я пользуюсь библиотекой cl-sdl2. Так уж вышло, что поддержка некоторого функционала из SDL2, например surfaces, в ней реализована не полностью. Но это не беда, я дописываю нужный функционал по мере продвижения по туториалам, и мне даже дали доступ к мастер ветке репозитария. Поэтому не ставьте версию из quicklisp'а, а сразу клонируйте мастер ветку в ~/quicklisp/local-projects. Пока что я просто переписываю сишные туториалы на общелисп, за чем можно следить на гитхабе. Если хватит сил и терпения, или если появятся желающие, я напишу свои тексты с пояснениями, а может даже сниму видео. Такие дела.

Emacs: M-j многострочный комментарий.

Предположим мы пишем небольшой комментарий в си-подобном языке.

// main is a function which starts our application ❶
function() main {

И наш курсор находится в позиции . Теперь если мы нажмем С-j или RET мы получим:

// main is a function which starts our application
❶
function() main {

И все бы ничего, если бы мы не хотели продолжить писать комментарий. Но есть решение: достаточно нажать M-j и мы получим:

// main is a function which starts our application
// ❶
function() main {

Ну и напоследок.

/* main is a function which starts our application ❶
function() main {

Превращается в:

/* main is a function which starts our application
 * ❶
 */
function() main {

Emacs: M-j многострочный комментарий.

Предположим мы пишем небольшой комментарий в си-подобном языке.

// main is a function which starts our application ❶
function() main {

И наш курсор находится в позиции . Теперь если мы нажмем С-j или RET мы получим:

// main is a function which starts our application
❶
function() main {

И все бы ничего, если бы мы не хотели продолжить писать комментарий. Но есть решение: достаточно нажать M-j и мы получим:

// main is a function which starts our application
// ❶
function() main {

Ну и напоследок.

/* main is a function which starts our application ❶
function() main {

Превращается в:

/* main is a function which starts our application
 * ❶
 */
function() main {

Меняем ctrl и alt местами

$ cat my.xkb

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"	};
    xkb_types     { include "complete"	};
    xkb_compat    { include "complete+ledcaps(group_lock)"	};
    xkb_geometry  { include "pc(pc105)"	};
    xkb_symbols "my" {
        include "pc+us+ru:2+inet(evdev)+group(toggle)+group(lctrl_toggle)+group(lctrl_rctrl_switch)+compose(rwin)"
        replace key  {[ Alt_L, Meta_L]};
        replace key  {[Control_L]};
    };
};

$ xkbcomp my.xkb $DISPLAY