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. Грабить корованы.
Рецепт:
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. Грабить корованы.
0 TrackBacks
Listed below are links to blogs that reference this entry: Erlang shell.
TrackBack URL for this entry: http://net-geek.org/cgi-bin/mt/mt-tb.cgi/262
а зачем работать в его шелле, а не в емаксе или чем-то подобном?
Я честно делал попытку переключиться на емакс, я даже тебе вопросы задавал в процессе, если помнишь. Но vi у меня уже прошился на уровень мелкой моторики. Поэтому никаких емаксов для меня.
Я поражен широте твоих интересов %)
А что ты на erlang'е делать ?
Я поражен широте твоих интересов %)
А что ты на erlang делать?
Вот почему мелкое скриптописательство на перле - это нормально, а такое же мелкое писательство на эрланге - это сразу широта интересов?
Делаю я на нем всякую копеечную автоматизацию для себя любимого. Помимо вполне приемлемых результатов получаю огромный fun от языка. Сплошные плюсы.
Ага, некоторые вот вместо перла пишут на Haskell...
Не рассматривал просто erlang именно как язык для мелких поделок - смотрел только из-за ejabberd.