web-dev-qa-db-ja.com

notepad ++からcmdコマンドを実行し、出力を新しいバッファーに入れますか?

Windowsを実行していますが、vimがありません。 Notepad ++を使用してWindowsコマンドプロンプトからコマンドを実行し、出力をnotepad ++バッファーに配置することは可能ですか?

1
leeand00

元のQは、シェルコマンドの出力(stdout)を現在のドキュメント(viの用語ではgeneral buffer)に読み込むviの機能に似たものをサポートするNotepad ++に関するもののようです。

vi例

:r! ls

説明

:exラインエディタコマンド)r(読み取り)!(シェルから、コマンドの出力(stdoutlsを現在のドキュメントに挿入します(何も指定されていません。デフォルトではgeneral bufferに読み込まれます)

Notepad ++ v 7.7.1(32ビット)の例

F5

またはメニューシステムをナビゲートします実行menuから実行..menu-item

notepad++ Runダイアログのテキストボックスに目的のコマンドを入力します。

cmd.exe /c echo %DATE% | clip

[〜#〜] enter [〜#〜]keyを押すか、Runbuttonをクリックします。

Ctrl+V クリップボードの内容をNotepad ++ドキュメントに。

2
kernel-of-truth

Notepad ++を使用してWindowsコマンドプロンプトからコマンドを実行し、出力をNotepad ++バッファーに配置することは可能ですか?

私の知る限り、直接ではありません。とはいえ、この場合、バッチファイルが役立つ可能性があります。例:

_@rem Redirects both STDOUT and STDERR to e.g. cli_tmp.txt
%* > C:\temp\cli_tmp.txt 2>&1 
"C:\Program Files (x86)\Notepad++\notepad++.exe" C:\temp\cli_tmp.txt
exit()
_

これをex。open_npp.batとして保存し、Windows Pathに登録すると、ex。を使用できます。 :

_open_npp echo hello
_

コマンドプロンプトで、_echo hello_(つまり、hello)から出力されたテキストは、_cli_tmp.txt_というラベルの付いた新しいNotepad ++タブに表示されます。さらに、Notepad ++ Run ...メニュー項目を使用して_cmd /k open_npp echo hello_を実行し、コマンドラインから_open_npp echo hello_を実行するのと同じ効果を得ることができます。

メモ

  • このアプローチの最大の欠点は、通常、バッチファイルが呼び出されるたびに出力が上書きされるため、出力をコピーするか、実行ごとに異なるタイトルで一時ドキュメントを再保存する必要があることです。

  • 現状では、与えられたバッチの例では、STDERRからの出力は一時ファイル(vs. console)に書き込まれ、コマンドウィンドウは完了後すぐに閉じられます(exit())。ただし、この動作は明らかに変更できます。

  • このメソッドは、インタラクティブなコマンド入力/出力を適切にキャッチしない可能性があります。同様に、プロセスがハングしたり、永遠にかかったりすると、何が起こっているのか推測できなくなる可能性があります。

  • この種のバッチファイルの使用で問題が発生したことはありませんが、常にエッジケースが発生する可能性があります。 = P

2
Anaksunaman

pork2sausage を使用できます。新しいNotepad ++でPluginsAdminを開くか、古いバージョンでPlugin Managerをインストールして、そこからプラグインをインストールするだけです。それ以外の場合は、 Plugin Central に移動し、Zipファイルを手動でダウンロードします

プラグインは、トランスフォーマー(入力を受け取り、出力を生成するコンソールプログラム)がPork to Sausageプラグインで適切に設定されると、選択したテキストを必要なものに変換します。

このプラグインの魅力的な部分は、その柔軟性です。1つ(または複数)の小さなプログラムを任意の言語(Javaまたは.Net)など)で記述したり、他のプログラムを使用したりできます。選択したテキストをNotepad ++で変換するため。

最大20個のコマンドをカスタマイズできます。

プラグインセントラル

開いているプラ​​グインをインストールした後>ソーセージへのポート>ユーザーコマンドを編集し、必要なコマンドを追加します。選択したテキストを大文字に変換する例を次に示します(もちろん、実際には、Notepad ++からの組み込みの大文字小文字変換を使用する必要があります)

[toupper]
progPath=C:\Windows\System32\cmd.exe
progCmd=cmd /c "echo $(SELECTION) | tr [:lower:] [:upper:]"
workDir=C:\Users\...\tmp

ただし、上記の例を新しい行で機能させるには、さらに2つのオプションprogInputprogOutputを追加する必要があります。選択したテキストがreplaceSelectionで上書きされるのを防ぐこともできます。プラグインのコメントで詳細を見つけることができます

1
phuclv

Notepad ++コンソールウィンドウでは、シェルコマンドを実行し、出力をクリップボードバッファにリダイレクトすることができます。

たとえば、現在の日付と時刻をクリップボードにコピーするには、次のようにします。

cmd /c Echo %DATE% %TIME% | clip
1
Martin Valach

いいえ。できることは、WindowsにVimまたはEmacsをインストールすることです。 Notepad ++でコマンドを記述し、バッチファイル(.bat)に保存することもできます。コマンドを実行するはずのダブルクリック。

0
salmonlawyer