2011-07-14 8 views
1

マウスを使ってemacsウィンドウをクリックすると、バッファにペーストしたいx個の選択肢が吹き飛ばされます。これは、左クリックを適用して不注意なドラッグコピーを引き起こすため、手がわずかにずれることが原因です。私はこの特定の習慣を壊すことができるとは思わない。私はこれを防ぐために発見したemacsをクリックするとx個の選択肢が吹き飛ばされます

一つの解決策は、設定することです:

(setq mouse-drag-copy-region nil) 

は、しかし、これはemacsの中で、すべてのマウスのドラッグ機能を使用してから私を防止不幸な副作用があります。バッファ内に2つ以上の文字がある場合を除き、クリックが無視されるようにマウスドラッグの動作を制御する方法はありますか?

違いがある場合は、CentOS 5.x + GNOME 2でGNU emacs 23.3.1でコーディングしています。

これはGTK/Xの問題のようです。他のアプリと同様の動作をすることができます。

+0

は、あなたの.emacsを使用していない試してみましたか?つまり、 '-q'オプションでEmacsを起動したときの動作を再現できますか? –

+0

あなたの提案をありがとう。私は-qを使ってもその動作を観察することができます。また、実験を通して、私はコピーされたテキストを吹き飛ばす画面を最初にクリックしたとき(それに応じて質問が更新される)、手の自然な動きがあることを発見しました。 – SetJmp

答えて

0

これはそのEmacsのバグです2001年にソースコードの履歴に導入されました。私はローカルインストールに適用できるパッチを投稿しました。うまくいけば、emacsの保守担当者はさらに調査することを望みます。ここで

は私のパッチとの議論です:

http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00818.html

1

mouse-drag-trackを変更するのが最も簡単な解決策は、mouse.elにあります。関数定義を見つけるには、M-xファンクションマウスドラッグトラックRETを探します。

.emacsファイルにそのファイルをコピーし、小さな変更を加えます。以下のように見えるand文の検索:

(and mouse-drag-copy-region 
    do-mouse-drag-region-post-process 
    (let (deactivate-mark) 
     (copy-region-as-kill region-commencement 
          region-termination))) 

を、地域性を確保するためのチェックを持って、それを修正することは、少なくとも2つの文字です。私はアドバイスやフックまたは変数の設定によりこれを行うにはきれいな方法が表示されない

(and mouse-drag-copy-region 
    (>= (abs (- region-commencement region-termination)) 10) ;; THIS IS NEW 
    do-mouse-drag-region-post-process 
    (let (deactivate-mark) 
     (copy-region-as-kill region-commencement 
          region-termination))) 

:私は簡単にテストのための10文字にするには、このチェックを行いました。 mouse-drag-trackの定義の前に(require 'mouse)があることを確認して、自分の定義を上書きするのではなく、組み込みの定義を確実に上書きするようにしてください。また、あなたが上書きしているライブラリ/機能の新しいバージョンをチェックするためにあなたを思い出させるために、右の再定義の上ごの.emacsにチェックを追加したい場合があります:

(unless (eq emacs-major-version 23) 
    (error "check for new mouse-drag-track")) 
+0

あなたの提案をありがとう。あなたのソリューションを装備した後、私はマウスドラッグトラックが適切なエントリポイントではないと判断しました。私はバグを作成しました:https://lists.gnu.org/archive/html/bug-gnu-emacs/2011-07/msg02003.html。基本的に、私はそれが問題である私の不安定な手ではなく、むしろXウィンドウ環境でのemacsの行動だと思っています。 – SetJmp

関連する問題