串モードの使用方法


19

私は現在、Emacsで串刺しモードを使用するのに苦労しています。

MELPA経由で串刺しモードをダウンロードしてインストールしたので、すべての依存関係が適切に設定されているはずです。

テストのために、boidsjs デモをダウンロードしました

を開きboids.js、入力してM-xrun-skewer(URLでブラウザーを開きますhttp://127.0.0.1:8080/skewer/demo)、最後に実行しますM-xskewer-mode(->串刺しモードを有効にします)。

しかし、ブラウザでは何も起こりません

何が間違っていますか?


私が理解しているように、串はjavascriptの評価のためのインターフェースを提供します...実際にバッファの内容を評価しますboids.jsか?
T.バーロン14年

現在のバッファに<kbd> Cx Ck </ kbd>( "boid.js loaded")をロードし、<kbd> Cx Ce </ kbd>で評価しようとしています。しかし、「$」記号を解析できなかったというエラーが表示されます。それは、対応するHTMLファイル(example.html)からのjQueryをロードしていなかったためです
JacksGT

2
skewer-html-modeでHTMLファイルを評価する必要があります。
ジョーダンビオンド14年

どうやって?C-x C-kでは動作しませんskewer-html-mode
JacksGT

回答:


16

TLDR; httpサーバー(simple-http)を起動し、それを介してHTMLファイルをロードする必要があります。

たとえば、名前の付いたHTMLファイルhello.htmlと、フォルダーに名前の付いたJSスクリプトファイルがあるとscript.js/home/user/Documents/javascriptます。

hello.html

<!doctype html>
<html>
<head>
    <!-- Include skewer.js as a script -->
    <script src="http://localhost:8080/skewer"></script>
    <!-- Include my script.js file -->
    <script src="script.js"></script>
</head>
<body>
    <p>Hello world</p>
</body>
</html>

script.js

alert('hey!');

init.el(または.emacs):

(require 'simple-httpd)
;; set root folder for httpd server
(setq httpd-root "/home/user/Documents/javascript")

サーバーを起動しM-x httpd-start、にindex.htmlアクセスして、ブラウザでファイルを開きますhttp://localhost:8080/hello.html。ブラウザでアラートを取得して、を呼び出しますskwer-repl

replを介してブラウザとさらに対話できます。そのため、replで評価したすべてがブラウザに送信されます。たとえばconsole.log('hey!')、replを入力すると、ブラウザーのコンソールにこのメッセージが表示されます。

HTMLをインタラクティブに変更する場合(たとえば、emacsからのHTMLタグのライブ更新)、init.el(または.emacs)に追加します 。

(add-hook 'html-mode-hook 'skewer-html-mode)

これで、.htmlファイルを開いているときにC-M-xskewer-html-eval-tag)でタグを評価でき、ブラウザですぐに更新されます。

逆に、これはCSSおよびCSSファイルにも適用されることに注意してください。


1
これは本当に素晴らしい答えです。投稿してくれてありがとう。おそらくhttpd-root、設定にハードコードを入れたくない場合はM-x eval-expression (setq httpd-root "/path/to/files")、いつでもemacs内から実行できることも何の価値もありません。
コーディReichert 14

HTMLの例では役に立たない '\' <script src="http://localhost:8080/skewer"></script>\ (編集不可-編集は6文字以上でなければならない)
kai-dj

8

デモを実行する代わりに、これらの最小限の手順を実行するだけで、すべてが正しく機能していることを確認できます。

  1. myskewer.jsという名前の新しいバッファーを開きます
  2. JS2モードを有効にする(串の依存関係)
  3. 串モードを有効にする
  4. M-xrun-skewer (ブラウザが開き、myskewer.jsに戻ります)
  5. 入力しalert("hello");C-xC-eその行の終わりでヒット
  6. ブラウザに戻ります。

ページにアラートボックスが表示されます。


ご回答ありがとうございます!残念ながら、私はエラー「いいえ折りたたみ式の要素がポイントで見つからない」よう求めています
JacksGT

すみません、私の間違いです。C-x C-eプッシュする実際のキーです。私の答えを編集します
ガンボ14年

うまくいきました!ただし、SkewerにHTMLを読み込むように指示するにはどうすればよいですか?(デモに示されているように)
JacksGT 14年

1
@JacksGTダウンロードしたファイルを配置し、このリンクの~/public_html「手動バージョン」の指示に従います。それが完了したら、ブラウザでlocalhost:8080にアクセスします。
ガンボ14年

1

場合、ポート8080はすでに使用されています

httpd-port変数をカスタマイズすることにより、別のポートを使用するようにskewer / simple-httpdを構成できます。(M-x customize-variable<ret>httpd-port

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.