質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Emacs

GNU Emacsと拡張性の高い、高性能なテキストエディタです。豊富なライブラリの導入により、統合開発環境やWebブラウザとしても機能させる事が可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

3236閲覧

Rubyでバックスラッシュ記法が使えない

kyaron

総合スコア12

Emacs

GNU Emacsと拡張性の高い、高性能なテキストエディタです。豊富なライブラリの導入により、統合開発環境やWebブラウザとしても機能させる事が可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

2クリップ

投稿2015/04/23 09:14

編集2015/04/23 09:31

初めて質問します。
そして、更にプログラミングも超初心者で、40を過ぎて思い立ってRubyを始めてみました。
【作りながら学ぶRuby入門 第2版】 をという本を購入して地道に練習問題を始めたばかりなんですが、いきなり壁にぶち当たってしまいました。

バックスラッシュ記法がなぜか使えません。

lang

1# -*- coding: utf-8 -*- 2print "ようこそ¥n" 3print 'Welcome¥n'

という例題の結果は、

ようこそ

Welcome¥n

という結果になるはずでしょうが、


ようこそ¥nWelcome¥n


となってしまいます。
当然、Welcome¥nの後にターミナルのユーザー名がきてしまい、これも改行できていません。

どこに問題があるのか分からず、そのまま若干先に進んでみてるものの同じようにバックスラッシュ記法は、当たり前のように出てきては改行ができずにいます。
例題ではまだ [ puts ] と [ print ] しか使ってないですし、クラスやメソッドの説明段階で、他は問題なく処理され、[ puts ] は問題なく表示されて改行もされています。

バックスラッシュ記法が使えないのは何が原因なのでしょうか?
他の方の質問すら分かっていないくらいの超初心者です。
いろいろググってみたのですが、同じような事に出会えず、ここに迷い込んできました。
大変申し訳ないですが、超初心者にも分かるような解決策をお願い出来ればと思ってます。


主な使用versionは、

-Ruby 1.9.3 p194 (2012-04-20 revision 35410) [x86_64-darwin13.4.0] (homebrew よりinstall)
-Emacs ver24.4(9.0)
-osX 10.9.5 Mavericks です。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

円マーク(¥)になっているため、期待通り動いて居ないのではないでしょうか。
バックスラッシュ記法なので、バックスラッシュ(\)を使いましょう。

Macでは、Option + ¥で\の入力が可能です。

lang

1# -*- coding: utf-8 -*- 2print "ようこそ¥n" 3print 'Welcome¥n'

lang

1# -*- coding: utf-8 -*- 2print "ようこそ\n" 3print 'Welcome\n'

投稿2015/04/23 09:46

k.tada

総合スコア1679

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyaron

2015/04/23 10:06

回答ありがとうございます。 ただ、テキストエディタのEmacsで Option + ¥ をしてもOptionキーがMetaキーとして扱われてしまい、[ M−¥ is undefined ]として [ \ ] が入力できませんでした。 この[ \ ]が入力出来るようにする方がいいんでしょうか?
k.tada

2015/04/23 10:07

すみません。当方VimmerなのでEmacsは分からないです。 私の場合は、基本的に¥を使う機会はそうないので、Vimのほうでは¥で\が入力されるように設定しております。
kyaron

2015/04/23 12:55

ありがとうございました。 私もVimmerになるべく勉強します!!
cateye

2015/04/23 13:36

