Emacs 22.1.1 (X の独自のウィンドウ、KDE、Kubuntu のウィンドウ) でテキストをカット (キル) すると、他のアプリケーションに貼り付け (ヤンク) できません。
13 に答える
ここで定義に注意しましょう
- Emacsのコピーはコマンドです
kill-ring-save
(通常は にバインドされM-wます)。 - システム コピーは、通常、 を押すC-c(またはアプリケーション ウィンドウで [編集] → [コピー] を選択する)ことで得られます。
- X コピーは、マウス カーソルでテキストを「物理的に」強調表示します。
- Emacs ペーストはコマンドです(通常はに
yank
バインドされていC-yます)。 - システムの貼り付けは、通常、押すC-v(またはアプリケーション ウィンドウで [編集] - [貼り付け] を選択する) ことで得られます。
- X 貼り付けは、「マウスの中央ボタン」を押しています (マウスの左ボタンと右ボタンを同時に押すことによってシミュレートされます)。
私の場合(GNOME上):
- 通常、Emacs とシステム コピーの両方が X ペーストで動作します。
- X copy は通常、Emacs の貼り付けで機能します。
システム コピーを Emacs ペーストで動作させ、Emacs コピーをシステム ペーストで動作させるに
(setq x-select-enable-clipboard t)
は、.emacs
. または試してみてくださいMETA-X set-variable RET x-select-enable-clipboard RET t
これはかなり標準的な現代の Unix の動作だと思います。
Emacs がコンソールで実行されている場合は、システムと X クリップボードから完全に切り離されていることに注意することも重要です (その場合のカット アンド ペーストは、ターミナルによって仲介されます)。 . たとえば、端末ウィンドウの「編集 -> 貼り付け」は、クリップボードから Emacs バッファーにテキストを入力した場合とまったく同じように動作する必要があります。
.emacs
以下をファイルに挿入します。
(setq x-select-enable-clipboard t)
私はこれを.emacsに貼り付けます:
(setq x-select-enable-clipboard t)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
その後、基本的に、Emacs内の任意のものから他のX11またはGnomeアプリケーションへのカットアンドペーストに問題はありません。
ボーナス:.emacs全体をリロードせずにEmacsでこれらのことを実行するには、.emacsバッファー内の各式のクローズパレンの直後にカーソルを置いてCxCeを実行します。
幸運を!
Emacs でのコピー アンド ペーストの難しさは、内部の kill/yank とは独立して動作させたいことと、ターミナルと GUI の両方で動作させたいことです。端末または gui のいずれかに対する既存の堅牢なソリューションはありますが、両方ではありません。xsel (例sudo apt-get install xsel
) をインストールした後、コピーして貼り付けてそれらを結合するために私が行うことは次のとおりです。
(defun copy-to-clipboard ()
(interactive)
(if (display-graphic-p)
(progn
(message "Yanked region to x-clipboard!")
(call-interactively 'clipboard-kill-ring-save)
)
(if (region-active-p)
(progn
(shell-command-on-region (region-beginning) (region-end) "xsel -i -b")
(message "Yanked region to clipboard!")
(deactivate-mark))
(message "No region active; can't yank to clipboard!")))
)
(defun paste-from-clipboard ()
(interactive)
(if (display-graphic-p)
(progn
(clipboard-yank)
(message "graphics active")
)
(insert (shell-command-to-string "xsel -o -b"))
)
)
(global-set-key [f8] 'copy-to-clipboard)
(global-set-key [f9] 'paste-from-clipboard)
emacs とは、X の下で (つまり、ターミナル ウィンドウ内ではない) Emacs を意味していると思います。
次の 2 つの方法があります。
- (UNIX OS のみに適用) マウスで目的のテキストを強調表示し (これにより X クリップボードにコピーされます)、中クリックして貼り付けます。
- 目的のテキストを強調表示してから、"Mx clipboard-kill-ring-save" (これをより簡単なキーにバインドできることに注意してください)。次に、お気に入りのアプリで「編集->貼り付け」するだけです。
利用可能なクリップボード操作:
- clipboard-kill-ring-save -- 選択範囲を Emacs からクリップボードにコピー
- clipboard-kill-region -- Emacs からクリップボードへの選択範囲を切り取り
- clipboard-yank -- クリップボードから Emacs に貼り付けます
X でのコピー & ペーストに関するいくつかの問題と、それを機能させるための設定方法を説明する EmacsWiki の記事があります。
これM-w
は Mac OSX で動作します。.emacsファイルに追加するだけです。
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx)
うーん、どのプラットフォームとどのバージョンの emacs を使用していますか? Windows Vista で GNU Emacs 22.1.1 を使用すると、問題なく動作します。
万が一、RealVNC ビューアを介して Windows から Linux にこれを行っている場合は、最初に Linux ボックスで「vncconfig -iconic」を実行していることを確認してください.....
私は常にクイック ペーストを使用します。emacs で選択範囲をドラッグし、ターゲット ウィンドウでマウスの中ボタンを押します。
(kate への言及から、あなたは Linux などを使用しており、おそらく X で emacs を何らかの形で使用していると思います。)
使用しているプラットフォームを指定したい場合があります。Linux、Unix、macosx、windows、ms-dos で使用できますか?
Windowsではうまくいくはずだと思います。MacOSX の場合、x-windows クリップボードに追加されますが、これは macosx クリップボードとは異なります。Linux の場合は、使用しているウィンドウ マネージャーの種類によって異なりますが、ほとんどの場合、x-windows はうまく処理できると思います。
では、具体的にお願いします。
私がしていることは、コピー機能が組み込まれた優れた端末ツール (Windows では PuTTY、Linux では Konsole または Terminal) を使用することです。
PuTTY では、必要なテキストをマウスで強調表示してから、別の場所に貼り付けます。PuTTY ウィンドウを右クリックすると、Windows のコピー/貼り付けバッファーの内容が貼り付けられます。
Linux の Konsole または Terminal で、必要なものを強調表示してから、Shift+Ctrl+C を押してコピーし、Shift+Ctrl+V を押して貼り付けます。
emacs の win32 コンパイルでは、テキストをヤンクすると、ほとんどの場合、テキストがコピー/ペースト バッファに置かれます。
Mac OS X では、ターミナルがトラップするため、Apple キーのショートカットは正常に機能します。
シェルはアプリケーションごとにコピー/貼り付けバッファを維持しないため、コマンドラインで直接実行する方法はありません。bashはそれ自体のコピー/ペースト バッファを保持しており、デフォルトでは emacs ^k/^y ショートカットが機能します。