2012-10-10 11 views
7

Używam irb na OS X, a kiedy naciskam opcję lewo/prawo (lub META + B/F) kursor przesuwa się do następnego/poprzednie słowo. Ale irb nie będzie traktował znaku kropki (.) Jako separatora słów.IRB nie respektuje kropki (.) Jako znaku podziału wyrazów

Próbowałem dodać do .irbrc, więc wygląda to teraz (.):

Readline.basic_word_break_characters = " \t\n`><=.;|&{(" 

Ale to nie ma znaczenia.

Używam rubinu Mountain Lion i ręcznie skompilowanego 1.9.3, obie wersje irb zachowują się podobnie. Również kropka jest traktowana jako separator w bashu i podcięciu, więc ustawienia systemowe są prawdopodobnie w porządku.

Każda pomoc mile widziane,

Dzięki

+1

podobne pytanie: http://stackoverflow.com/questions/5097919/word-boundaries-in-irb – pje

Odpowiedz

3

Ok, wydaje się, że problemem było to, że nie było Bibliotekę libreadline zainstalowany w moim systemie w ogóle. Zainstalowanie najnowszego readline i rekompilacja ruby ​​rozwiązało problem.

Używam readline 6.2 z ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz, który został zainstalowany przy użyciu podstawowego ./configure && make && make install.

I mam zainstalowane Ruby 1.9.3-p194 korzystając ruby-zbudować z następujących opcji

sudo ruby-build 1.9.3-p194 /opt/ruby-1.9.3-p194 CONFIGURE_OPTS="--with-readline-dir=/usr/local" 

Po tym IRB rozpoczęła leczenia kropki, podkreślenia i kilka innych znaków jako separatory słów.

Również readline działa prawidłowo powinien zwrócić coś takiego:

Readline::VERSION => "6.2"  

i niewłaściwie jeden mówi:

Readline::VERSION => "EditLine wrapper" 
+0

dziękuję, to działało dla mnie. W połączeniu z pewnymi informacjami pochodzącymi z (http://stackoverflow.com/a/7020698/835766) udało mi się uzyskać to również działając pod kontrolą rvm. –

1

Jeśli masz kłopoty z powyższym (albo nie udało się zainstalować lub potrzebujesz więcej instrukcji), oto co zrobiłem, aby działało.

Dla tych na najnowszym systemie Mac OS X (10.11.2 El Capitan):

curl ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz > temp-readline.tar.gz następnie rozpakować z tar temp-readline.tar.gz. Następnie przejdź do tego katalogu, podając cd readline-6.3. Skonfiguruj i zainstaluj z ./configure && make && make install, tak jak powyżej.

Mam nadzieję, że to pomoże.