質問

Notepad++自動的に追加し、シェルショートカットできるWindows Explorerでの右クリックでファイルを選んで"編集"メモ帳++".する方法を教えてください同じemacsを使用していGNU Emacs22.3します。

役に立ちましたか?

解決

いくつかの他の回答に似て -

ここで私が持っているものです。どこかのemacs-conextmenu.reg(または何か - あなた-want.reg)と呼ばれる新しいテキストファイルを作成し、次の貼り付けでます:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\openwemacs]
@="&Edit with Emacs"
[HKEY_CLASSES_ROOT\*\shell\openwemacs\command]
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs]
@="Edit &with Emacs"
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs\command]
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\""

あなたのemacsのインストールパスにパスを変更します。 「\」(あなたは\持っている時はいつでも、\\にそれを変更)をエスケープすることを忘れないでください。

これですべてを行う必要があるエクスプローラでこの* .regファイルをダブルクリックすると、あなたは、任意のファイルや任意のディレクトリのためのemacsのコンテキストメニュー項目を持たなければならない(あなたがdiredのファンであれば!)。

これが動作するために、(M-Xサーバ・スタート)のemacsが起動する必要があるとのemacs-サーバも起動する必要があることに注意してください。私は、Windowsで始まるのemacsを提案し、あなたの.emacsファイルに(サーバー開始)を置きます。

ボーナスとして、AutoHotkeyをするための次のスニペット( http://www.autohotkey.com/する)あなたがWindowsエクスプローラでCtrl + Shift + Enterキーを押すとemacsの中で選択されたファイルを開始します。あなたはemacsの中でたくさんのファイルを編集しますが、必ずしもEmacs自身でファイルに移動したくない場合、これは、より便利かもしれません。

#IfWinActive ahk_class CabinetWClass 
^+Enter::
  GetText(tmpvar)
  If (tmpvar != "")
     Run, d:/path/to/your/emacs/bin/dir/emacsclientw.exe -n "%tmpvar%"
Return
Return

他のヒント

ただ、ポリグロットの答えが気に入らないが、サーバまたはその混乱のいずれかを起動する必要はありません。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\openwemacs]
@="&Edit with Emacs"
[HKEY_CLASSES_ROOT\*\shell\openwemacs\command]
@="C:\\Program Files (x86)\\Emacs\\bin\\emacsclientw.exe --alternate-editor=\"C:\\Program Files (x86)\\Emacs\\bin\\runemacs.exe\" -n \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs]
@="Edit &with Emacs"
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs\command]
@="C:\\Program Files (x86)\\Emacs\\bin\\emacsclientw.exe --alternate-editor=\"C:\\Program Files (x86)\\Emacs\\bin\\runemacs.exe\" -n \"%1\""

だめspelunkingのレジストリ、これを実行する事ができます。から、Windowsエクスプローラー(取扱説明書の他の編集だけでなく、Emacs):

  1. のWindows Explorerを選択し、 Tools\Folder Options... メニュー項目です。

  2. をクリックし File Types タブの選択の拡張子のファイルの関連付けたいと編集者。この例では、また利用したいと思い、TXTいます。

  3. をクリックし Advanced ボタンのフレームを Edit File Type ダイアログを表示します。

  4. きのいずれかに変更、現在 open 行為、または指定のアクションのように Open with MyEditor.

    を選択の場合は編集をクリックし、 Edit... ボタンの Application used to peform action テキストボックスをフルパスをエディタ、 "%1".例えば、 C:\SciTe\wscite\SciTE.exe "%1".

    を処理しなければいけない、アクションをクリックし、 New... ボタンのアクション名のフルパスをエディタ、 "%1".

  5. にしたい場合は、アクションのデフォルトするファイルの種類を選択し、をクリックし、 Set Default ボタンを押します。

  6. OK のすべてのダイアログ.

別のオプションを入れてショートカットをエディタの実行にお Send To フォルダ %USERSPROFILE%\SendTo.私は新しいフォルダにこちらの"編集"、ショートカットの様々なエディタを使用します。

は、少し追加されたことで、また、背景をクリックすることで、emacsの中にカレントディレクトリを開くことが可能になります。

<<<Code as posted by polyglot>>>

[HKEY_CLASSES_ROOT\Directory\Background\shell\openwemacs]
@="Open &with Emacs"
[HKEY_CLASSES_ROOT\Directory\Background\shell\openwemacs\command]
@="C:\\Program Files\\emacs-24.2\\bin\\runemacs.exe \"%V\""

ここで%V現在のディレクトリです。 %1を使用すると、この場合には動作しません。

<のhref = "http://www.mydigitallife.info/2007/05/07/add-notepad2-to-windows-vista-or-xp-right-click-context-menu/" のrel =」 nofollowをnoreferrer ">他のアプリでそれを行う方法を説明しのこのサイト。ただ、パスを変更し、あなたはすべてのセットである必要があります。

このキー/値を作成します:

[HKEY_CLASSES_ROOT\*\shell\Edit with AppName\command]
@=”\”C:\\Program Files\\Notepad2\\Notepad2.exe\” \”%1\”"

ここでの<のhref = "http://www.howtogeek.com/howto/windows-vista/add-open-with-notepad-to-the-context-menu-for-all-files/" のrel = "nofollowをnoreferrer">従うことが少し楽である別の参照で、ます。

http://ourcomments.org/Emacs/EmacsW32:

のWindowsとの統合とEmacsの配布をチェックしてください。 HTML

そのインストーラが何をしたいんExplorerのメニューエントリが作成されます。

ここでは別の方法も同じです。作品WinXPざいます。

追加することのできるregistery:

編集-with-emacs.日

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Emacs]
@="Edit With &Emacs"
[HKEY_CLASSES_ROOT\*\shell\Emacs\command]
@="Wscript.exe C:\\emacs\\emacs-22.3\\bin\\launch-emacs-client.vbs \"%1\""

このファイルをごemacs binディレクトリ:

打上げemacs-クライアントvbs

Set objShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count = 1 Then

  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
  Next

  If isRunning Then
    objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/emacsclientw.exe -n """ & WScript.Arguments(0) & """")
  Else
    objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe """ & WScript.Arguments(0) & """")
  End If

Else
  objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe")
End If

注意:の W32インストーラー として知られるスクリプトに設置できます。

私は上記のポリグロットの答えに追加する - 彼は言及AutoHotkeyをショートカットは非常に便利ですが、コードが不完全である:GetTextは()関数は(AutoHotkeyをフォーラムに誰かによって書かれた<のhref = "のhttp:/ /www.autohotkey.com/forum/viewtopic.php?p=279576#279576" のrel = "nofollowをnoreferrer"> http://www.autohotkey.com/forum/viewtopic.php?p=279576#279576 )、そしてそれは、次のとおりです。

GetText(ByRef MyText = "")
{
   SavedClip := ClipboardAll
   Clipboard =
   Send ^c
   ClipWait 0.1
   If ERRORLEVEL
   {
      Clipboard := SavedClip
      MyText =
      ERRORLEVEL := 1
      Return
   }
   MyText := Clipboard
   Clipboard := SavedClip
   Return MyText
}

;to test: 
#k::
GetText(FileName)
msgbox clipboard=%FileName%
return

ClipWait遅延を修正する必要があることに注意してください:私は2に設定する必要がありました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top