FreeBSDのRubyでも投稿ソースをコピーすると再現します ~ ruby tst1.rb ようこそ\nWelcome\n~ ~ ruby tst2.rb ←ソースを新たに書いたもの ようこそ Welcome\n~ ~ ~ ruby -v ruby 2.1.6p336 (2015-04-13 revision 50298) [amd64-freebsd10] ~ ~ cat tst1.rb ←\nを一度削除 # -*- coding: utf-8 -*- print "ようこそ\n" print 'Welcome\n' ~ cat tst2.rb ← # -*- coding: utf-8 -*- print "ようこそ\n" print 'Welcome\n' ~ diff tst1.rb tst2.rb 2c2 < print "ようこそ\n" --- > print "ようこそ\n" ~ od -c -t xC tst1.rb 0000000 # - * - c o d i n g : u t 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 0000020 f - 8 - * - \n p r i n t " よ 66 2d 38 20 2d 2a 2d 0a 70 72 69 6e 74 20 22 e3 0000040 ** ** う ** ** こ ** ** そ ** ** \ ** n " \n 82 88 e3 81 86 e3 81 93 e3 81 9d c2 a5 6e 22 0a 0000060 p r i n t ' W e l c o m e \ ** 70 72 69 6e 74 20 27 57 65 6c 63 6f 6d 65 c2 a5 0000100 n ' \n \n 6e 27 0a 0a 0000104 ~ od -c -t xC tst2.rb 0000000 # - * - c o d i n g : u t 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 0000020 f - 8 - * - \n p r i n t " よ 66 2d 38 20 2d 2a 2d 0a 70 72 69 6e 74 20 22 e3 0000040 ** ** う ** ** こ ** ** そ ** ** \ n " \n p 82 88 e3 81 86 e3 81 93 e3 81 9d 5c 6e 22 0a 70 0000060 r i n t ' W e l c o m e \ ** n 72 69 6e 74 20 27 57 65 6c 63 6f 6d 65 c2 a5 6e 0000100 ' \n \n 27 0a 0a 0000103 ~  0x4Bあたりのデータが違う  9d c2 a5 6e 22 tst1  9d 5c 6e 22 0a tst2 環境はFreeBSD 10.1 エディタはvim7.4です
guest

0

ベストアンサー

こんにちは。
まず最初に、おっしゃている状況が私の環境でも再現されました。

[ykt68@sakura-vps] date
2015年 4月 23日 木曜日 18:30:14 JST
[ykt68@sakura-vps] cat > question8975.rb

-- coding: utf-8 --

print "ようこそ\n"
print 'Welcome\n'
[ykt68@sakura-vps] ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
[ykt68@sakura-vps] ruby question8975.rb
ようこそ\nWelcome\n[ykt68@sakura-vps]

私は、RLoginというSSHターミナルで、LINUXサーバーに
ログインして、そこでRubyの環境を使用しています。

そこで、以下のようにquestion8975.rbを修正しました。
以下の説明では、分かりやすいように、円マークを¥(全角)で記します。

  • エディタで、question8975.rbを開く。
  • 「ようこそ」を出力している行の"ようこそ¥n"をいったん削除して、
  • 「ようこそ」の後に半角スペースを入れてから¥nを入力
  • その後、バックスペースで¥の直前の半角スペースを削除

上記のようにして保存した、question8975.rbだと

[ykt68@sakura-vps] ruby question8975.rb
ようこそ
Welcome\n[ykt68@sakura-vps]

と望んでいる結果になりました。

お手すきであれば、上記のように、「ようこそ」の後に一度無駄な半角スペースを入れて、
その後に¥nを打ち込み、その後、バックスペースで消すということを、一度お試し
頂けますでしょうか?

解決につながれば幸いです。

投稿2015/04/23 09:46

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jun68ykt

2015/04/23 09:49

見落としていました。お使いのマシンがMacなのですね。他の方がおっしゃっているように、Option + ¥ と入力すればOKかと思います。
kyaron

2015/04/23 10:11

回答ありがとうございます。 ykt68さんの言われる一度半角スペースを入れて消す方法も試してみましたが、出来ませんでした。
jun68ykt

2015/04/23 12:36

了解しました。ところで、エディタはEmacsをお使いとのことですが、Macにはデフォルトで vi がインストールされていると思いますので、一度、vi で当該のソースを作成し実行されてみてはいかがでしょうか。もしそれで、期待通りの出力が得られたら、プログラミングの問題というよりも、Emacsの設定の問題ということになり、検討すべきことが絞られてくるかと思いますがいかがでしょうか。
kyaron

2015/04/23 12:46

ykt68さん、ありがとうございます! k.tadaさんもvim を使っているようですし、本当に今現在、vimtutorをやっております!(笑 あれから少し調べ直してみたら、どうやらMacOSでのEmacsは仕方ないようです。 様々な設定方法があるようですが、超初心者には難しく、vimmerになるべくtutorしております! もう少し知識と情報が増えたらEmacsに戻ってみようかと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問