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