[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacsclient commandline

From: Rustom Mody
Subject: emacsclient commandline
Date: Wed, 20 Aug 2008 20:19:02 +0530

I am trying to construct a command line such that:

if emacs is running the client asks the server to raise-frame else it
calls runemacs.

The command line Ive given is:
$ emacsclient -a runemacs -e "(raise-frame)"

But this opens a file (or buffer) called '(raise-frame)'  !!

Of course just
$ emacsclient -e "(raise-frame)"

raises the emacs frame alright but fails for the case of no server.

Another minor point:
When emacsclient is used with the -a option and there is no server
running it pops up a window saying ERROR No error !!
I guess this is an error (in emacsclient) :-)

Starting from the vbs file on the emacswiki Ive constructed my own
launch-emacs as below but I dont like the loop and the sql and all the
heavy stuff, hence this attempt.

My launch-emacs-client.vbs
Set objShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
Dim isRunning
isRunning = False

For Each objItem in colItems
  If InStr(objItem.CommandLine, "emacs.exe") Then
    isRunning = True
  End If

parent = fso.GetParentFolderName(WScript.ScriptFullName)
If WScript.Arguments.Count = 1 Then
  If isRunning Then
    callString = parent & "/emacsclientw.exe -n """ &
WScript.Arguments(0) & """"
    callString = parent & "/runemacs.exe """ & WScript.Arguments(0) & """"
  End If
  If isRunning Then
    callString = parent & "/emacsclientw.exe -n -e ""(raise-frame)"""
    callString = parent & "/runemacs.exe"
  End If
End if

reply via email to

[Prev in Thread] Current Thread [Next in Thread]