Recently in erlang Category

Erlang shell

|
Меня чертовки раздражает CLI, в котором не работают ^U и ^W. Просто выводит из себя. Я долго мирился с этим безобразием в erlang shell, но наконец не вытерел.

Рецепт:
1. Взять edlin.erl из сорцов, скопировать к себе. У меня для этого есть ~/elib
2. Наложить патч
--- /home/dg/erlang-R12B-1/otp_src_R12B-1/lib/stdlib/src/edlin.erl      2007-11-26 21:55:31.000000000 +0300
+++ /home/dg/elib/edlin.erl     2008-04-23 00:11:31.000000000 +0400
@@ -164,6 +164,7 @@
 key_map($\^T, none) -> transpose_char;
 key_map($\^U, none) -> ctlu;
 key_map($\^], none) -> auto_blink;
+key_map($\^W, none) -> backward_kill_word;
 key_map($\^X, none) -> ctlx;
 key_map($\^Y, none) -> yank;
 key_map($\e, none) -> meta;
@@ -242,6 +243,9 @@
 do_op(kill_line, Bef, Aft, Rs) ->
     put(kill_buffer, Aft),
     {{Bef,[]},[{delete_chars,length(Aft)}|Rs]};
+do_op(ctlu, Bef, Aft, Rs) ->
+    put(kill_buffer, Bef),
+    {{[],Aft},[{delete_chars,-length(Bef)}|Rs]};
 do_op(yank, Bef, [], Rs) ->
     Kill = get(kill_buffer),
     {{reverse(Kill, Bef),[]},[{put_chars,Kill}|Rs]};

3. Компильнуть
4. alias erl="erl -pa ~/ebin"
5. Грабить корованы.

Pages

Recent Posts

Archives

Sign In