How to use Cx k to kill an Emacs buffer opened in server mode?

I use a window batch file to open files in an already running instance of Emacs using emacsclientw.exe. However, any file opened this way opens in server mode, which means that I have to use Cx # to kill it, and not regular Cx k. How to change this behavior?

+5
source share
6 answers

using:

D:\> emacsclientw -n foo.txt

-n says no waiting. This is in GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600) from 2008-03-26 on RELEASE (and many previous versions, IIRC).

+5
source

My solution was to restore it (well, actually, Mw):

(lambda ()
  (interactive)
  (if server-buffer-clients
      (server-edit)
    (kill-this-buffer)))

[edit: , , ( , ). server-edit ( ), . , , ( , emacsclient), , . -kill-buffer, .]

+7

.emacs, :

(add-hook 'server-switch-hook 
  (lambda ()
    (local-set-key (kbd "C-x k") '(lambda ()
                                    (interactive)
                                    (if server-buffer-clients
                                        (server-edit)
                                      (ido-kill-buffer))))))

Cx k , emacsclient ( ido-kill-buffer), emacsclient, Cx k , ido-kill-buffer ( emacsclient -n).

+7

, ... , , , emacs , .

, :

emacsclient --eval '(find-file "/path/to/file")'

, emacs , emacsclient, , .

Edit:

, , , :

(global-set-key (kbd "C-x k") (lambda () (interactive) (server-kill-buffer (current-buffer))))
+4

, :

(global-set-key (kbd "C-x k") '(lambda ()
  (interactive)
  (if server-buffer-clients
      (server-done)
    (kill-this-buffer))))

( IvanAndrus, jrockway keybinding.)

, . - (, kill-ring-save kill-buffer).

BTW, EmacsWiki - KillKey KillingBuffer - , ( KillKey "-"...).

+2

, windows, linux emacs -daemon . , . , , emacsclient, .

, , 23.0.60.1 CVS.

0

All Articles